相對于結(jié)構(gòu)化數(shù)據(jù)而言,非結(jié)構(gòu)化數(shù)據(jù)指不方便用數(shù)據(jù)庫二維邏輯表來表現(xiàn)的數(shù)據(jù)。高校非結(jié)構(gòu)化檔案數(shù)據(jù)包括由各類業(yè)務系統(tǒng)產(chǎn)生的檔案數(shù)據(jù),隨著高校非結(jié)構(gòu)化檔案數(shù)據(jù)不斷膨脹,高校對數(shù)字檔案館的信息處理能力和信息資源建設能力提出了更高要求。目前應用的各種管理非結(jié)構(gòu)化數(shù)據(jù)的技術存在諸多弊端,如,處理不同文件時,服務器的寫入路徑需要變換,由此給數(shù)據(jù)管理帶來很多不便,還容易造成文件丟失。下面,筆者介紹幾種非結(jié)構(gòu)化檔案數(shù)據(jù)數(shù)據(jù)庫管理技術及其應用,并比較其適用性,以供高校選擇。
XML即可擴展標記語言(Extensible Markup Language),它作為純文本文件,不受操作系統(tǒng)、軟件平臺的限制,可交換性良好;它是一種自描述語言,可以用來對非結(jié)構(gòu)化檔案數(shù)據(jù)進行描述。關系數(shù)據(jù)庫經(jīng)過二十幾年的發(fā)展,因具備良好的事務處理能力、可進行JOIN等復雜查詢、擁有近乎標準的模型和良好的穩(wěn)定性,被廣泛應用于各個數(shù)據(jù)庫系統(tǒng)中。但關系數(shù)據(jù)庫本身無法直接處理非結(jié)構(gòu)化數(shù)據(jù),需要將非結(jié)構(gòu)化數(shù)據(jù)資源統(tǒng)一轉(zhuǎn)換成XML文檔,通過映射策略將XML數(shù)據(jù)項加載到關系數(shù)據(jù)庫,利用關系數(shù)據(jù)庫的強大處理能力實現(xiàn)資源的存儲、檢索和共享。
非關系數(shù)據(jù)庫(Not Only SQL,簡稱NoSQL)對集群有良好的支持性,可以用來解決對數(shù)據(jù)庫的高并發(fā)讀寫、海量大數(shù)據(jù)的高效存取問題。NoSQL可以直接對半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進行存儲與管理,其中MongoDB作為NoSQL家族中的代表產(chǎn)品之一,能夠?qū)崿F(xiàn)關系數(shù)據(jù)庫單表查詢的絕大部分功能,在管理非結(jié)構(gòu)化檔案數(shù)據(jù)方面具有很大優(yōu)勢。MongoDB可以支持任意格式和任意大小的文件,數(shù)據(jù)被存儲在MongDB中會被自動分割成許多塊,每塊包括本塊的元數(shù)據(jù)和具體數(shù)據(jù)兩部分,分塊后的數(shù)據(jù)由Mongos路由服務器根據(jù)負載狀況分配存儲到某一特點的shard上。NoSQL與關系數(shù)據(jù)庫為互補關系,在應用中要發(fā)揮NoSQL長于存儲和檢索的功能,將占用空間比較大的非結(jié)構(gòu)化檔案數(shù)據(jù)及其元數(shù)據(jù)存到NoSQL中,將占用空間不大的元數(shù)據(jù)信息復制導入到關系數(shù)據(jù)庫中進行管理,以保持數(shù)據(jù)之間的聯(lián)系。
關系數(shù)據(jù)庫一般只對主鍵(key,用于區(qū)分每行記錄的唯一性字段)進行檢索,檢索非主鍵內(nèi)容時速度較慢。可將非結(jié)構(gòu)化數(shù)據(jù)記錄作為key/value進行存儲,key作為主鍵,其余數(shù)據(jù)作為一個整體Value,把key和Value的每一個屬性組成二維子表。為了存儲方便,將不定長的字段值的存儲轉(zhuǎn)化為定長的子塊進行存儲,并對每一個字段值分配定長空間進行存儲。
XML轉(zhuǎn)換成關系數(shù)據(jù)庫存儲技術,適用整合非結(jié)構(gòu)化的異構(gòu)數(shù)據(jù),能夠?qū)崿F(xiàn)關系數(shù)據(jù)庫對非結(jié)構(gòu)化檔案數(shù)據(jù)的管理,而關系型數(shù)據(jù)庫尤其善于處理“關系”的特性,便于挖掘電子檔案之間的關聯(lián)性。但使用這一方法抽取轉(zhuǎn)換海量數(shù)據(jù)需耗費大量時間,且存在出錯的概率;關系數(shù)據(jù)庫難以應付集群操作,這一特點也使得當數(shù)據(jù)量分散在集群的各臺服務器上時,數(shù)據(jù)庫處理數(shù)據(jù)力不從心。此外,關系數(shù)據(jù)庫要求字段結(jié)構(gòu)和長度固定,在處理存儲數(shù)據(jù)大小不一致的非結(jié)構(gòu)化檔案數(shù)據(jù)時,會產(chǎn)生空間浪費。規(guī)模較小、產(chǎn)生的數(shù)據(jù)量相對有限的高校,可考慮采用這一技術。
NoSQL是web2.0時代針對關系型數(shù)據(jù)庫處理大數(shù)據(jù)時的瓶頸問題而產(chǎn)生的,NoSQL以良好的存儲擴展性和存儲優(yōu)化能力、高效的數(shù)據(jù)檢索能力、結(jié)合關系型數(shù)據(jù)庫良好的數(shù)據(jù)關聯(lián)性挖掘能力,是處理“海量”非結(jié)構(gòu)化數(shù)據(jù)的理想方法。但這一技術也存在不少弊端,以MongDB為例,MongDB不能執(zhí)行多表間的關聯(lián)復雜查詢,也不能挖掘電子檔案的關聯(lián)性,且不具備事務處理能力,當多用戶對同一個數(shù)據(jù)進行讀寫并發(fā)操作時,可能會出現(xiàn)數(shù)據(jù)不一致的情況。產(chǎn)生數(shù)據(jù)量龐大、資金充裕、技術力量強的高校可以采用這種技術。
將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為二維關系存儲于關系型數(shù)據(jù)庫,是提升關系型數(shù)據(jù)庫數(shù)據(jù)存儲能力和檢索效率的改良手段,其突出優(yōu)點是完全建立在成熟的關系數(shù)據(jù)庫技術的基礎上,穩(wěn)定性好。但這一技術擴展性較差、開發(fā)成本比較高,存儲海量非結(jié)構(gòu)化檔案數(shù)據(jù)時需要配置比較高端的服務器;拆分成二維表后,查詢語句不適合表達數(shù)據(jù)間過于復雜的“關系”,尤其在表達過于復雜的嵌套關系時比較困難,在檢索關聯(lián)性數(shù)據(jù)的智能性時會受到一定影響。這一技術一般只限于資金充裕的高校采用。
總之,以上列出的非結(jié)構(gòu)化檔案數(shù)據(jù)的數(shù)據(jù)庫管理技術各有優(yōu)缺點,高校應結(jié)合實際情況進行選擇,以做好大數(shù)據(jù)環(huán)境下的檔案工作。