基于可視化建模思想的空間數(shù)據(jù)庫(kù)自動(dòng)化建庫(kù)技術(shù)研究

陳勇,宋關(guān)福,鐘耳順

(中國(guó)科學(xué)院 地理科學(xué)與資源研究所 , 北京 100101)

論文來(lái)源:《測(cè)繪通報(bào)》 2006年 第12期

摘要:空間數(shù)據(jù)庫(kù)的建設(shè)速度和成本是影響 GIS 應(yīng)用的重要因素。目前空間數(shù)據(jù)建庫(kù)存在軟件通用性不足、建庫(kù)過(guò)程操作復(fù)雜、人工干預(yù)多、建庫(kù)效率低等問(wèn)題。針對(duì)建庫(kù)中存在的問(wèn)題 ,研究并提出基于可視化建模思想的空間數(shù)據(jù)庫(kù)自動(dòng)化建庫(kù)技術(shù) ,有助于大幅度降低建庫(kù)復(fù)雜性 ,提高建庫(kù)效率 ,降低建庫(kù)成本。

關(guān)鍵詞: 地理信息系統(tǒng),可視化建模,空間數(shù)據(jù)庫(kù),空間數(shù)據(jù)建庫(kù),自動(dòng)化技術(shù)

A Study of Spatial Database Automated Construction Based on Visual Modeling

CHEN Yong,SONG Guanfu,ZHONG Ershun

一、引 言

  空間數(shù)據(jù)庫(kù)是基于大型關(guān)系數(shù)據(jù)庫(kù)系統(tǒng) ,存儲(chǔ)和管理海量空間數(shù)據(jù)的技術(shù) ,是新一代地理信息系統(tǒng)( GIS) 的重要組成部分 ,也是 GIS 應(yīng)用項(xiàng)目的基礎(chǔ)。大量有關(guān)空間數(shù)據(jù)建庫(kù)的研究 ,一般都以空間數(shù)據(jù)庫(kù)設(shè)計(jì)、質(zhì)量控制、應(yīng)用等方面為重點(diǎn) ,對(duì)具體的建庫(kù)過(guò)程沒(méi)有深入探討。本文將就具體建庫(kù)過(guò)程中存在的一些問(wèn)題進(jìn)行研究。

  由于缺少通用性建庫(kù)工具 ,當(dāng)前空間數(shù)據(jù)建庫(kù)存在大量重復(fù)的建庫(kù)工具開發(fā)工作??臻g數(shù)據(jù)庫(kù)建設(shè)一般由建庫(kù)單位基于選定的 GIS 軟件 ,開發(fā)一套針對(duì)特定數(shù)據(jù)文件的軟件工具 ,使用該軟件工具 ,對(duì)原始數(shù)據(jù)進(jìn)行處理并入庫(kù)。對(duì)另一批數(shù)據(jù)進(jìn)行建庫(kù)時(shí) ,就需要修改原有的建庫(kù)工具 ,甚至重新開發(fā)建庫(kù)工具才能滿足建庫(kù)要求。而且不同單位都在做著類似的重復(fù)性工作 ,形成更大范圍內(nèi)的重復(fù)投入。如何克服這些問(wèn)題 ,提高空間數(shù)據(jù)庫(kù)建庫(kù)的生產(chǎn)效率 , 降低建庫(kù)成本 ,成為一個(gè)亟待解決的問(wèn)題。

  與此同時(shí) ,在建庫(kù)過(guò)程中還需要大量的人工干預(yù) ,如果碰到特殊情況出現(xiàn) ,甚至需要手工操作來(lái)對(duì)數(shù)據(jù)進(jìn)行處理。由此產(chǎn)生的大量人力、物力、財(cái)力的投入 ,影響了建庫(kù)進(jìn)度 ,增加了建庫(kù)成本。

  通過(guò)研究分析大量空間數(shù)據(jù)建庫(kù)實(shí)例 ,筆者認(rèn)為 ,導(dǎo)致建庫(kù)成本居高不下主要有兩方面原因 :一是建庫(kù)軟件專用性太強(qiáng) ,不能滿足通用的要求 ,導(dǎo)致大量重復(fù)性的軟件開發(fā)工作 ;二是建庫(kù)過(guò)程操作復(fù)雜 , 缺少自動(dòng)化機(jī)制 ,人工干預(yù)多 ,導(dǎo)致建庫(kù)工作持續(xù)時(shí)間長(zhǎng) ,生產(chǎn)效率低。針對(duì)這兩個(gè)問(wèn)題 ,筆者提出一套基于可視化建模思想的自動(dòng)化建庫(kù)技術(shù)。

