目前有兩種geodatabase結構:個人Geodatabase和多用戶Geodatabase (multiuser geodatabase)。 個人Geodatabase,對於ArcGIS用戶是免費的,它使用Microsoft Jet Engine數據檔案結構,將GIS數據存儲在小型資料庫中。個人geodatabase更像基於檔案的工作空間,資料庫存儲量最大為2GB。個人geodatabase使用微軟的Access資料庫來存儲屬性表。
對於小型的GIS項目和工作組來說,個人Geodatabase是非常理想的工具。通常,GIS用戶採用多用戶Geodatabase來存儲和並發訪問數據。個人Geodatabase支持單用戶編輯,不支持版本管理。
多用戶Geodatabase通過ArcSDE支持多種資料庫平台,包括IBM DB2,Informix,Oracle(有或沒有Oracle Spatial都可以)和SQL Server。多用戶Geodatabase使用範圍很廣,主要用於工作組、部門和企業,利用底層DBMS結構的優點實現以下功能:
1.支持海量的,連續的GIS資料庫;
2.多用戶的並發訪問;
3.長事務和版本管理的工作流。
基於資料庫的geodatabases可以支持海量數據以及多用戶並發。在眾多的geodatabase實現中,空間地理數據一般存放在大型的binary object中,ESRI發現插入和取出這樣的大對象,關係資料庫是非常高效的。而且,GIS資料庫的容量和支持的用戶數遠大於檔案的存儲形式。
增強的RDBMS要素:
由於Geodatabase是基於關係型資料庫管理系統技術來創建的,於是,Geodatabase擁有關係型資料庫管理系統的所有功能。
例如,你可以為Geodatabase設定欄位的完整性約束。如此一來,便可以使用由RDBMS增強的關係來創建表之間的關聯類(relationships)。
行為定製:
由於Geodatabase的體系是基於面向對象技術構建的。
這樣,用戶可以為自己的Geodatabase開發代碼,以滿足行業的專門化套用的特殊要求。
Geodatabase的體系結構
GIS軟體和資料庫共同完成地理數據的管理。某些數據管理,如磁碟存儲,屬性數據類型的定義,聯合查詢和多用戶的事務處理都是由資料庫完成的。
GIS套用軟體則通過定義DBMS表,用來表示各種地理數據和特定領域內的邏輯,以及維護數據的完整性和實用性。
實際上,DBMS是專門用來存放地理數據的,而完全不是用來定義地理數據的行為的。
這是一個多層的結構(套用和存儲),數據的存取是通過存儲層(DBMS),由簡單表來實現,而高級的數據完整性維護和信息處理的功能是在套用層軟體(GIS)完成的。
Geodatabase的實現也使用了和其他高級DBMS套用相同的多層結構。
Geodatabase對象作為具有唯一標識的表中的記錄進行存儲,其行為通過Geodatabase套用邏輯來實現。
Geodatabase的核心是標準的(不是特殊的)關係資料庫模式(一組標準的DBMS表,欄位類型,索引等等)。
數據的存儲由套用層的高級應用程式對象協調和控制(可以是ArcGIS客戶端或ArcGIS Server)。這些geodatabase對象定義了通用的GIS信息模型,可以在所有的ArcGIS套用和用戶中使用。
Geodatabase對象的作用就是向用戶提供一個高級的GIS信息模型,而模型的數據以多種方式進行存儲,可以存儲在標準的DBMS的表中,或者檔案系統中,也可以是XML流。
所有的ArcGIS應用程式都與geodatabase的GIS對象模型進行互動,而不是直接用SQL語句對後台的DBMS實例進行操作。
Geodatabase軟體組件實現了通用模型中的行為和完整性規則,並且將數據請求轉換成對相應的物理資料庫的操作。