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