管理模式
檔案與關係資料庫混合管理系統
檔案與關係資料庫混合管理系統一般用檔案管理系統管理空間數據,而用商用關係資料庫來管理屬性數據,它們之間的聯繫通過目標標識或內部標識碼進行連線。導致這種連線方式的主要原因是早期的資料庫管理系統不提供高級程式語言如c的接口,只能採用資料庫操縱語言,這樣通常會啟動兩個系統(GIS空間數據管理系統和關係資料庫管理系統),甚至是兩個系統來回切換,用起來很不方便。
全關係型空間資料庫管理系統
全關係型空間資料庫管理系統是指空間數據和屬性數據都用現有的關係資料庫管理系統管理。關係資料庫管理系統的軟體廠商不作任何的擴展,由GIS軟體商在此基礎上進行開發,使之不僅能管理結構化屬性數據,而且能管理非結構化的空間數據。其管理空間數據有兩種模式,一種是基於關係模型的方式,空間數據按照關係數據模式組織,這種方式在訪問空間數據時需要複雜的關係連線運算,非常費時:另一種是將空間數據的變長部分處理成Binary二進制塊Block欄位,這種方式省去了前面所述的大量關係連線操作,但二進制塊讀寫效率要比定長的屬性欄位慢得多,特別是牽涉到對象得嵌套,速度更慢。
大多數商用GIS平台採用關係型資料庫管理系統(RDBMS ),在處理複雜數據、進行複雜操作時有很多限制難以克服。RDBMS向對象關係資料庫管理系統(ORDBMS )或面向對象的資料庫管理系統(OODBMS )過渡是大勢所趨。
面向對象空間資料庫管理系統
面向對象模型最適應於空間數據的表達和管理,它不僅支持變長記錄,而且支持對象的嵌套、信息的繼承與聚集。面向對象的空間資料庫管理系統允許用戶定義,對象和對象的數據結構以及它的操作。當前已經推出了若干個面向對象資料庫管理系統如02等,也出現了一些基於面向對象的資料庫管理系統的地理信息系統,如GDE等。
面向對象的方法具有很強的數據建模能力。首先,通過類定義機制,資料庫設計者可以創建新的數據類型,直接完成實體的建模,而不會局限於預先定義的數據類型與操作;第二,OODBMS的指針數據類型在表達目標之間的關係時十分有利;第三,通過繼承可以表達類型/子類型之間的關係。子類可以從超類中繼承變數與方法:第四,目標行為建模擴展了建模的套用範圍。此外,不需要對數據類型進行標準化可以大量減少數據冗餘RDBMS中的關係表數目。
對於GIS套用,最初時傾向於採用OODBMS的方法,它所提供的建模語義的豐富的可擴展性及其與程式語言緊密結合的完整計算方法,非常具有吸引力。但是由於OODBMS缺乏有效的查詢語言支持,管理與維護的複雜度很大,在GIS界並沒有引起廣泛的共鳴。相反,隨著各大RDBMS廠商對關係數據模型大刀闊斧的有效擴展和商業化實現,使得面向對象的關係資料庫管理系統重新煥發了無窮的生命力,也成為當前海量空間數據管理的有效載體。對象關係數據模型也成為空間數據表達的有效技術手段。
對象關係資料庫管理系統
由於直接採用通用的關係資料庫管理系統的效率不高,而非結構化的空間數據又十分重要,所以許多空間數據系統的軟體商紛紛在關係資料庫管理系統中進行了擴展,使之能直接存儲和管理非結構的空間數據,如Informix, Oracle等推出了空間數據專用模組,定義了點、線、面、圓、長方形等數據對象的API函式。這些函式,將各種空間對象的數據結構進行了預先的定義,用戶使用時必須滿足它的數據結構的要求,用戶不能根據GIS的要求再定義。
這種擴展的空間對象管理模組主要解決了空間數據變長記錄的管理,雖然它仍然沒有解決對象的嵌套問題,空間對象也不能由用戶任意定義,但效率要比前面所述的二進制塊的管理高的多,這種關係資料庫通過擴展數據模型而帶來巨大優勢:
通過允許增加新的、用戶定義的抽象數據類型(ADTs)及面向對象程式語言的其他特徵,如繼承、操作函式、封裝等提高RDBMS的數據類型系統。由於是基於RDBMS的擴展,RDBMS上大量的工作成果得以保留。本質上,這是一種關係世界的SQL和對象世界的基本建模元素之間的結合。
採用面向對象語言的編程模型,增加一些特徵,以維護數據的持續性及程式執行的原子性。
空間數據管理的特殊需求
空間數據主要有5種不同於傳統屬性數據的屬性:
空間化
每個空間幾何對象都具有空間坐標,即空間幾何對象隱含了空間分布特徵,這意味空間資料庫在空間數據組織方面,要考慮它的分布特徵,除了要具備通用的資料庫所具有的關鍵字索引外,一般還要具備空間索引
能力。
非結構化
在當前通用的關係資料庫管理系統中,數據記錄一般是結構化的。即它滿足關係數據模型的第一範式,每一條記錄是定長的,數據項的表達只能是原子結構,不允許嵌套記錄。而空間數據則不能滿足這種結構化的要求。若將一條記錄表達一個空間對象,它的數據項可能是變長的,它可能是2對坐標,也可能是10萬對坐標;其二,1個對象可能包含另外的1個或多個對象,例如,1個多變形,它可能含有多條段弧段。若一條記錄表示1個弧段,在這種情況下,1條多邊形的記錄就可能嵌套多條弧段的記錄,所以不能滿足關係數據的範式要求,這也是為什麼空間幾
何數據難以直接採用通用的關係數據管理的主要原因。
空間關係
空間數據除了前面所述的空間坐標隱含了空間分布關係外。空間數據中記錄的拓撲信息表達了多種空間關係。這種拓撲數據結構一方面方便了空間查詢和空間分析,另一方面也給空間數據的一致性和完整性維護增加了複雜度,特別是有些幾何對象,沒有直接記錄空間坐標的信息,如拓撲地面狀目標,僅記錄組成它的弧段的標識,因而進行查詢、顯示和分析操作時都要操作和檢索多個數據檔案方能得以要實現。
分類編碼
一般而言,每一個空間對象都有一個分類編碼,而這種分類編碼往往屬於國家標準,或行業標準,或地區標準,每一種空間幾何對象的類型在某個GIS中的屬性項個數是相同的。因而在許多情況下,一種空間幾何對象類型對應於一個屬性數據表檔案。當然,如果幾種空間幾何對象類型的屬性項相同,也可以多種空間幾何對象類型共用一個屬性數據表檔案。
海量空間數據
空間數據量是巨大的,通常稱為海量數據。之所以成為海量數據是指的數據量一般比通常的數據要大得多,一個城市的地理信息系統的數據量可能達幾十GB,如果考慮影象數據的存儲,可能大幾百個GB;對於全國的地理信息系統來說,其數據量更大,達到幾十TB,甚至是幾百TB,這樣大的數據量要求空間資料庫也必須具有海量空間數據的存儲能力。
實現方式
目前基於空間資料庫的組織管理實現主要有兩種方式:面向對象方式和對象一關係型方式。
面向對象方式將對象的空間數據和非空間數據以及操作封裝在一起,由對象資料庫統一管理,並支持對象的嵌套、信息的繼承和聚集,這是一種非常適合空間數據管理的方式。但目前該技術尚不成熟,特別是查詢最佳化較為困難。
對象一關係型是目前空間資料庫的主要技術,它綜合了關係資料庫和面向對象資料庫的優點,能夠直接支持複雜對象的存儲和管理。GIS軟體直接在對象關係資料庫中定義空間數據類型、空間操作、空間索引等,可方便地完成空間數據管理的多用戶並發、安全、一致性/完整性、事務管理、資料庫恢復、空間數據無縫管理等操作。因此,採用對象關係型資料庫是實現空間數據管理的一種較為理想的方式。當前,一些資料庫廠商都推出了空間數據管理的專用模組,如IBM Informix的Spatial DataBlade Module,IBM DB2的Spatial Extender和Oracle的Oracle Spatial等,儘管其功能有待進一步完善,但己給空間數據的套用及GIS軟體開發帶來了極大的方便。
系統結構與功能
空間資料庫管理系統的結構如圖所示:
具體來說系統要實現的主要功能:
合理的空間數據存儲與組織
空間資料庫管理系統在面向空間實體及其對象關係數據模型的支持下,實現空間數據的組織和存儲,空間位置等信息僅作為空間實體的一個屬性。從而改變現有的以圖層為單位的空間數據組織模式。空間數據的存儲將空間信息關係化,在統一的空間數據模型的支持下,實現在成熟的商用資料庫管理系統中的關係化存儲。為實現“空間一屬性數據一體化”、“矢量一柵格數據一體化”和“空間信息一業務信息一體化,,奠定基礎。同時通過建立合理的包括拓撲在內的空間索引機制,以提高空間數據的訪問和操作效率。
統一的空間數據訪問
空間數據的訪問是現有對象關係資料庫管理系統的SQL的有效擴充,所有的空間數據訪問採用擴充SQL這一統一的接口來實現。
高效的空間數據操作
所有的空間操作以統一的空間數據模型為基礎,緊密結合商用資料庫管理系統的特點和優點,利用商用資料庫管理系統的功能,從資料庫管理系統底層實現空間數據的操作,併合理利用空間數據索引技術,實現空間數據的高效操作。
統一的元數據管理
參考國際和國內的相關標準,設計和實現空間資料庫管理系統的元數據規範,為用戶訪問和操作空間數據提供充分的空間數據語義信息。
用戶管理
用戶管理是實現數據安全的有效保障。空間資料庫管理系統的用戶管理必須緊密結合商用資料庫管理系統中的用戶管理,是在商用資料庫管理系統用戶管理的擴充和發展。
並發管理
空間資料庫管理系統支持多用戶並發訪問,設計合理的多用戶並發訪問控制機制可以大大提高系統的性能,並使得空間信息達到最大程度的共享。
長事務處理
長事務處理是空間信息處理中的一個必須的功能。利用關係資料庫管理系統的功能,設計和實現長事務處理的合理機制。
支持空間數據倉庫的建立
空間數據倉庫和在線上空間分析是進行空間分析決策的基礎,空間數據倉庫集成現有的空間資料庫系統數據,進一步發掘空間數據的潛在信息。
系統特徵
1.具有一套能代表原始空間數據類型(點、線、面)的空間數據類型集,以及在這些數據類型上進行複雜數據類型的生產和運算,比如交匯和距離。
2.空間數據類型和操作必須是標準查詢語言的一部分,在系統中必須可以通過它來訪問和操作空間數據。例如,關係型資料庫系統SQL可以被擴展成支持空間數據類型和操作。
3.系統應提供性能最佳化,比如處理空間查詢(區域查詢和聯合查詢)的索引,上載和查詢同時進行,這些對空間數據非常有用的。