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