二、關(guān)鍵技術(shù)

  基于可視化建模思想的自動(dòng)化建庫(kù)技術(shù) ,包括一系列的關(guān)鍵技術(shù) : ①基于可視化建模思想 ,使建庫(kù)過(guò)程模型化 ,從而降低建庫(kù)的復(fù)雜度 ; ②提供多種數(shù)據(jù)分層與重組的模式 ,保證了建庫(kù)軟件實(shí)現(xiàn)的通用性 ; ③針對(duì)不同類型、不同結(jié)構(gòu)數(shù)據(jù)的多源數(shù)據(jù)自適應(yīng)處理技術(shù) ; ④引進(jìn)腳本執(zhí)行的模式 ,增加建庫(kù)過(guò)程的可控性 ; ⑤為避免異常中斷影響建庫(kù)過(guò)程連續(xù)性的斷點(diǎn)續(xù)傳技術(shù) ; ⑥為了提高建庫(kù)效率的多用戶協(xié)同建庫(kù)的技術(shù)。

1. 可視化建模

  可視化建模就是利用一種統(tǒng)一的形象化的符號(hào)語(yǔ)言 ,把對(duì)象模型準(zhǔn)確地表達(dá)出來(lái) ,即構(gòu)建系統(tǒng)模型的過(guò)程。利用可視化建模首先能夠有效地降低系統(tǒng)的復(fù)雜度 ,同時(shí)能夠提高系統(tǒng)設(shè)計(jì)的可重用性 ,增強(qiáng)系統(tǒng)的靈活性。

  在空間數(shù)據(jù)建庫(kù)中 ,包括三類基本模型 :源數(shù)據(jù)模型、規(guī)則模型和目標(biāo)數(shù)據(jù)模型(圖 1) 。

  1. 源數(shù)據(jù)模型 :設(shè)定需要入庫(kù)的數(shù)據(jù)信息 ,包括數(shù)據(jù)文件及其類型信息。

  2. 目標(biāo)數(shù)據(jù)模型 :設(shè)定空間數(shù)據(jù)庫(kù)的信息 ,包括數(shù)據(jù)庫(kù)連接信息等。

  3. 規(guī)則模型 :設(shè)定輸入數(shù)據(jù)與空間數(shù)據(jù)庫(kù)的對(duì)應(yīng)規(guī)則 ,包括圖層對(duì)應(yīng)關(guān)系以及數(shù)據(jù)重組信息等。


圖 1

  建庫(kù)時(shí) ,首先通過(guò)源數(shù)據(jù)模型設(shè)定需要入庫(kù)的數(shù)據(jù) ,通過(guò)目標(biāo)數(shù)據(jù)模型設(shè)定空間數(shù)據(jù)庫(kù)信息 ,然后通過(guò)規(guī)則模型把需要入庫(kù)的數(shù)據(jù)與空間數(shù)據(jù)庫(kù)中的數(shù)據(jù)以一定的規(guī)則一一對(duì)應(yīng)起來(lái) ,完成空間數(shù)據(jù)建庫(kù)的建模過(guò)程 ,如圖 2 所示。


圖 2 空間數(shù)據(jù)建庫(kù)建模

  經(jīng)過(guò)上述模型化組織后 ,整個(gè)建庫(kù)過(guò)程簡(jiǎn)單明了。并且只需調(diào)整部分參數(shù) ,就能夠應(yīng)用于對(duì)其他數(shù)據(jù)或應(yīng)用的建庫(kù) ,減少不必要的重復(fù)工作。

