摘 要:常規(guī)的數(shù)據(jù)庫應用受制于字段結構的限制,雖然簡化了處理流程,但處理效率比較低下,往往形成應用的瓶頸。使用聯(lián)合字段對數(shù)據(jù)庫結構進行優(yōu)化,使原有的重復數(shù)據(jù)得以整合,結合SQL語言與單一類型存儲,可以有效提升數(shù)據(jù)的檢索效率,快速產(chǎn)生初級可選集。對可選集的操作可以使用原有的數(shù)據(jù)庫系統(tǒng),也可以使用定制的數(shù)據(jù)庫,定制數(shù)據(jù)庫不但可以擺脫數(shù)據(jù)庫系統(tǒng)對開發(fā)過程的限制,而且在數(shù)據(jù)的處理與加解密方面更加主動靈活,是小型數(shù)據(jù)庫應用開發(fā)的一個趨勢。
關鍵詞:數(shù)據(jù)庫結構;聯(lián)合字段;優(yōu)化;檢索效率;定制數(shù)據(jù)庫
中圖分類號:TP392 文獻標識碼:A
Abstract:Conventional database application is restricted by the field structure,although simplified the processing flow,but the processing efficiency is low,often the bottleneck in the application.Using united fields to optimize the database structure.The original repeating data can be integrated,with the combination of SQL language and the single type of storage,can improve the efficiency of data retrieval,fast generation primary optional set.On the optional set operation can use the original database system,can also use the custom database.Customize database can not only get rid of the limitation of database system development process,but also more initiative and flexibility in the data processing and encryption and decryption,is a development trend in small database application.
Keywords:database structure;united fields;optimize retrieval efficiency;customize database
1 引言(Introduction)
近年來,隨著計算機硬件設備的不斷升級,軟件處理能力顯著提高。然而,在數(shù)據(jù)庫處理方面,卻始終存在著一個瓶頸,那就是數(shù)據(jù)庫的字段結構一直制約著數(shù)據(jù)的處理速度。目前數(shù)據(jù)庫的主要存儲方式是硬盤設備,而硬盤設備本身存在著處理速度的極限。在這種條件下,如何提高數(shù)據(jù)的檢索速度就成為一個迫切要解決的問題,尤其是在數(shù)據(jù)庫容量越來越大的情況下。
數(shù)據(jù)檢索的核心問題在于,如何在海量數(shù)據(jù)(硬盤存儲)中檢索出符合條件的可選集,而不在于對于可選集的處理(內(nèi)存)上,因為內(nèi)存的訪問速度對于數(shù)據(jù)檢索來說是足夠的。一旦從數(shù)據(jù)庫上獲得可選集,后繼的工作就可以轉移到內(nèi)存中工作,處理器的性能就可以得到充分發(fā)揮。因此,在提高數(shù)據(jù)檢索的速度方面,應該在優(yōu)化數(shù)據(jù)庫結構,快速獲得可選集上面下工夫,其中包括:減少數(shù)據(jù)庫字段與記錄的數(shù)量、簡化數(shù)據(jù)類型、減少數(shù)據(jù)冗余等方面[1]。
2 數(shù)據(jù)庫結構的優(yōu)化(Optimization of database structure)
常規(guī)的數(shù)據(jù)庫字段是根據(jù)數(shù)據(jù)的內(nèi)容屬性來定義的,用戶對數(shù)據(jù)的操作界面與數(shù)據(jù)庫結構保持一致,以簡單的人員信息管理為例,數(shù)據(jù)庫結構如表1所示。
這是一種通用的途徑,也是數(shù)據(jù)庫廠商建議使用的方法,因為這樣可以直接使用數(shù)據(jù)庫訪問的預定義功能,包括用戶操作界面,同時簡化數(shù)據(jù)庫應用程序的開發(fā)工作,把程序開發(fā)人員和操作人員與核心數(shù)據(jù)庫隔離開來,充分保證數(shù)據(jù)的安全性[2]。但是,這種使用方法也制約了數(shù)據(jù)庫開發(fā)人員的視野,尤其在大型數(shù)據(jù)庫的應用開發(fā)過程中,在數(shù)據(jù)檢索的效率方面顯得無所作為,或者在具體應用出現(xiàn)瓶頸時推卸責任。
因此,在數(shù)據(jù)庫開發(fā)的規(guī)劃方面,不一定嚴格遵循數(shù)據(jù)庫廠商建議的方式,可以根據(jù)不同的應用場合和數(shù)據(jù)類型,建立靈活的數(shù)據(jù)結構,從而提高數(shù)據(jù)檢索的效率[3,4]。
這里給出的一種方案,是在數(shù)據(jù)庫結構方面進行的一個大膽的嘗試,對于數(shù)據(jù)類型單一、數(shù)據(jù)容量較大的應用場合較為適用。它不按數(shù)據(jù)的內(nèi)容屬性來定義具體的字段,而是采取“聯(lián)合字段”的結構,將原來多個單一的字段組合成一個聯(lián)合字段,從而簡化了數(shù)據(jù)庫的結構,大大提高了可選集的產(chǎn)生過程可數(shù)據(jù)檢索的效率。
表1中的人員信息數(shù)據(jù)庫,變換為組成聯(lián)合字段以后,結構簡化如表2所示。
從表2可以看出,原來數(shù)據(jù)庫中的一張表,現(xiàn)在被簡化成了一條記錄。通過這種變換,甚至可以把整個數(shù)據(jù)庫都整合在一個字段中,將針對數(shù)據(jù)庫的操作轉換為針對少量字符串的操作,大大簡化數(shù)據(jù)的操作過程,提高數(shù)據(jù)的檢索效率。
在這種方案中,當可選集產(chǎn)生以后,不再使用數(shù)據(jù)庫系統(tǒng)提供的缺省操作界面,而由數(shù)據(jù)庫應用程序開發(fā)人員編制特定的操作界面,當然,從外觀上,可以借鑒操作人員已經(jīng)習慣的系統(tǒng)界面,甚至與系統(tǒng)界面保持一致,但下面的代碼完全由開發(fā)人員自己來完成。這樣的開發(fā)工作并不復雜,不管在哪種平臺上,都不會給開發(fā)人員增加太多的額外工作量。而且,程序使用效率的大幅提高,也會很快將額外的開發(fā)工作量彌補掉。
聯(lián)合字段的數(shù)據(jù)工作過程如圖1所示。
雖然在界面上可以與數(shù)據(jù)庫系統(tǒng)保持一致,但數(shù)據(jù)庫接口與數(shù)據(jù)庫結構對用戶來說是完全不透明的,從這個角度來看,不但沒有降低數(shù)據(jù)的安全性,而且在數(shù)據(jù)轉換與存儲的過程中,還可以采取靈活的手段進行加解密,提高原有數(shù)據(jù)的安全性。由于變換后的數(shù)據(jù)對數(shù)據(jù)廠商也是不透明的,因此,就實現(xiàn)了數(shù)據(jù)的雙向安全性,這正是目前幾乎所有大型數(shù)據(jù)庫應用系統(tǒng)一直面臨的困惑。
聯(lián)合字段實現(xiàn)雙向安全性,如圖2所示。
聯(lián)合字段的作用,是簡化可選集的產(chǎn)生過程,提高可選集的檢索效率,因為針對硬盤存儲的數(shù)據(jù)庫檢索,也是以字段為最小單位進行的,字段數(shù)量的縮減,以及字段類型的單一化,對于可選集檢索效率的貢獻是可想而知的。
3 數(shù)據(jù)的處理過程(Data processing procedure)
3.1 數(shù)據(jù)單元的概念
為了闡述方便,首先給出“數(shù)據(jù)單元”的概念,把按規(guī)律排列的格式整齊的重復性的一組數(shù)據(jù)稱為一個數(shù)據(jù)單元,在常規(guī)的數(shù)據(jù)庫中,數(shù)據(jù)單元也許是一條記錄,也許是一條記錄中的幾個字段[5]。例如在上面的人員信息數(shù)據(jù)庫中,每個人員的信息就可以作為一個數(shù)據(jù)單元,如:“001王勇男”,姓名在中間,左側是編號(占三個字符),右側是性別(占兩個字符),格式整齊,排列有規(guī)律。在這樣的一個數(shù)據(jù)單元中,編號數(shù)據(jù)可以從單元數(shù)據(jù)的左側選取,性別數(shù)據(jù)可以從單元的右側選取,中間剩下的就是姓名的數(shù)據(jù),這樣的選取方法,不要求位于單元中間的姓名數(shù)據(jù)為特定的長度。
利用數(shù)據(jù)單元,可以對原有的字段進行初步的整合,減少字段的數(shù)量,簡化字段的類型,精簡數(shù)據(jù)庫的原有結構。這樣變換后,并不影響對原有數(shù)據(jù)庫的常規(guī)操作,因為用戶界面是根據(jù)功能而重新開發(fā)的,不依賴于數(shù)據(jù)庫系統(tǒng),它所使用的是內(nèi)存中的數(shù)據(jù),已經(jīng)把磁盤中的存儲數(shù)據(jù)庫恢復為原有結構的工作數(shù)據(jù)庫[6]。工作數(shù)據(jù)庫根據(jù)操作需要,只選取全部數(shù)據(jù)的一個子集,所以,對于處理速度與實時性的影響有限,這與系統(tǒng)數(shù)據(jù)庫的工作原理是一樣的,見圖1。只是在得到可選集的條件上,要進行相應的變換,由于數(shù)據(jù)單元并不復雜,而且是大量的重復性數(shù)據(jù),所以在原理上可以保證可選集的確定性。
如果數(shù)據(jù)單元的變換已經(jīng)能夠滿足應用的需要,優(yōu)化過程就可以就此為止,有時候,為了簡化開發(fā)工作,甚至可以將工作數(shù)據(jù)庫與存儲數(shù)據(jù)庫保持一致,這樣,應用效率的提高,只體現(xiàn)在可選集的產(chǎn)生過程中,盡管如此,變換前后的效率差異還是顯而易見的。
3.2 數(shù)據(jù)整合
如果要進一步提升系統(tǒng)的功能,可以在數(shù)據(jù)單元的基礎上,在兩個層面上繼續(xù)對數(shù)據(jù)進行整合[7]。
第一個層面,對數(shù)據(jù)單元進行整合。把多個數(shù)據(jù)單元連接在一起,進行聯(lián)合操作。實現(xiàn)的方法是多種多樣的,比如,可以使用特定的分隔連接符,把單元數(shù)據(jù)連接起來,上面的人員信息數(shù)據(jù)庫,整合以后簡化成一條記錄:
001王勇男-002李小萌女-003張虹男-…
上例中分隔符的選擇不能與數(shù)據(jù)庫中的任何數(shù)據(jù)重復,當數(shù)據(jù)庫的性質與內(nèi)容確定后,找到合適的分隔符并不困難,它的作用只是單純地將數(shù)據(jù)單元分隔開來,并且在數(shù)據(jù)處理以雙向過程中作為定位符,實現(xiàn)工作數(shù)據(jù)庫與存儲數(shù)據(jù)庫之間的數(shù)據(jù)傳遞。
第二個層面,是對字段進行聯(lián)合。這可以打破數(shù)據(jù)庫系統(tǒng)對字段容量的限制。數(shù)據(jù)單元整合后得到的數(shù)據(jù),具有單一的字符串類型,跨字段存儲只涉及到簡單的分割問題,這是稍有編程經(jīng)驗的開發(fā)人員都可以完成的工作。在數(shù)據(jù)處理的過程中,直接對多個字段進行聯(lián)合操作,處理過程并不復雜,由自主開發(fā)的用戶接口程序完成這一工作,應用人員不必關心其中的細節(jié)。
數(shù)據(jù)庫系統(tǒng)在進行數(shù)據(jù)處理時,往往以字符類型為主,如果數(shù)據(jù)庫中存在多種數(shù)據(jù)類型,在進行數(shù)據(jù)處理時也會在內(nèi)部先轉換為字符類型,然后再進行相應的操作。對數(shù)據(jù)庫結構進行優(yōu)化后,聯(lián)合字段類型可以全部設置為字符串類型,這樣就簡化了內(nèi)部的類型轉換,提高了處理效率,檢索速度也是最快的。
要注意的是,最好不要讓整合后的聯(lián)合數(shù)據(jù)超過操作系統(tǒng)平臺所允許的長度,否則在開發(fā)時就要面臨來自操作系統(tǒng)的種種限制,會影響到用戶程序開發(fā)的效率。
3.3 整合數(shù)據(jù)的處理
對整合數(shù)據(jù)進行處理,主要是在工作數(shù)據(jù)庫與存儲數(shù)據(jù)庫之間建立起聯(lián)系的通道,數(shù)據(jù)檢索時,根據(jù)指定的條件,首先從存儲數(shù)據(jù)庫產(chǎn)生可選集,并以此為基礎建立工作數(shù)據(jù)庫,其后的大部分操作都是面向工作數(shù)據(jù)庫的,在內(nèi)存中完成,只有在操作結束后,或者數(shù)據(jù)出現(xiàn)變動的情況下,才與存儲數(shù)據(jù)庫進行數(shù)據(jù)交換[8]。
例如,在人員信息數(shù)據(jù)庫中,按姓名查找某個人員,直接輸入查詢條件,將優(yōu)化后的聯(lián)合字段作為操作對象即可。如果有多個查詢條件,比如姓名與性別,可以先對條件進行組合,把“姓名+性別”特征串作為查詢條件,然后在存儲數(shù)據(jù)庫中進行檢索。
由于存儲數(shù)據(jù)庫中的字段已經(jīng)被優(yōu)化,字段數(shù)量減少、存儲類型單一,因此,從存儲數(shù)據(jù)庫中檢索出可選集的效率得到大幅度提高。
3.4 注意事項
(1)使用SQL查詢語言
在可選集的產(chǎn)生過程中,應該充分利用數(shù)據(jù)系統(tǒng)的技術支持,比如SQL查詢技術及數(shù)據(jù)庫索引等技術。即使數(shù)據(jù)庫結構保持不變,使用SQL查詢語言,也可以成倍提高檢索的效率。在具體的檢索過程中,數(shù)據(jù)庫系統(tǒng)會自動建立索引文件,進一步提升數(shù)據(jù)檢索的速度。經(jīng)初步測算,使用SQL查詢語言比不使用在速度上可以提高幾十倍。
(2)用戶界面與工作數(shù)據(jù)庫
由于數(shù)據(jù)庫系統(tǒng)對用戶來說是不透明的,所以,應該在數(shù)據(jù)庫應用層面上建立特定的用戶接口程序,上面已經(jīng)提到,這部分工作是傳統(tǒng)的數(shù)據(jù)庫開發(fā)工作之外的額外工作,主要完成可選集的建立工作,與優(yōu)化后的數(shù)據(jù)庫結構相匹配。此類的開發(fā)工作并不復雜,主要內(nèi)容是進行大量的字符串變換。用戶接口程序是雙向工作的,在工作數(shù)據(jù)庫與存儲數(shù)據(jù)庫之間傳遞用戶的數(shù)據(jù)。應用系統(tǒng)對數(shù)據(jù)操作完成以后,用戶界面負責臨時數(shù)據(jù)庫中的內(nèi)容交換到存儲數(shù)據(jù)庫中,這個過程只在數(shù)據(jù)存在變換時進行。在用戶操作的過程中,使用的數(shù)據(jù)庫是臨時的工作數(shù)據(jù)庫,可以建立在原有數(shù)據(jù)庫系統(tǒng)的基礎上,使用臨時數(shù)據(jù)庫或者數(shù)據(jù)快照,把整合的數(shù)據(jù)重新恢復成內(nèi)容屬性的字段,這是與存儲數(shù)據(jù)庫無關的過程,只不過針對的是內(nèi)存中的臨時數(shù)據(jù)庫。因此,如果只是使用現(xiàn)有的數(shù)據(jù),而不進行數(shù)據(jù)的改動,這部分操作界面的實現(xiàn)相對簡單[9]。
4 使用定制數(shù)據(jù)庫(Using custom database)
如果數(shù)據(jù)規(guī)模不大,但對安全性要求較高,可以徹底擺脫數(shù)據(jù)庫系統(tǒng)的限制,采取用戶定制的數(shù)據(jù)庫,從底層上直接對數(shù)據(jù)進行操作,同時便于數(shù)據(jù)的加解密。目前這類系統(tǒng)在國內(nèi)的應用不多,也沒有引起大多數(shù)應用人員的重視。近年來,隨著網(wǎng)絡安全形勢的日益惡化,對于涉及國家重大利益的數(shù)據(jù)操作,安全性已經(jīng)成為系統(tǒng)開發(fā)的首要目標。因此,使用定制數(shù)據(jù)庫與密文存儲的技術,將是未來一段時間內(nèi)數(shù)據(jù)庫應用開發(fā)的重要方向。
定制數(shù)據(jù)庫的工作過程如圖3所示。
4.1 存儲形式
定制數(shù)據(jù)庫,可以用磁盤文件的形式直接存儲在物理介質上。如果數(shù)據(jù)量不大,可以將多張數(shù)據(jù)表格放在一個文件中,以簡化存儲結構。如果數(shù)據(jù)量較大,可以將數(shù)據(jù)表格單獨存儲,以提高數(shù)據(jù)處理的速度。
文件的格式可以采用BINARY或者ASCII編碼的形式,使用開發(fā)平臺下的文件存取指令進行操作。在文件的頭部或尾部,添加指定的數(shù)據(jù)表及數(shù)據(jù)塊的索引信息,用以標明文件的數(shù)據(jù)屬性。
在數(shù)據(jù)的組織上,仍然延用聯(lián)合字段的思想,只不過不再借用數(shù)據(jù)庫系統(tǒng)的字段結構,直接與磁盤文件進行數(shù)據(jù)交換。這樣就省去了數(shù)據(jù)的間接操作過程,在底層上控制數(shù)據(jù)的存儲,增加了數(shù)據(jù)存儲與處理的靈活性,提高了系統(tǒng)的工作效率。
在此類應用中,要求開發(fā)人員對數(shù)據(jù)庫系統(tǒng)的結構有大致的了解,除了常規(guī)的文件操作外,還應考慮大量的容災與安分方面的性能。由于對磁盤文件的操作只包括存儲與產(chǎn)生可選集兩個方面,類似的開發(fā)過程肯定比專業(yè)的數(shù)據(jù)庫系統(tǒng)簡化,否則就失去了定制開發(fā)的意義。
4.2 數(shù)據(jù)處理的過程
由于底層數(shù)據(jù)不再依賴數(shù)據(jù)庫系統(tǒng)的支持,在可選集產(chǎn)生之后,工作數(shù)據(jù)庫也沒有必要再使用數(shù)據(jù)庫系統(tǒng)提供的處理功能,而轉由常規(guī)的數(shù)據(jù)結構來實現(xiàn),比如使用動態(tài)數(shù)組或容器等結構。
這樣,在用戶界面的開發(fā)方面,就具有了更大的空間和靈活性,打包后的應用系統(tǒng)也更加精簡,便于移植與發(fā)行,拓寬了應用系統(tǒng)的應用領域,特別是對于一些安全性要求較高的場合較為適用。
在具體數(shù)據(jù)的處理過程中,仍然可以使用前面介紹的方法,只是在用戶界面的修飾方面,要下一定的功夫,達到與專業(yè)數(shù)據(jù)庫系統(tǒng)同樣的水平,這方面的開發(fā)工作不影響具體的數(shù)據(jù)應用,只是照顧用戶的原有操作習慣。
4.3 加解密過程
定制的本地數(shù)據(jù)庫,只對存儲環(huán)節(jié)進行加解密,正常的使用過程,只有數(shù)據(jù)變動時才需要與存儲數(shù)據(jù)庫進行數(shù)據(jù)交換,大部分操作都是針對內(nèi)存中的工作(臨時)數(shù)據(jù)庫進行的。此類數(shù)據(jù)加解密過程如圖4所示。
定制的網(wǎng)絡數(shù)據(jù)庫,可以通過直接調(diào)用底層的網(wǎng)絡傳輸協(xié)議進行訪問,數(shù)據(jù)加解密的過程在全部在客戶端實現(xiàn),經(jīng)過網(wǎng)絡傳輸?shù)臄?shù)據(jù)都是加密后的密文,這樣就有效確保了數(shù)據(jù)傳輸過程的安全性,也不必考慮眾多的網(wǎng)絡安全設備(如網(wǎng)絡防火墻、網(wǎng)絡安全網(wǎng)關等)的影響。
定制的網(wǎng)絡數(shù)據(jù)庫的加解密過程如圖5所示。
4.4 定制數(shù)據(jù)庫的開發(fā)環(huán)境
定制的數(shù)據(jù)庫不依賴于商業(yè)化的數(shù)據(jù)庫系統(tǒng),直接對磁盤文件進行讀寫。因此,在開發(fā)環(huán)境的選擇方面更加自由,包括普通的桌面系統(tǒng)、網(wǎng)絡化的C/S、B/S系統(tǒng)、移動(手機、平板)平臺等,都可以完成有效的開發(fā)工作。
而且,當基本的應用流程固定以后,可以在不同的平臺之間實現(xiàn)快速移植。一個平臺上開發(fā)完成的代碼,只需改動少量的外圍代碼,就可以應用到另一個平臺上。這樣,就徹底擺脫了平臺軟件與數(shù)據(jù)庫系統(tǒng)對用戶程序的開發(fā)限制,也減少了龐大的軟件與系統(tǒng)資源開銷,使開發(fā)工作變得更加簡單靈活。
IT產(chǎn)業(yè)發(fā)展到現(xiàn)階段,硬件的性能得到了很大的提升,原來依靠專業(yè)數(shù)據(jù)庫來支持的大型數(shù)據(jù)庫應用系統(tǒng),現(xiàn)在如果轉而使用定制的數(shù)據(jù)庫,可以將其部署在普通的硬件環(huán)境之上,幾百萬上千萬條的數(shù)據(jù)容量,可以輕而易舉地在新平臺上流暢運行。
在移動終端平臺上,使用定制的數(shù)據(jù)庫,能夠大大減少數(shù)據(jù)庫系統(tǒng)占用的開銷,轉而支持新的應用項目,使有效的硬件資源得到充分合理的運用。
5 應用實例 (Application examples)
以上技術最初應用于《列車時刻表查詢軟件V4.0》(軟著登字第0002941號)中,經(jīng)實際檢測,使用聯(lián)合字段對數(shù)據(jù)庫結構進行優(yōu)化以后,數(shù)據(jù)檢索的效率比優(yōu)化之前提高了70多倍,較好地解決了數(shù)據(jù)檢索速度的瓶頸。下面簡要介紹應用的過程。
(1)問題分析
交通信息的數(shù)據(jù)具有統(tǒng)一的規(guī)律,就是除了少數(shù)的數(shù)據(jù)以外,大部分數(shù)據(jù)都是重復性的信息,如到達某個站點的進出站時間與站名等信息。這種數(shù)據(jù)的特點,比較適合采用聯(lián)合字段的優(yōu)化方法。
如果按著常規(guī)的定義方法,每個班次的數(shù)據(jù)定義成一張獨立的表格,如果實現(xiàn)區(qū)域聯(lián)網(wǎng),數(shù)據(jù)量將是驚人的。當對聯(lián)網(wǎng)后的數(shù)據(jù)庫進行模糊檢索時,檢索效率低下的問題表現(xiàn)得十分明顯。因此,采用技術手段對數(shù)據(jù)庫結構進行優(yōu)化,是解決問題的一個途徑。正是基于這樣的思路,嘗試將聯(lián)合字段技術應用在大范圍交通信息數(shù)據(jù)庫系統(tǒng)的開發(fā)過程中,將每個班次的交通信息簡化成單條記錄,所有區(qū)域聯(lián)網(wǎng)的班次都納入一張數(shù)據(jù)表格中,大大簡化了數(shù)據(jù)存儲與處理的效率,較好地解決了同類系統(tǒng)開發(fā)過程中長期存在的癥結。
(2)數(shù)據(jù)單元
將中途站點的數(shù)據(jù)制作成數(shù)據(jù)單元,形式為:進站時間+站點名稱+出站時間,進出站時間的字符長度直接固定為5,如12:48,因此,數(shù)據(jù)單元的首尾長度都是確定的,只有中間的站點名稱是不確定的。始發(fā)站點與終到站點的數(shù)據(jù)不用特殊處理,直接按上述規(guī)則放入數(shù)據(jù)中即可。
(3)數(shù)據(jù)編輯
數(shù)據(jù)單元之間使用常規(guī)數(shù)據(jù)中不會出現(xiàn)的特殊字符進行連接,如“-”字符,一個班次的數(shù)據(jù)按著字符形式存儲在一條記錄中。數(shù)據(jù)處理時,通過檢索條件在存儲庫中產(chǎn)生初級可選集,然后對可選集進行具體的操作。
可選集的產(chǎn)生,可以使用數(shù)據(jù)庫系統(tǒng)提供的功能,組合SQL查詢條件。在可選集中,根據(jù)連接字符將記錄中的數(shù)據(jù)單元分離出來。每個數(shù)據(jù)單元,先分離出首尾的時間數(shù)據(jù),中間余下的就是站點名稱數(shù)據(jù),并依此建立臨時工作數(shù)據(jù)庫,與用戶接口程序進行交互。數(shù)據(jù)變動后,將數(shù)據(jù)進行逆向處理,最終完成存儲數(shù)據(jù)庫的更新過程。
(4)實例:區(qū)間模糊檢索
這是最常規(guī)的應用,只設定兩個站點的名稱,即可以檢索出區(qū)間內(nèi)的所有班次。檢索條件可以組合為:記錄中“前面包含‘出發(fā)站點名稱并且后面包含‘到達站點名稱”的可選集”。
(5)實例:生成站點的班次時刻表
時刻表是動態(tài)生成與顯示的,可以直接上物理的大屏系統(tǒng),為所有站點的出行人員提供信息服務。檢索條件可以組合為:記錄中“包含‘站點名稱”的可選集。在可選集中,根據(jù)進出站時間的特點,可以將班次的屬性區(qū)分開來,如始發(fā)、途經(jīng)與終到等班次。
6 結論(Conclusion)
通過對數(shù)據(jù)庫結構的優(yōu)化與定制,使數(shù)據(jù)類型單一化,不但簡化了存儲形式,而且可以快速實現(xiàn)數(shù)據(jù)的加解密過程,加解密運算全部在客戶端實現(xiàn),充分發(fā)揮了本地處理器的處理能力,不影響網(wǎng)絡數(shù)據(jù)的訪問速度。
可見,數(shù)據(jù)結構優(yōu)化后,簡化了數(shù)據(jù)結構,有效提高了數(shù)據(jù)的處理效率與安全性,節(jié)省了存儲空間,方便了數(shù)據(jù)的跨平臺移植,是小型數(shù)據(jù)庫應用系統(tǒng)開發(fā)的一種新思路,特別適合于以大量重復數(shù)據(jù)為主體的數(shù)據(jù)庫應用場合。
參考文獻(References)
[1] 李宏偉.地名本體數(shù)據(jù)庫存儲模式及應用研究[J].計算機應用與軟件,2012,29(4):35-38;74.
[2] 陳正舉.基于HIBERNATE的數(shù)據(jù)庫訪問優(yōu)化[J].計算機應用與軟件,2012,29(7):144-149.
[3] 林灃.分布式數(shù)據(jù)庫中空間拓撲連接查詢優(yōu)化處理方法研究[J].計算機應用與軟件,2013,30(11):247-250;282.
[4] 房俊華.DB-Tree:一種高性能的閃存數(shù)據(jù)庫索引結構[J].計算機應用與軟件,2013,30(11):243-246.
[5] 陳芬.改進量子粒子群算法優(yōu)化神經(jīng)網(wǎng)絡的數(shù)據(jù)庫重復記錄檢測[J].計算機應用與軟件,2014,31(3):20-21;115.
[6] 林桂亞.基于粒子群算法的數(shù)據(jù)庫查詢優(yōu)化[J].計算機應用研究,2012,29(3):947-949.
[7] 王兵.數(shù)據(jù)庫應用系統(tǒng)邏輯結構設計初探[J].現(xiàn)代計算機,2012,(5):14-17.
[8] 趙榮.分布式數(shù)據(jù)庫查詢優(yōu)化方法[J].科技視界,2013(5):120-121.
[9] 曹永峰.一種新的查詢優(yōu)化方法[J].計算機與現(xiàn)代化,2005(7):64-69.
作者簡介:劉東明(1966-),男,碩士,副教授.研究領域:數(shù)據(jù)庫,數(shù)字媒體技術.