1、拓撲關系數據模型
拓撲關系數據模型以拓撲關系為基礎組織和存儲各個幾何要素,其特點是以點、線、面間的拓撲連接關系為中心,它們的坐標存貯具有依賴關系。該模型的主要優點是數據結構緊湊,拓撲關系明晰,系統中預先存儲的拓撲關系可以有效提高系統在拓撲查詢和網絡分析方面的效率,但也有不足:
對單個地理實體的操作效率不高。由於拓撲數據模型面向的是整個空間區域,強調的是各幾何要素之間的連接關系,在另壹方面對具有完整、獨立意義的地理實體作為個體存在的事實沒有足夠的重視,因此增加、刪除、修改某壹地理實體時,將會牽涉到壹系列文件和關系數據庫表格,這樣不僅使程序管理工作變得復雜,而且會降低系統的執行效率。
難以表達復雜的地理實體。由於拓撲關系組織的要求,壹個完整的簡單實體在拓撲關系模型中有時需要被分解為多個幾何要素(比如壹條公路本是壹個完整的實體,但為了記錄其拓撲鄰接信息,只有對其在與其它公路實體鄰接的地方進行分段,這樣壹個完整的實體就被分成多個幾何要素。所有的實體都進行如此處理,所以我們說拓撲數據模型是面向整個區域、面向不被分割的幾何要素的,而不是面向用戶眼中的地理實體)。復雜地理實體由多個簡單實體組合而成,自然也常常被分解,拓撲數據模型的整體組織特性註定了它不可能有效地表達這壹由多個獨立實體構成的有機集合體。
難以實現快速查詢和復雜的空間分析。由於在拓撲數據模型中,地理實體被分解為點、線、面基本幾何要素存儲在不同的文件和關系表中,因而凡涉及到獨立地理實體的操作、查詢和分析都將花費較多的CPU時間,在大區域的復雜空間分析方面表現尤為明顯。
局部更新困難,系統難於維護與擴充。由於地理空間的數據組織和存儲是以基本幾何要素(點、弧段和多邊形)為單元進行的,系統中存儲的復雜拓撲關系是GIS工作的數據基礎,當局部壹些實體發生變動時,整層拓撲關系將不得不隨之重建,這樣的系統牽壹發而動全身,在維護和擴充方面需要更多的精力,並且容易出錯。
值得說明的是,拓撲關系數據模型也能以面向對象的方式實現,但此時面向的對象是不被其它要素從中間分割的幾何要素,往往是壹個獨立地理實體的壹部分,而不是壹個完整的、獨立的地理實體。這壹點是拓撲關系數據模型與下壹節面向實體數據模型本質不同的重要表現之壹。
2、面向實體的數據模型
裏稱為“面向實體”,是為了強調這種數據模型是以單個空間地理實體為數據組織和存儲的基本單位的。
與上述拓撲模型相反,該模型以獨立、完整、具有地理意義的實體為基本單位對地理空間進行表達。在具體組織和存儲時,可將實體的坐標數據和屬性數據(如建立了部分拓撲,拓撲關系也放在表中保存)分別存放在文件系統和關系數據庫中,也可以將二者統壹存放在關系數據庫中(可以將坐標數據和屬性數據放在同壹個表中,也可以將二者分成兩個表,ESRI公司SDE的存貯模式是分成四個表格,它還增加了壹個Layers表和壹個空間索引表。Layers表位於服務器端,用於層的管理和維護;空間索引表(服務器端)采用網格索引,用於實體的快速搜索)。
面向實體的數據模型在具體實現時采用的是完全面向對象的軟件開發方法,每個對象(獨立的地理實體)不僅具有自己獨立的屬性(含坐標數據),而且具有自己的行為(操作),能夠自己完成壹些操作。雖然面向實體的數據模型在內部組織上可以按照拓撲關系進行,但是作者這裏所說的模型強調對象的坐標存貯之間(尤其是面與線的坐標存貯)不具有依賴關系,這是它與拓撲關系模型的本質不同點。該模型能夠很好地克服拓撲關系數據模型的幾個缺點,具有實體管理、修改方便,查詢檢索、空間分析容易的優點,更重要的是它能夠方便地構造用戶需要的任何復雜地理實體,而且這種模式符合人們看待客觀世界的思維習慣,便於用戶理解和接受。同時,面向實體的數據模型自然地具有系統維護和擴充方便的優點。
這種模型是當今流行GIS軟件采用的最新數據模型,但也有壹些缺點:
拓撲關系需臨時構建。由於面向實體的數據模型是以地理實體為中心的,並未以拓撲關系為基礎組織、存儲地理實體,表達地理空間,因此拓撲關系並不是壹開始就存在,而是在需要時才臨時導出各種拓撲關系,這需要消耗壹定的系統資源。也許有觀點認為,以實體為單位組織數據時,也可以將拓撲關系壹開始就保存在實體的屬性表中,拓撲關系並不壹定是臨時構建出來的。但仔細分析便可發現,這種方案對由多個幾何要素組成的實體(如壹條組成要素不同的河流)不可行,因為拓撲關系不能有效準確地記錄。實際上這種方案只對由壹個幾何要素組成的實體適用,但其本質上仍是拓撲關系數據模型,其缺點表征與上面2.1節描述的完全相同,因而不是真正的面向實體數據模型。
動態分段、網絡分析效率降低。在結點---弧段---多邊形拓撲關系鏈中,顯式的拓撲表有四個:結點---弧段表,弧段---結點表,弧段---多邊形表和多邊形---弧段表。有了這四個關系表,我們就能直接查找任意結點、弧段和多邊形的拓撲屬性,便於進行動態分段和網絡分析等其它與拓撲關系有關的拓撲分析,基於拓撲數據模型的GIS可以很方便地做到這壹點。但由於將四個拓撲表全部存貯會使系統的空間開銷成倍增大,因此壹些軟件只存貯其中2個(如早期的System 9版本)或將弧段—結點、弧段—多邊形表合二為壹(Arc/Info 8.0以前版本),被隱含的表可由顯示存在的表導出。即便這樣,基於拓撲數據模型的GIS在涉及拓撲關系的查詢和分析上仍然有較高的效率,而面向實體的數據模型由於要根據需要臨時構建拓撲關系,自然會使拓撲查詢和分析的效率降低。當然構建好的拓撲關系可存放起來,供以後使用。
實體間的公***點和公***邊重復存貯。由於面向實體的數據模型是以地理實體為基本單位進行數據組織和空間表達的,對每壹個地理實體都進行完整存貯(存貯到點壹級),在存貯坐標時是各對象獨立存貯,不再依賴其它對象,那麽就必然會導致實體間***有的公***點和公***邊重復存貯。
難以將管理、分析和處理定位到幾何要素壹級。幾何要素是指點、弧段和多邊形等簡單圖形,有時構成同壹實體的各個幾何要素之屬性差別較大(例如組成壹塊宗地的各邊之面積不壹樣,某壹交通閉合環路的組成道路類型不壹樣等),需要在地理實體的下壹級---幾何要素壹級上進行處理,拓撲數據模型可以直接進行處理,而面向實體的數據模型則需要首先對相關地理實體進行定位、分解,因而降低系統在這方面的性能。從本質上分析,我們不難得到,由於該種模型認為組成同壹實體的幾何要素之屬性相同,因而忽略了幾何要素間的屬性差異,從而導致在系統存貯和處理機制上難以定位到幾何要素壹級。
難以實現跨圖層的拓撲查詢和分析。如果這個問題放在拓撲關系模型中,則比較容易解決,因為各個要素的鄰接要素已事先存在,不僅已經是分層的,而且具有實際的地理屬性,因此只要順藤摸瓜查找鄰接要素並取得其地理屬性即可。但對於面向實體的數據模型,則不能有效地解決,因為臨時生成拓撲關系時其中的幾何要素壹般屬於同壹層,不可能自動生成跨圖層的地理屬性,必須做進壹步的處理方才有可能解決。顯然,這種方法的效率不高。