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

杜曉敏,余志偉,王爾琪

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

論文來源:測(cè)繪與空間地理信息

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

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

0 引 言

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

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

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

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

1. 1 桌面空間數(shù)據(jù)庫發(fā)展?fàn)顩r

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

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

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

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

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

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

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

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

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

更多內(nèi)容請(qǐng)查看pdf