本篇文章主要介紹ArcGIS中的Geodatabse數據類型。
目錄
寫在前面的話:對於Geodatabase數據類型的介紹並沒有從最基礎的定義之類開始,而是更多地挖掘它叫深層次地關係,所以可能會比較適合有一定GIS基礎的小夥伴們。還有,此篇介紹是基於筆者自己查到的資料並結合自我理解,如有不妥之處,歡迎指出。
1. geodatabse對象理解
首先在ArGIS的官方文檔中找到了關於Geodatabase數據類型的對象UML圖,最開始就從這張圖開始理解吧。
上述表中簡要地列出了geodatabase數據類型中重要的一些對象,它們總結如下:
Workspace
in the geodatabase data model corresponds to a geodatabase。
- 描述:這是一般類;就整個ArcGIS來說,esri提供三種Workspace類型:esriFileSystemWorkspace(如Coverage、Shapefile)、esriLocalDatabaseWorkspace(FileGeodatabase、PersonalGeodatabase)以及esriRemoteDatabaseWorkspace(ArcSDE)。
- 功能:
- 統一管理各類數據集的容器,既可以有
空間數據集
也包括非空間數據集
。 - 提供創建新數據集及其實例化的方法;
- 設置數據讀取和存儲的默認路徑。
- 統一管理各類數據集的容器,既可以有
- 接口:可以參考官方文檔:Workspace接口介紹
Dataset
is the highest level data container.- 類型:抽象類
- 功能:
- 可以是任何數據的集合,如Row、Table、FeatureClass…放在workspace中的對象都可以稱爲Dataset;
- 用來被繼承,不定義具體的內容,只規定該有那些內容,不能被實例化(不能由抽象類直接創建對象,只能通過抽象類派生出的子類來創建),具有抽象方法的類一定是抽象類;
- 接口:
- IDataset接口:定義要素及的基本方法和屬性;
- IDatasetEdit接口
- IschemaLock接口
Geodataset
is a dataset that contains geographic data.- 類型:同一個Geodataset中的要素類具有相同的座標系統→作爲判定Geodataset的標準。是一個代表了擁有空間屬性的數據集的抽象類,也可看作爲一個容器。
- 接口:
- IGeoDatasetSchemaEdit接口
- IGeoDatasetSchemaEdit接口
FeatureDataset
is comprised of feature classes, geometric networks, and topologies. (裏面的要素具有相同空間參考)- 接口:參考官方文檔:FeatureDataset接口介紹
Table
is a collection of rows that have attributes stored in columns.- 特點:Table是數據的
最小
的容器 - 接口:參考官方文檔:Table接口介紹
- 特點:Table是數據的
•
Row
is a record in a table. All rows in a table share the same set of fields.- 接口:參考官方文檔:Row接口介紹
ObjectClass
is a type of table that stores non-spatial objects.- 特點:是Table的子類,具有屬性和行爲
- 接口:參考官方文檔:Object接口介紹
FeatureClass
is a type of object class that stores spatial objects.- 特點:是ObjectClass的子類,在ObjectClass上進一步發展,用Shape屬性描述了圖形屬性(形狀及位置),即存儲了空間數據(空間數據以具有屬性和行爲的要素表現),是於Table和對象類的最大區別。
- 接口:參考官方文檔:FeatureClass接口介紹
Feature
is an object with a geometric shape.- 特點:FeatureClass的組成。
- 接口:參考官方文檔:Feature接口介紹
RelationshipClass
represents relationships through embedded foreign keys.- 特點:foreign key:保持關係與關係的完整性。
- 接口:參考官方文檔:RelationshipClass接口介紹
Relationship
is an association between objects or features; it controls behavior when objects or features are moved or deleted.- 接口:參考官方文檔:Relationship接口介紹
AttributedRelationshipClass
is a type of table that stores relationships.AttributedRelationship
can represent many-to-many relationships as well as attributes on relationships.
2. Geodatabase的面向對象
Geodatabase具有面向對象的特點
多態
:同一要素的不同存儲方式,相同操作方式。
- 同一個要素無論是存放於Shapefile格式還是PersonalGeodatabase還是SDE中,都可以對其進行編輯、刪除等操作。
封裝
:標準化接口編程
- 不需要了解對象內部實現具體工作行爲的原理和過程,只需要通過ArcGIS提供的
方法接口
進行操作即可。
- 不需要了解對象內部實現具體工作行爲的原理和過程,只需要通過ArcGIS提供的
繼承
:存在子類
(SubClass)
- 例如:
- FeatureDataset和RasterDataset是GeoDataset的子類;
- AttributedRelationshipClass是RelationshipClass下的一個子類;
- 例如:
嚴格來說,Geodatabase並不是數據庫。在ArcGIS和相關的用戶系統中,通過Geodatabase這一規範化的
地理數據模型
,數據庫管理系統(DBMS)可以被當作是開放的空間數據庫系統,這時通用關係數據模型的簡單性和靈活性使數據庫管理系統支持的應用程序範圍非常廣泛。數據的存儲和提取由存儲層DBMS實現,高端的數據整合和數據處理功能則由應用層ArcGIS提供。
3. Geodatabase零散知識點
3.1 Geodatabase的分類
-PersonalGeodatabase
(.mdb)
- 使用Access數據庫爲儲存介質(可用Access在外部直接打開讀取數據),容量爲2G;
- 僅僅支持Windows系統,只能單用戶編輯和讀取,不支持用戶併發操作;
- 不支持壓縮
- FileGeodatabase
(.gdb)
- 在文件系統中以文件夾的形式表現,用二進制方式存儲,每個表容量爲1T;
- 支持多平臺操作(Windows、Linux、Dos…),單用戶編輯多用戶讀取;
- 支持壓縮。
- 大型關係數據庫+ArcSDE形成的地理數據庫
- 存儲格式爲DBMS(DataBase Management System);
- 操作平臺依賴於DBMS,支持多用戶編輯和讀取;
- 可存儲、管理海量數據;
- 存儲於RDBMS中。
3.2 Geodatabase中的Dataset
Geodatabase由各種Dataset組成。
由上圖可以看出,Dataset包括:
GeoDataset
:擁有空間屬性的數據集
- Feature Dataset;
- Raster Dataset;
- TIN;
- GeoDataset中也可以直接存放FeatureClass。
Table
:由row組成
- ObjectClass:由Object組成;
- AttributedRelationshipClass:由AttributedRelationship組成
4. Geodatabse數據知識擴展
筆者從網上download了一份esri公司關於geodatabase介紹的ppt,貼出幾張比較關鍵的給大家再加深一下理解:
Geodatabase是支持多種數據集的,如下圖:
要素數據集可以具有多種行爲:
要素具有屬性域:
Geodatabase要素還可以具有子類:
Geodatabase要素支持多種規則:
–原創文章,轉載必須註明出處–