賀 挺,楊 柳,陳真玄,楊 非
(水利部信息中心,北京 100053)
隨著水利信息化的發(fā)展,各類水利信息系統(tǒng)的建設(shè)日益豐富。這些系統(tǒng)內(nèi)部的數(shù)據(jù)來源存在著很大差異,有來自關(guān)系數(shù)據(jù)庫中存儲(chǔ)的結(jié)構(gòu)化水利業(yè)務(wù)數(shù)據(jù),也有半結(jié)構(gòu)化的水利空間業(yè)務(wù)數(shù)據(jù)等。平臺(tái)架構(gòu)、通信方式和數(shù)據(jù)結(jié)構(gòu)的差異阻礙了不同水利信息系統(tǒng)之間數(shù)據(jù)的有效共享。XML(可擴(kuò)展標(biāo)記語言)作為一種半結(jié)構(gòu)化語言,具有良好的信息表達(dá)功能,因此在信息交換、數(shù)據(jù)存儲(chǔ)及異構(gòu)數(shù)據(jù)集成方面擁有廣泛的應(yīng)用前景,并成為當(dāng)前互聯(lián)網(wǎng)上信息交換的主要標(biāo)準(zhǔn)。在水利信息系統(tǒng)數(shù)據(jù)集成方面,XML 被用于結(jié)構(gòu)化和半結(jié)構(gòu)化水利數(shù)據(jù)的表達(dá)[1],異構(gòu)水利業(yè)務(wù)數(shù)據(jù)的集成工具[2],水利業(yè)務(wù)平臺(tái)信息共享的標(biāo)準(zhǔn)語言[3],以及水利遙感元數(shù)據(jù)的存儲(chǔ)[4]。
XML 的存儲(chǔ)主要有關(guān)系式和 NoSQL 2 種模式。對(duì)于 XML 文檔的關(guān)系式存儲(chǔ),常采用 XRel模式,采用與關(guān)系數(shù)據(jù)庫兼容的邏輯存儲(chǔ)模式和索引方法對(duì) XML 文檔進(jìn)行存儲(chǔ)和檢索[5]。XRel 通過SQL 語句實(shí)現(xiàn) XML 文檔的存儲(chǔ),能夠很好地支持基于元素路徑關(guān)系的 XML 數(shù)據(jù)查詢(XPath)。但XRel 模式存在以下缺點(diǎn):1)XRel 模式中 XML 文檔的結(jié)構(gòu)通過基于前序-后序關(guān)系的 Dietz 編碼[6]存儲(chǔ),對(duì)動(dòng)態(tài) XML 文檔的操作效率很低。原因在于當(dāng)面臨新元素插入或元素刪除的情景時(shí),XRel 模式需要重新對(duì)整個(gè)文檔樹進(jìn)行編碼,這不但改變了原有元素的編碼值,更降低了文檔的存儲(chǔ)和檢索效率。2)關(guān)系存儲(chǔ)模式具有高度結(jié)構(gòu)化特點(diǎn),對(duì)于某些沒有提供內(nèi)部結(jié)構(gòu)說明的 XML 文檔,在存儲(chǔ)過程中容易導(dǎo)致信息的丟失。……