高性能桌面空間數(shù)據(jù)庫研究

杜曉敏,余志偉,王爾琪

( 1. 中國礦業(yè)大學( 北京) 地球科學與測繪學院,北京 100083; 2. 北京超圖軟件股份有限公司,北京 100096; 3. 中國科學院 地理科學與資源研究所,北京 100101)

論文來源:測繪與空間地理信息

摘要:以超圖軟件股份有限公司( 簡稱超圖) 新一代“共相式 GIS 內核”的桌面空間數(shù)據(jù)庫項目為支撐,闡述了桌面型空間數(shù)據(jù)庫的特點,研究中面臨的技術難題,以及筆者的簡要實現(xiàn)思路。同時將實現(xiàn)的桌面空間數(shù)據(jù)庫在性能、兼容性和穩(wěn)定性方面的表現(xiàn)與同類產(chǎn)品進行了對比測試和說明。最…

關鍵詞: 空間數(shù)據(jù)庫; 桌面空間數(shù)據(jù)庫; GIS 文件格式; 桌面數(shù)據(jù)庫

0 引 言

空間數(shù)據(jù)庫管理系統(tǒng)是 GIS 軟件的核心,每一次 GIS數(shù)據(jù)存儲技術的變革都帶來 GIS 軟件的革命[1]。其發(fā)展經(jīng)歷了從空間圖形文件到空間、屬性分別以文件存儲的模式,到現(xiàn)在的以關系型數(shù)據(jù)庫進行統(tǒng)一存儲的過程??臻g數(shù)據(jù)的共享也存在著文件層面的數(shù)據(jù)格式轉換、數(shù)據(jù)庫層面的直接數(shù)據(jù)訪問和網(wǎng)絡層面的數(shù)據(jù)互操作等模式[2 - 4]。

大型關系型數(shù)據(jù)庫由于其可以存儲海量數(shù)據(jù),支持多用戶并發(fā)讀寫,支持結構化查詢,已經(jīng)成為當今 GIS 數(shù)據(jù)的主流存儲,并隨著數(shù)據(jù)庫技術的發(fā)展和空間數(shù)據(jù)應用模式的改變正朝著非結構化、對象化、海量化發(fā)展。相對于大型關系型數(shù)據(jù)庫,廣泛應用于中小型應用的桌面型數(shù)據(jù)庫( 如 Microsoft Access,F(xiàn)ileMaker Pro,Alpha Five,Paradox,Lotus Approach 以及開源的 SQLite) ,由于其部署簡單,讀寫快速,無需調優(yōu),易于遷移,使用及維護代價相對較低,也逐漸成為空間數(shù)據(jù)存儲的優(yōu)良介質,可以被用來進行中小型系統(tǒng)的構建、空間數(shù)據(jù)歸檔和數(shù)據(jù)交換。桌面數(shù)據(jù)庫在不斷地發(fā)展,正在支持更大的文件,更好地支持子查詢、事務、觸發(fā)等功能,因此可以支持較為復雜的地理信息系統(tǒng)。

采用桌面數(shù)據(jù)庫作為空間和屬性數(shù)據(jù)存儲介質的GIS 空間數(shù)據(jù)庫,它和大型空間數(shù)據(jù)庫各有優(yōu)勢,互為補充。各大 GIS 廠商都既有面向大型數(shù)據(jù)庫的空間數(shù)據(jù)引擎,也有面向桌面應用的桌面空間數(shù)據(jù)庫,例如 ESRI 的GeoDatabase 和 SuperMap 的 SDBPlus。其中 SuperMap 的桌面空間數(shù)據(jù)庫是一種基于直接數(shù)據(jù)訪問的數(shù)據(jù)共享模式體系中的數(shù)據(jù)提供者的實現(xiàn)[5]。

1 研究現(xiàn)狀及面臨的挑戰(zhàn)

1. 1 桌面空間數(shù)據(jù)庫發(fā)展狀況

桌面空間數(shù)據(jù)庫有兩種實現(xiàn)模式。

1) 純關系型數(shù)據(jù)庫模式