2. 腳本執(zhí)行模式

  根據(jù)可視化模型 ,系統(tǒng)自動(dòng)生成腳本文件。在腳本文件中 ,一條語(yǔ)句對(duì)應(yīng)一個(gè)處理動(dòng)作。數(shù)據(jù)入庫(kù)過(guò)程則根據(jù)這個(gè)腳本來(lái)進(jìn)行。運(yùn)行腳本時(shí) ,采用讀取腳本 —→編譯腳本 —→執(zhí)行腳本的方式 ,并且一次只處理一條腳本。

  腳本執(zhí)行采用事務(wù)模式。一條腳本執(zhí)行失敗或者未執(zhí)行完 ,數(shù)據(jù)庫(kù)將自動(dòng)回滾到執(zhí)行腳本之前的狀態(tài) ,保證了數(shù)據(jù)處理的正確性和完整性 ;同時(shí)腳本執(zhí)行模式也是實(shí)現(xiàn)數(shù)據(jù)入庫(kù)斷點(diǎn)續(xù)傳的基礎(chǔ)。腳本執(zhí)行模式過(guò)程如圖 3 所示。


圖 3 腳本執(zhí)行模式

  腳本執(zhí)行模式除了可以防止入庫(kù)時(shí)意外中斷導(dǎo)致的工作成果損失外 ,還可以根據(jù)腳本的執(zhí)行情況看到當(dāng)前入庫(kù)的進(jìn)度 ,并隨時(shí)中止腳本的執(zhí)行 ,完全控制入庫(kù)的進(jìn)程。

3. 斷點(diǎn)續(xù)傳

  在數(shù)據(jù)入庫(kù)過(guò)程中 ,發(fā)生崩潰、中斷或者其他非正常中止時(shí) ,用戶總是希望能夠從中斷的地方重新開始數(shù)據(jù)入庫(kù) ,并且不會(huì)影響已經(jīng)完成的工作成果。

  斷點(diǎn)續(xù)傳就是針對(duì)這種情況提出來(lái)的。斷點(diǎn)續(xù)傳是在腳本的基礎(chǔ)上 ,通過(guò)詳細(xì)的日志、錯(cuò)誤記錄 ,保留腳本執(zhí)行結(jié)果的詳細(xì)信息。重新入庫(kù)時(shí) ,根據(jù)日志信息 ,定位到中斷執(zhí)行的地方 ,開始剩余數(shù)據(jù)的入庫(kù)工作 , 并且由于腳本執(zhí)行采用事務(wù)的方式 ,保證了入庫(kù)工作的連續(xù)性、正確性和完整性。

4. 數(shù)據(jù)分層與重組

  名字、類型和專題屬性是數(shù)據(jù)層所具有的 3 個(gè)重要的屬性。根據(jù)這 3 個(gè)屬性 ,可以把數(shù)據(jù)層和數(shù)據(jù)層中的對(duì)象區(qū)分開來(lái)?;诖司陀邢旅?3 種基本的數(shù)據(jù)重組規(guī)則。

  1. 根據(jù)數(shù)據(jù)層名字重組數(shù)據(jù)。比如可以把所有名字包含“road”字符串的數(shù)據(jù)層 ,合并到名字為 “道路”數(shù)據(jù)層中去。

  2. 根據(jù)數(shù)據(jù)層類型重組數(shù)據(jù)??梢愿鶕?jù)數(shù)據(jù)層類型 ,把同屬于一個(gè)類型的數(shù)據(jù) ,合并為一個(gè)圖層或者把一個(gè)數(shù)據(jù)層中的不同類型對(duì)象拆分到多個(gè)數(shù)據(jù)層中。

  3. 根據(jù)數(shù)據(jù)層專題屬性重組數(shù)據(jù)??梢愿鶕?jù)數(shù)據(jù)層的某項(xiàng)專題屬性值 ,拆分或者合并數(shù)據(jù)。

  上述 3 種基本的數(shù)據(jù)重組規(guī)則可以單獨(dú)使用 , 也可以 2 個(gè) ,或者 3 個(gè)同時(shí)使用 ,這樣還可以形成下面 4 種復(fù)合的數(shù)據(jù)重組規(guī)則。

  4. 根據(jù)數(shù)據(jù)層名字 + 數(shù)據(jù)層類型重組數(shù)據(jù) :1 , 2 的組合。

  5. 根據(jù)數(shù)據(jù)層名字 + 數(shù)據(jù)層專題屬性重組數(shù)據(jù) :1 ,3 的組合。

  6. 根據(jù)數(shù)據(jù)層類型 + 數(shù)據(jù)層專題屬性重組數(shù)據(jù) :2 ,3 的組合。

  7. 根據(jù)數(shù)據(jù)層名字 + 數(shù)據(jù)層類型 + 數(shù)據(jù)層專題屬性重組數(shù)據(jù) :1 ,2 ,3 的組合。在構(gòu)建空間數(shù)據(jù)建庫(kù)模型中的規(guī)則時(shí) ,用戶可以根據(jù)自己的需要 ,以上述 7 種重組規(guī)則為基礎(chǔ) ,定制自己需要的重組規(guī)則。

