http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcGIS入门与应用 >> 正文

地理数据库 (geodatabase) 的架构

作者:ESRI    文章来源:ESRI    点击数:    更新时间:2014-2-6
摘要:地理数据库存储模型以一系列简单但核心的关系数据库概念为基础,并利用了基础数据库管理系统 (DBMS) 的优势。简单表和明确定义的属性类型用于存储各地理数据集的方案、规则、库以及空间属性数据。该方法为存储和使用数据提供了一个正式模型。通过此方法,可使用结构化查询语言 (SQL)(即一系列关系函数和运算符)来创建、修改以及查询表及其数据元素。

地理数据库存储模型以一系列简单但核心的关系数据库概念为基础,并利用了基础数据库管理系统 (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 访问时,存储在系统表中的所有规则将与基础数据相结合,从而使所呈现的要素类具备所有定义的行为。

其他表

根据使用的地理数据库类型以及用来存储该地理数据库的 DBMS 的不同,系统表集可能会有所不同。ArcSDE 地理数据库的系统表集与文件地理数据库不同,而文件地理数据库的系统表集又与个人地理数据库略有不同。对于 ArcSDE 地理数据库,针对特定 DBMS 对地理数据库的不同系统表进行了定义。由于用户不需要与文件和个人地理数据库中存储的不同表进行交互,因此未作详细介绍。

Tags:ArcGIS,Geodatabase,地理数据库  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图