將空間數(shù)據(jù)和屬性數(shù)據(jù)都放在一個桌面數(shù)據(jù)庫的文件中,屬性字段以桌面數(shù)據(jù)庫提供的基礎類型存儲,空間數(shù)據(jù)以大二進制字段存儲,每一個幾何對象對應桌面數(shù)據(jù)庫的一條記錄。空間數(shù)據(jù)的一個數(shù)據(jù)集與數(shù)據(jù)庫的一張表對應,數(shù)據(jù)集的信息、元數(shù)據(jù)保存到數(shù)據(jù)源的注冊表中。其數(shù)據(jù)可以通過 SQL 語句或數(shù)據(jù)庫開放的訪問接口進行數(shù)據(jù)的讀寫。其實現(xiàn)類似于大型空間關系數(shù)據(jù)庫,如 ESRI 的 Personal Geodatabse 就是基于這種思路實現(xiàn)的。由于桌面數(shù)據(jù)庫對大二進制字段的讀寫效率較差,這種模式實現(xiàn)的 GIS 桌面數(shù)據(jù)庫性能往往不高。

2) 文件與關系數(shù)據(jù)庫混合存儲模式

這種模式中,空間數(shù)據(jù)與屬性數(shù)據(jù)獨立地組織、管理與檢索,僅通過它們的主關鍵字建立相互的連接??臻g數(shù)據(jù)存儲在某種格式的文件中,每一個空間對象有一個唯一的 ID 值進行標識,可依靠文件中的索引機制快速地查找到某一 ID 值對應的空間對象的位置[6]。屬性數(shù)據(jù)存放在桌面數(shù)據(jù)庫當中,每一條屬性數(shù)據(jù)有一個與之對應的空間對象相同的 ID 值。屬性數(shù)據(jù)可以通過 SQL 語句或數(shù)據(jù)庫開放的訪問接口進行數(shù)據(jù)的讀寫。當查詢符合某一屬性條件的空間對象時可以通過查詢屬性表對應的 ID 值到空間數(shù)據(jù)文件中找到匹配的幾何對象。以這種方式實現(xiàn)的 GIS 桌面數(shù)據(jù)庫結合了數(shù)據(jù)庫的強大查詢功能和二進制文件的高效讀寫性能,成為實現(xiàn) GIS 桌面數(shù)據(jù)庫的理想模式。SuperMap 的 SDBPlus 就是按這種模式實現(xiàn)的桌面空間數(shù)據(jù)庫。

1. 2 桌面空間數(shù)據(jù)庫存在的問題

筆者通過對 SuperMap 的 SDBPlus 和 ESRI 的 Personal Geodatabase 兩種桌面空間數(shù)據(jù)庫進行研究,找出了現(xiàn)有實現(xiàn)存在的一些問題,主要是數(shù)據(jù)容量小、易于損壞、不能跨平臺等。

以 SDBPlus 為例: 它是基于 Microsoft 的 Access 數(shù)據(jù)庫實現(xiàn)的。由于 Access 不可以存放超過 2 GB 的數(shù)據(jù),數(shù)據(jù)容量較小,對大型的應用造成困難; 由于 SDBPlus 中的幾何數(shù)據(jù)文件中存放了整個 GIS 數(shù)據(jù)庫的結構,該結構由于數(shù)據(jù)改變時要重寫,當應用程序由于崩潰或斷電來不及寫入時,文件結構就會是錯誤的,數(shù)據(jù)因此被損壞,這種損壞對于數(shù)據(jù)采集和地圖編輯是災難性的; 另外由于Access 數(shù)據(jù)庫必須依賴微軟的 DAO 接口,跨平臺的應用十分困難,雖然有一些軟件可以在非 Windows 平臺上模擬 DAO 調用,但其效率遠達不到 GIS 這種數(shù)據(jù)密集型的應用。

與此類似 Personal Geodatabase 也基于 Access 實現(xiàn),也具有不能進行海量數(shù)據(jù)存儲和受限于 Windows 平臺的缺陷。

更多內容請查看pdf