5. 多源數(shù)據(jù)自適應(yīng)處理

  數(shù)據(jù)入庫(kù)中面臨的多源數(shù)據(jù)問(wèn)題主要指數(shù)據(jù)存放地點(diǎn)分散、數(shù)據(jù)格式多樣、異構(gòu)數(shù)據(jù)入庫(kù) 3 個(gè)方面的問(wèn)題。

  數(shù)據(jù)存放地點(diǎn)分散問(wèn)題 ,原始數(shù)據(jù)可能分散在一個(gè)局域網(wǎng)的不同機(jī)器上 ,或者在一個(gè)機(jī)器的多個(gè)目錄下 ,導(dǎo)致在建模和入庫(kù)時(shí)查找原始數(shù)據(jù)十分困難。通過(guò)提供帶有過(guò)濾條件的自動(dòng)搜索功能 ,就可以降低用戶選擇數(shù)據(jù)的困難 ,提高工作效率。

  數(shù)據(jù)格式多樣問(wèn)題 ,不同部門生產(chǎn)數(shù)據(jù)使用不同的數(shù)據(jù)生產(chǎn)工具 ,導(dǎo)致數(shù)據(jù)產(chǎn)品格式多種多樣 ,這就需要把這些不同格式的數(shù)據(jù)統(tǒng)一入庫(kù)。通過(guò)自動(dòng)化的批量格式轉(zhuǎn)換 ,把所有數(shù)據(jù)都轉(zhuǎn)換到一種格式下 ,就可以完全解決這個(gè)問(wèn)題。

  異構(gòu)數(shù)據(jù)入庫(kù)問(wèn)題 ,不同時(shí)期或者不同部門生產(chǎn)的數(shù)據(jù) ,空間數(shù)據(jù)結(jié)構(gòu)可能存在很大的不同 ,入庫(kù)時(shí)就要面臨將這些異構(gòu)數(shù)據(jù)重組 ,按照統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ)的問(wèn)題。解決這個(gè)問(wèn)題只需要定制不同的規(guī)則模型即可。用戶設(shè)計(jì)數(shù)據(jù)重組規(guī)則時(shí) ,對(duì)每一種結(jié)構(gòu)的數(shù)據(jù)定制一個(gè)規(guī)則 ,不同結(jié)構(gòu)的數(shù)據(jù)分別使用各自的規(guī)則進(jìn)行入庫(kù) ,從而滿足異構(gòu)數(shù)據(jù)一體化入庫(kù)的要求。如圖 4 所示 ,源數(shù)據(jù) A , B , C 為結(jié)構(gòu)互不相同的數(shù)據(jù) ,入庫(kù)時(shí)為它們分別建立入庫(kù)規(guī)則 ,但使用同一個(gè)目標(biāo)數(shù)據(jù) ,這樣就可以達(dá)到異構(gòu)數(shù)據(jù)同時(shí)入庫(kù)的目的。 .

