天天看點

ArcGIS Engine開發之旅05---空間資料庫

1  Geodatabase概念

  Geodatabase是ArcInfo8引入的一種全新的面向對象的空間資料模型,是建立在DBMS之上的統一的、智能的空間資料模型。“統一”是指,Geodatabase之前的多個空間資料模型都不能在一個統一的模型架構下對地理空間要素資訊進行統一的描述,而Geodatabase做到了這一點;“智能化”是指,在Geodatabase模型中,對空間要素的描述和表達較之前的空間資料模型更接近我們的現實世界,更能清晰、準确地反映現實空間對象的資訊。

  GeoDatabase的設計主要是針對标準關系資料庫技術的擴充,它擴充了傳統的點、線和面特征,為空間資訊定義了一個統一的模型。在該模型的基礎上,使用者可以定義和操作不同應用的具體模型,例如交通規劃模型、土地管理模型、電力線路模型等。GeoDatabase為建立和操作不同使用者的資料模型提供了一個統一的、強大的平台。

  由于Geodatabase是一種面向對象的資料模型,在此模型中,空間中的實體可以表示為具有性質、行為和關系的對象。Geodatabase描述地理對象主要通過以下以下四種形式:

  (1)用矢量資料描述不連續的對象;

  (2)用栅格資料描述連續對象;

  (3)用TINs描述地理表面;

  (4)用Location或者Address描述位址。

   Geodatabase還支援表達具有不同類型特征的對象,包括簡單的物體、地理要素(具有空間資訊的對象)、網絡要素(與其他要素有幾何關系的對象)、拓撲相關要素、注記要素以及其他更專業的特征類型。該模型還允許定義對象之間的關系和規則,進而保持地物對象間相關性和拓撲性的完整。

2  Geodatabase體系結構

  Geodatabase以層次結構的資料對象來組織地理資料。這些資料對象存儲在要素類(Feature Classes)、對象類(0bject classes)和資料集(Feature datasets)中。Object Class可以了解為是一個在Geodatabase中儲存非空間資料的表。而Feature class是具有相同幾何類型和屬性結構的要素(Feature)的集合。

  要素資料集(Feature datasets)是共用同一空間參考要素類的集合。要素類(Feature Class)儲存可以在要素資料集(Feature datasets)内部組織簡單要素,也可以獨立于要素資料集(Feature datasets)。獨立于要素資料集(Feature datasets)的簡單的要素類(Feature Class)稱為獨立要素類(Feature class)。存儲拓撲要素( Feature )的要素類必須在要素資料集(Feature dataset)内,以確定一個共同的空間參考。

  Geodatabase的基本體系結構包括要素資料集、栅格資料集、TIN資料集、獨立的對象類、獨立的要素類、獨立的關系類和屬性域。其中,要素資料集又由對象類、要素類、關系類、幾何網絡構成。

3  Geodatabase的三種存儲方案

  Geodatabase提供了不同層次的空間資料存儲方案,可以分成三種——PersonalGeodatabase(個人空間資料庫)、File Geodatabase(基于檔案格式的資料庫)和ArcSDE Geodatabase(企業級空間資料庫)。

1.Personal Geodatabase

  Personal Geodatabase主要适用于在單使用者下工作的CIS系統,适用于小型項目的地理資訊系統。ArcGIS對個人Geodatabase同樣具有全功能支援。Personal Geodatabase實際上就是一個Microsoft Access資料庫,當使用者安裝ArcGIS的時候,系統就自動安裝了Microsoft Jet,使用者無需再另外安裝Microsoft Access資料庫。也就是說,PersonalGeodatabase對于ArcGIS使用者是免費的,它使用Microsoft Jet Engine的資料檔案,将空間資料存放在Access資料庫中。Personal Geodatabase更像基于檔案的工作空間,在使用Personal Geodatabase時需要注意的是,Personal Geodatabase的最大容量是2G,并且隻支援windows平台。

