ArcGIS 空间数据库学习(二) 地理数据库 (geodatabase) 的架构
注:本文参考ArcMap官方文档整理而成
地理数据库存储模型以一系列简单但核心的关系数据库概念为基础,并利用了基础数据库管理系统 (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 中时,空间制图表达(多用矢量或栅格表示)通常使用扩展的空间类型进行存储。
地理数据库包含两组主要表:系统表和数据集表。
- Dataset tables—Each dataset in the geodatabase is stored in one or more tables. The dataset tables work with the system tables to manage data.
- System tables—The geodatabase system tables keep track of the contents of each geodatabase. They essentially describe the geodatabase schema that specifies all dataset definitions, rules, and relationships. These system tables contain and manage all the metadata required to implement geodatabase properties, data validation rules, and behaviors.
The internal structure of these tables was restructured beginning with the ArcGIS 10 release. The information related to the schema in the geodatabase, which prior to ArcGIS 10 was stored in over 35 geodatabase system tables, was consolidated into four main tables:
- GDB_Items:包含地理数据库中的所有项(例如要素类、拓扑和属性域)的列表
- GDB_ItemTypes:包含识别的项类型(例如表)的预定义列表
- GDB_ItemRelationships:包含各个项之间的方案关联,例如要素数据集中包含哪些要素类
- GDB_ItemRelationshipTypes:包含识别的关系类型(例如 DatasetInFeatureDataset)的预定义列表
将数据集表和系统表共同用于显示和管理地理数据库的内容。例如,以基础存储格式进行查看时,要素类只是一个包含空间列的表。但通过 ArcGIS 访问时,存储在系统表中的所有规则将与基础数据相结合,从而使所呈现的要素类具备所有定义的行为。
其他表
根据使用的地理数据库类型以及用来存储该地理数据库的 DBMS 的不同,系统表集可能会有所不同。企业级地理数据库的系统表集与文件地理数据库不同,而文件地理数据库的系统表集又与个人地理数据库略有不同。对于企业级地理数据库,针对特定 DBMS 对地理数据库的不同系统表进行了定义。