6. 多用戶協(xié)同建庫(kù)

  一個(gè)大型地理信息系統(tǒng)的建立往往需要多個(gè)用戶協(xié)作才能完成 ,同時(shí)多用戶協(xié)同建庫(kù)還是提高建庫(kù)效率的一個(gè)很有效的手段。多用戶協(xié)同建庫(kù)可以通過(guò)以下幾個(gè)步驟實(shí)現(xiàn)。首先在設(shè)計(jì)數(shù)據(jù)建庫(kù)模型時(shí) ,按照客戶端的情況把模型分組 ,并生成多個(gè)腳本文件 ;其次把需要入庫(kù)的數(shù)據(jù)和對(duì)應(yīng)的腳本分配給各個(gè)客戶端 ;最后客戶端根據(jù)分配的腳本和數(shù)據(jù) ,進(jìn)行各自的建庫(kù)工作。


圖 4 異構(gòu)數(shù)據(jù)入庫(kù)

三、系統(tǒng)實(shí)現(xiàn)及應(yīng)用

  在上述解決方案的基礎(chǔ)上 ,筆者在 Visual C ++ 6. 0 環(huán)境中 ,基于北京超圖地理信息技術(shù)有限公司的 SuperMap GIS 類庫(kù) (SuperMap Foundation Class Library ,SFC) 開發(fā)了自動(dòng)化建庫(kù)軟件 ———SuperMap D - Builder(圖 5) 。


圖 5 系統(tǒng)界面

  該系統(tǒng)已在多個(gè)項(xiàng)目中得到應(yīng)用。在應(yīng)用中可以看到 ,該系統(tǒng)完全避免了重復(fù)性開發(fā)建庫(kù)工具的過(guò)程 ,縮短了 GIS 應(yīng)用系統(tǒng)建立的時(shí)間 ;并且能夠滿足多種建庫(kù)的需求 ,不同需求只需要定制不同的建庫(kù)模型即可 ,在比較類似的應(yīng)用中 ,建庫(kù)模型只需要很少的修改就能重用 ;通過(guò)多客戶端協(xié)同建庫(kù)的方式 ,還可以大大縮短建庫(kù)所需時(shí)間。

四、結(jié)束語(yǔ)

  本文通過(guò)對(duì)空間數(shù)據(jù)庫(kù)建庫(kù)過(guò)程的研究 ,分析了導(dǎo)致建庫(kù)成本高、建庫(kù)效率低的幾個(gè)主要問(wèn)題 ,并基于可視化建模思想和自動(dòng)化技術(shù) ,提出了一系列解決方案。通過(guò)實(shí)際建庫(kù)工作的檢驗(yàn)可以看到 ,建庫(kù)效率得到一定的提高 ,而且由于效率的提高 ,成本也隨之降低 ;同時(shí)建庫(kù)配置過(guò)程在很大程度上還可以得到重用 ,可以為今后的工作打下基礎(chǔ)。

參考文獻(xiàn) :

  [1 ] 陳述彭 ,等. 地理信息系統(tǒng)導(dǎo)論[ M ]. 北京 : 科學(xué)出版社 ,1999.

  [2 ] 李德仁 ,龔健雅 ,李京偉 ,等. 中國(guó)空間數(shù)據(jù)基礎(chǔ)設(shè)施建設(shè)[J ]. 測(cè)繪通報(bào) ,2002 ,(11) .

  [3 ] 李德仁 ,龔健雅 ,李京偉 ,等. 中國(guó)空間數(shù)據(jù)基礎(chǔ)設(shè)施建設(shè)(續(xù)完) [J ]. 測(cè)繪通報(bào) ,2002 ,(12) .

  [4 ] 商瑤玲 ,王東華 ,吉建培 ,等. 全國(guó) 1∶25 萬(wàn)地形數(shù)據(jù)庫(kù)的建立與應(yīng)用[J ]. 測(cè)繪通報(bào) ,2001 ,(10) .