遲洋 李春風(fēng) (天津開發(fā)區(qū)測量隊 天津300456)
GML空間數(shù)據(jù)在Oracle XML DB 11g中的存儲機(jī)制研究
遲洋 李春風(fēng) (天津開發(fā)區(qū)測量隊 天津300456)
GML數(shù)據(jù)的存儲研究還屬于一個嶄新的領(lǐng)域,目前還沒有一個比較完好的技術(shù)實現(xiàn)方法。在分析比較Oracle XML DB存儲模式的基礎(chǔ)上,考慮GML空間數(shù)據(jù)的特點(diǎn),研究GML空間數(shù)據(jù)在Oracle中的存儲機(jī)制,并分析儲存模式的優(yōu)劣。利用Oracle XML DB實現(xiàn)對GML數(shù)據(jù)的存儲是GIS空間數(shù)據(jù)管理方面研究的一條新的思路和途徑。
地理信息 Oracle XML DB 二進(jìn)制XML存儲 GML空間數(shù)據(jù)
長期以來,由于空間數(shù)據(jù)模型的不同導(dǎo)致空間信息在共享、集成等方面存在著諸多困難,造成了各行各業(yè)和各部門的空間信息難以實現(xiàn)互訪,形成了一個個“信息孤島”,造成社會財力和人力的巨大浪費(fèi)。為了解決這些問題,開放地理信息系統(tǒng)協(xié)會(OGC)提出地理標(biāo)記語言(GML)實施規(guī)范,GML作為Intemet環(huán)境下空間信息的全新、簡潔、統(tǒng)一的編碼標(biāo)準(zhǔn),為空間數(shù)據(jù)建模、柵/矢一體化GIS體系研究、Webgis開發(fā)、空間數(shù)據(jù)共享與互操作研究等提供了新的方法和途徑。作為基于XML的地理標(biāo)記語言,鑒于GML的文本性、自描述性、可擴(kuò)展性、內(nèi)容與表現(xiàn)分離性、開放性、互操作等特性,使得GML被廣泛關(guān)注、研究與實踐,大量甚至海量的GML空間數(shù)據(jù)正不斷產(chǎn)生。如何對其進(jìn)行有效管理,從而實現(xiàn)GML空間數(shù)據(jù)的高效存儲、索引等,是GML相關(guān)研究者、GML空間數(shù)據(jù)使用者所必須面對的重要問題。
針對GML空間數(shù)據(jù)的管理,存在基于關(guān)系型數(shù)據(jù)庫管理和基于原生模式XML數(shù)據(jù)庫管理兩大類。原生模式XML數(shù)據(jù)庫(NXD)是一個新生事物,且其自身的許多方面還在不斷研究和發(fā)展中,還沒有形成像關(guān)系型數(shù)據(jù)庫那樣成熟的標(biāo)準(zhǔn),采用原生模式對文檔型GML空間數(shù)據(jù)進(jìn)行存儲管理并不理想。由于GML數(shù)據(jù)XML格式的特點(diǎn),采用關(guān)系型數(shù)據(jù)庫對GML空間數(shù)據(jù)進(jìn)行管理具有與生俱來的優(yōu)勢,但傳統(tǒng)的關(guān)系數(shù)據(jù)庫技術(shù)并不適合海量復(fù)雜的GML空間數(shù)據(jù)的存儲與管理。針對以上不足,本文在分析GML空間數(shù)據(jù)的表達(dá)描述的基礎(chǔ)上,研究利用Oracle XML DB 11g數(shù)據(jù)庫來存儲海量復(fù)雜的GML空間數(shù)據(jù)的方案,為海量復(fù)雜的GML空間數(shù)據(jù)的存儲、管理和應(yīng)用提供新的思路和方法。
GML作為XML的一種擴(kuò)充,它主要是由GML模式(GML Schema)、GML 應(yīng)用模式(GML Application Schema)以及 GML實例數(shù)據(jù)(GML Instance Data)3個部分組成,其中GML模式是由OGC定義的,而應(yīng)用模式是根據(jù)應(yīng)用領(lǐng)域的不同來定義,通過擴(kuò)展或限制GML模式中定義的類型為應(yīng)用領(lǐng)域定義所需的類型;最后根據(jù)具體的數(shù)據(jù)并依照GML Application Schema的規(guī)范形成GMLInstance Data。具體生成過程參見圖1。
首先將現(xiàn)實世界的地理實體抽象形成幾何體,接著對幾何體添加空間和非空間屬性使之成為地理要素,再用GML來定義地理要素相互之間的關(guān)系和結(jié)構(gòu),然后根據(jù)定義的結(jié)構(gòu)用GML Schema生成Application Schema,最后根據(jù)Application Schema中定義的元素再結(jié)合具體的數(shù)據(jù)生成Instance Data,從而使地理要素資料成為GML數(shù)據(jù)。
對于空間數(shù)據(jù)來說,每種數(shù)據(jù)都有自己的空間幾何模型。實現(xiàn)空間數(shù)據(jù)GML格式轉(zhuǎn)換的本質(zhì)是建立兩者之間的映射關(guān)系,可通過對GML基本的XML Schema的擴(kuò)充來實現(xiàn)兩者的映射,通過建立各種空間對象的XML Schema可對這些空間對象進(jìn)行描述。
GML是建立在XML shema基礎(chǔ)上,用于描述空間地理數(shù)據(jù),并編碼和保存為XML數(shù)據(jù)格式的語法和機(jī)制。在這個基礎(chǔ)上,還允許用戶進(jìn)一步開發(fā)符合需要的工作子集。目前,OGC先后推出了3個版本的GML,本文采用GML3.0進(jìn)行建模研究。
GML3.0由32個基本的XML Schema構(gòu)成,通過這些模式定義來表達(dá)與描述地理現(xiàn)實世界的信息,其中主要的模式有要素模式(Feature Schema)、幾何模式(Geometry Schema)、拓?fù)淠J剑═opologySchema)、時間模式(Temporal Schema)等。
地理要素包含一系列的空間和非空間屬性,要素模式為創(chuàng)建GML的要素和要素集合提供了一個框架,它定義了抽象和具體的元素及要素類型,并通過<include>元素引入了幾何模式和時態(tài)模式中的定義和聲明。幾何模式詳細(xì)地描述了地理要素的幾何模型,定義了具體的幾何形狀信息,它提供的點(diǎn)、線、面、曲線、多邊形、點(diǎn)集、線集、多邊形集等類型可以直接使用,用這些基本信息可以描述一些地物的地理性質(zhì)。時態(tài)模式擴(kuò)展了GML的核心元素,使其包括描述地理數(shù)據(jù)時態(tài)特征的元素,它提供一種框架用于描述動態(tài)要素的時間變化。拓?fù)淠J蕉x了反映地理要素之間關(guān)系的拓?fù)鋵ο?,用來解決地物之間的拓?fù)潢P(guān)系。
GML是一個開放的框架結(jié)構(gòu),32個基本的Schema相當(dāng)于32個基類,通過對這32個基本Schema的繼承和擴(kuò)展,可以利用自己定義的Schema來對地理數(shù)據(jù)進(jìn)行編碼,實現(xiàn)以XML的方式對地理信息的表達(dá)和描述。
Oracle公司從Oracle9i開始推出了Oracle XML DB,Oracle XMLDB是Oracle數(shù)據(jù)庫所提供的高性能XML存儲和檢索技術(shù)的集合,不僅提供目前最復(fù)雜和完整的關(guān)系數(shù)據(jù)庫所提供的所有功能,還提供與原生模式XML數(shù)據(jù)庫所相關(guān)的所有功能。Oracle 11g又增加了對XML的二進(jìn)制存儲、新的XMLIndex索引和許多其他實現(xiàn)高性能存儲以及檢索結(jié)構(gòu)化、非結(jié)構(gòu)化XML文檔的功能。
Oracle用XMLType數(shù)據(jù)類型來存儲XML數(shù)據(jù),它是為了保留XML的范型同時獲取關(guān)系型結(jié)構(gòu)在性能與擴(kuò)展上的優(yōu)勢而創(chuàng)建的,是一種本機(jī)服務(wù)器數(shù)據(jù)類型。這種數(shù)據(jù)類型用來定義表格的列或者視圖,可以用SQL>CREATE TABLE TOUR OF XMLType來創(chuàng)建XMLType表,通過創(chuàng)建XMLType數(shù)據(jù)類型,Oracle XMLDB可以將XML應(yīng)用數(shù)據(jù)存儲到數(shù)據(jù)庫中。
在Oracle XML DB 11g中,XMLType數(shù)據(jù)類型有3種不同的存儲模式,即結(jié)構(gòu)化存儲(對象-關(guān)系型)、非結(jié)構(gòu)化存儲(CLOB)、二進(jìn)制XML存儲。
GML文檔都是符合特定GML應(yīng)用模式的實例文檔,所以在Oracle XMLDB中存儲GML數(shù)據(jù),首先需要注冊這種應(yīng)用模式,模式可以通過DBMS_XMLSCHEMA包中的registerschema()函數(shù)進(jìn)行注冊。
結(jié)構(gòu)化存儲是將GML文檔分解為一系列的對象存儲到本地數(shù)據(jù)庫一個或者多個關(guān)系表中。當(dāng)在Oracle XMLDB中注冊了XML模式以后,需要的本地數(shù)據(jù)庫類型的定義就會從XML模式生成。本地數(shù)據(jù)庫類型定義產(chǎn)生于XML模式中定義的complexTyle,由complexTyle定義的每一個元素和屬性成為對應(yīng)的本地數(shù)據(jù)庫類型的屬性。產(chǎn)生的本地數(shù)據(jù)庫類型與XML模式一致的XML內(nèi)容分解并存儲到數(shù)據(jù)庫對象中,沒有任何信息的丟失,當(dāng)文檔存入時,由XML模式定義的結(jié)構(gòu)被直接映射成相應(yīng)的本地數(shù)據(jù)庫類型。
用結(jié)構(gòu)化存儲創(chuàng)建XMLType表聲明如下:
利用非結(jié)構(gòu)化存儲可以用來存儲不基于模式的文檔,但也可以用來存儲GML空間數(shù)據(jù),可以將GML文檔作為整體存儲到一個CLOB字段中,但必須對XMLType表進(jìn)行聲明:
在Oracle數(shù)據(jù)庫11g中,利用二進(jìn)制XML存儲可以將GML文檔解析成一種中間狀態(tài),然后以二進(jìn)制的方式存儲到CLOB中。首先創(chuàng)建二進(jìn)制XMLType表,然后利用XMLTable()函數(shù)創(chuàng)建可以高效查詢二進(jìn)制XML表的關(guān)系視圖。
用二進(jìn)制XML存儲創(chuàng)建XMLType表聲明如下:
結(jié)構(gòu)化存儲和非結(jié)構(gòu)化存儲是Oracle中非常典型的兩種存儲方式,CLOB型存儲格式可以避免將XML數(shù)據(jù)拆散存儲,而對象表的存儲方式則更有利于進(jìn)行節(jié)點(diǎn)級的查詢。但都有不足之處,非結(jié)構(gòu)化存儲占用的空間最大且查詢性能最差,結(jié)構(gòu)化存儲速度比非結(jié)構(gòu)化儲存慢。
二進(jìn)制XML存儲綜合了結(jié)構(gòu)化和非結(jié)構(gòu)化存儲模式的優(yōu)點(diǎn),用以聯(lián)接結(jié)構(gòu)化和非結(jié)構(gòu)化存儲的現(xiàn)有本機(jī)存儲模型。二進(jìn)制XML存儲可以感知XML模式,可以獲得更高的磁盤空間效率和查詢性能,提供比非結(jié)構(gòu)化存儲更高效的數(shù)據(jù)庫存儲、更新、查詢、索引和片段提取的性能。與結(jié)構(gòu)化存儲類似,數(shù)據(jù)和元數(shù)據(jù)也可通過二進(jìn)制存儲在數(shù)據(jù)庫級別分離,以提高效率,而且可以存儲混合的可變數(shù)據(jù)和元數(shù)據(jù)。但它的查詢性能卻遜色于結(jié)構(gòu)化存儲,二進(jìn)制XML存儲模式易于使用,只要可以接受二進(jìn)制XML存儲在關(guān)系訪問時的查詢性能,二進(jìn)制XML存儲就是一個很好的GML空間數(shù)據(jù)存儲方式,因此在選擇結(jié)構(gòu)化存儲GML前值得對其進(jìn)行評價。
由于GML數(shù)據(jù)的存儲研究還屬于一個嶄新的領(lǐng)域,日前還沒有一個比較完好的技術(shù)實現(xiàn)方法。本文在分析比較Oracle XMLDB數(shù)據(jù)存儲的基礎(chǔ)上,考慮GML空間數(shù)據(jù)的特點(diǎn),研究GML空間數(shù)據(jù)在Oracle 11g數(shù)據(jù)庫中的存儲方法。利用Oracle XML DB實現(xiàn)對GML數(shù)據(jù)的存儲是GIS空間數(shù)據(jù)管理方面研究的一條新的思路和途徑,將有利于推動GIS之間的數(shù)據(jù)共享及Web GIS的發(fā)展。目前國內(nèi)外有不少GIS界的學(xué)者在致力于這方面的研究,相信在不久的將來會出現(xiàn)具備更完善功能的GML數(shù)據(jù)庫系統(tǒng)?!?/p>
[l]Oracle.Oracle Database lOgRlXMLDB Technical Whitepaper[EB/O L].http://dow nload.oracle.com/technology/tech/xml/xmldb/current/twp.pdf,2005.
[2]朱前飛,高芒,廖俊國.一種基于G M L的空間數(shù)據(jù)共享方案的研究[J].工程勘察,2004,(1):57-63.
[3]史婷婷,李巖,王鵬.基于GML空間數(shù)據(jù)儲存方法研究與實現(xiàn)[J].計算機(jī)應(yīng)用,2006,26(10):2409-2410.
[4]陳建華.原生模式GML空間數(shù)據(jù)管理機(jī)制研究[D].成都:成都理工大學(xué),2008:14-17.
[5]潘雨青,陳天滋.基于GML的地理空間數(shù)據(jù)模型[J].江蘇大學(xué)學(xué)報,2002,23(6):82-85.
2011-05-09