地理数据库 (geodatabase) 的架构
地理數據庫存儲模型以一系列簡單但核心的關系數據庫概念為基礎,并利用了基礎數據庫管理系統 (DBMS) 的優勢。簡單表和明確定義的屬性類型用于存儲各地理數據集的方案、規則、庫以及空間屬性數據。該方法為存儲和使用數據提供了一個正式模型。通過此方法,可使用結構化查詢語言 (SQL)(即一系列關系函數和運算符)來創建、修改以及查詢表及其數據元素。
通過檢查具有面幾何的要素在地理數據庫中的建模方式,您可以了解上述操作的工作原理。要素類以表的形式存儲,通常稱為基表或業務表。表中的每一行代表一個要素。shape 列保存每個要素的面幾何。當表中的內容(包括 shape)以 SQL 空間類型存儲時,可通過 SQL 進行訪問。
然而,只是向 DBMS 添加空間類型和對空間屬性的 SQL 支持并不足以支持 GIS。ArcGIS 采用多層應用程序架構,在地理數據庫存儲模型之上的應用程序層執行高級邏輯和行為。該應用程序邏輯支持一系列通用地理信息系統 (GIS) 數據對象和行為,如要素類、柵格數據集、拓撲、網絡以及更多。
地理數據庫 (geodatabase) 為對象關系型
地理數據庫使用在其他高級 DBMS 應用程序中的相同多層應用程序架構來實現;地理數據庫的實現不存在任何特別之處。地理數據庫的這種多層架構有時被稱為對象關系模型。地理數據庫對象在具有標識的 DBMS 表中以行形式保存,而行為通過地理數據庫應用程序邏輯提供。通過將應用程序邏輯與存儲相分離,可支持多個不同的 DBMS 以及多種數據格式。
關系數據庫中的地理數據庫 (geodatabase) 存儲
地理數據庫的核心部分是一個標準的關系數據庫方案(一系列標準的數據庫表、列類型、索引和其他數據庫對象)。方案保留在定義地理信息完整性和行為的 DBMS 的一系列地理數據庫系統表中。這些表或者以文件的形式存儲到磁盤上,或者存儲到 DBMS 的數據庫中,如 Oracle、IBM DB2、PostgreSQL、IBM Informix 或 Microsoft SQL Server。
明確定義的列類型用于存儲傳統表格屬性。將地理數據庫存儲在 DBMS 中時,空間制圖表達(多用矢量或柵格表示)通常使用擴展的空間類型進行存儲。
地理數據庫包含兩組主要表:系統表和數據集表。
- 數據集表 - 地理數據庫中的每個數據集都存儲在一個或多個表中。這些數據集表使用系統表管理數據。
- 系統表 - 地理數據庫系統表用于追蹤每個地理數據庫的內容。它們實質上描述的是用于指定所有數據集定義、規則和關系的地理數據庫方案。這些系統表包含并管理元數據,所有這些元數據均為實現地理數據庫屬性、數據驗證規則和行為所需。
從 ArcGIS 10 開始,這些表的內部結構進行了重構。在 ArcGIS 10 之前的版本中,與地理數據庫方案相關的信息存儲在超過 35 個地理數據庫系統表內,而在 ArcGIS 10 中則被合并為四個主表:
- GDB_Items:包含地理數據庫中的所有項(例如要素類、拓撲和屬性域)的列表
- GDB_ItemTypes:包含識別的項類型(例如表)的預定義列表
- GDB_ItemRelationships:包含各個項之間的方案關聯,例如要素數據集中包含哪些要素類
- GDB_ItemRelationshipTypes:包含識別的關系類型(例如 DatasetInFeatureDataset)的預定義列表
將數據集表和系統表共同用于顯示和管理地理數據庫的內容。例如,以基礎存儲格式進行查看時,要素類只是一個包含空間列的表。但通過 ArcGIS 訪問時,存儲在系統表中的所有規則將與基礎數據相結合,從而使所呈現的要素類具備所有定義的行為。
總結
以上是生活随笔為你收集整理的地理数据库 (geodatabase) 的架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是地理数据库geodatabase?
- 下一篇: hadoop中的filesystem和l