2.File Geodatabase

  在ArcGIS 9.2版本中,引入了一種全新的空間資料存儲方案——File Geodatabase,它也是适用于單使用者環境的,同樣能夠支援完整的Geodatabase資料模型,同樣可以讓使用者在沒有DBMS的情況下使用大資料集。File Geodatabase資料以檔案形式存儲在Windows、Solaris以及Linux系統的檔案夾内。容量限制方面,File Geodatabase中的每個表都能存儲1TB的資料,這就是說對任何應用目的,使用者都能夠支援非常大的資料集。Fiel Geodatabase還具有壓縮矢量資料的選項,通過這個選項,使用者可以在保證性能的同時減少硬碟占用,壓縮比率可以達到2:1到25:1。從目前測試的情況來看,File Geodatabsse性能比Personal Geodatabase要高20%到10倍。如果采用壓縮方式,它的性能與Shape檔案相仿,并且要強于Personal Geodatabase。存儲同樣的資料時,File Geodatabase比Personal Geodatabase減少了50%到80%的磁盤占用空間。

  ArcGIS提供了一些工具來從DBMS形式的Geodatabase中提取一個File Geodatabase以及将一個File Geodatabase導人DBMS中。使用者可以通過從其他任何Geodatabase或者所支援的檔案結構内,例如Shape檔案,加載資料來輕松地建立File Geodatabaee。File Geodatabase很容易被ArcGIS Desktop、ArcGIS Engine以及ArcGIS Server通路和使用。

  另外,File Geodatabage還支援存儲海量栅格資料集,與ArcSDE raster schema相容。從目前的趨勢來看,File Geodatabase将要逐漸取代Personal Geodatabase。

3.ArcSDE Geodatabase

  ArcSDE Geodatabase主要用于在多使用者網絡環境下工作的GIS系統。通過TCP/IP協定,安裝在管理企業資料的關系資料庫的伺服器上的ArcSDE為運作在用戶端的CIS應用程式提供ArcSDE Geodatabase。通過ArcSDE,使用者可以将多種資料産品按照Geodatabase模型存儲于商業資料庫系統中,并獲得高效的管理和檢索服務。

  ArcSDE Geodatabase的一個最大特點就是使用ArcSDE在網絡環境下對空間資料進行多使用者并行操作。另外 ArcSDE Geodatabaee提供的版本控制機制也是Personal Geodatabaee和File Geodatabase不具有的。通過ArcSDE,使用者可以在0racle、Microsoft SQL Server、InfoMix和DB2  中存取SDE圖層。   

  當使用者從SDE圖層中建立Geodatabase時,用戶端需要向這些圖層加入中繼資料表。這些中繼資料包括子類、域、關聯類、要素集等,這些中繼資料使得ArcSDE管理的空間資料庫真正展現了Geodatabase模型。

3  Geodatabase的優勢

  地理空間資料模型從最初的CAD資料模型到Coverage資料模型,再發展為現今普通使用的Geodatabase 資料模型,經曆了幾十年的時間。Geodatabase為GIS應用程式提供常用的資料接口和管理架構,提供了處理豐富資料類型、應用複雜規則和關系、存取大量地理資料等功能。

  Geodatabase的優勢主要在該模型對關系資料庫的擴充,具體展現以下幾個方面:

  (1)  Geodatabase存儲要素的幾何特性,便于開發GIS應用程式中的空間操作功能,比如查找與要素鄰近的對象或者具有特定長度的對象,Geodatabase中還提供定義和管理資料的地理坐标系統的架構。

  (2) Geodatabase中的幾何網絡(Geometric Network)可以模拟道路運輸實業或者其他公用設施網絡,進行網絡拓撲運算。

  (3) Geodatabase中可以定義對象、要素之間的關聯(Relationships)。使用拓撲關系、空間表達和一般關聯,使用者不僅可以定義要素的特征,還可以定義要素與其他要素的關聯規則。當要素被移動、修改或删除的時候,使用者預先定義好的關聯要素也會作出相應的變化。

  (4) Geodatabase通過定義域(Domain)和驗證規則(Validation rule)來增強屬性的完整性。

  (5) Geodatabase将要素的一些“自然”行為綁定到存儲要素的表中。

  (6) Geodatabase可以有多個版本(Version),同一時刻允許不同使用者對同一資料進行編輯,并可自動協調出現的沖突。

你們的評論、回報,及對你們有所用,是我整理材料和博文寫作的最大的鼓勵和唯一動力。歡迎讨論和關注!

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。

永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的架構所束縛,讓創造力自由成長吧!

多花時間,關心他(她)人,正如别人所關心你的。理想的騰飛與實作,沒有别人的支援與幫助,是萬萬不能的。

繼續閱讀