地理数据库怎样存储在 DBMS 中?

许多地理数据库利用关系数据库(如 Oracle、IBM DB2 或 Microsoft SQL Server)存储数据和管理地理信息。这样可以将地理数据库扩展到极大规模,并支持大量用户和编辑人员。这些地理数据库还支持多种关键数据管理工作流,如版本化、复制和历史存档。

地理数据库的物理存储

地理数据库主要通过表存储。表或者以文件的形式存储到磁盘上,或者存储到 DBMS 的内容中,具体如下:

地理数据库的类型

数据存储方法

个人地理数据库

Microsoft Access

文件地理数据库

包含数据文件的文件系统文件夹

ArcSDE for SQL Server Express(包括在 ArcGIS Desktop [ArcEditor 或 ArcInfo]、ArcGIS Engine 和工作组级别的 ArcGIS Server 中)

Microsoft SQL Server Express Edition

包括在企业级的 ArcGIS Server 中的 ArcSDE 地理数据库支持。(这需要您自行获得 DBMS,但使用 ArcSDE for PostgreSQL 时除外,因为它包含 PostgreSQL 的安装。)

  • IBM DB2 - Enterprise Server Edition
  • IBM Informix Dynamic Server - Workgroup 或 Enterprise Edition
  • Oracle - Standard One、Standard 或 Enterprise Edition。(可选择 Oracle Spatial 或 Oracle Locator 存储几何与 ISO 空间类型。)
  • PostgreSQL
  • Microsoft SQL Server - Workgroup、Standard 或 Enterprise Edition

地理数据库与 DBMS

存储和管理空间数据

DBMS 中的地理数据库存储包含两组表 - 数据集表(用户定义的表)和系统表。

系统表(对部分列使用 XML 文档)和数据集表(可使用 SQL 类型的列)显示在地理数据库中

从 ArcGIS 10 开始,这些表的内部结构进行了重构。在 ArcGIS 10 之前的版本中,与地理数据库方案相关的信息存储在超过 35 个地理数据库系统表内,而在 ArcGIS 10 中则被合并为四个主表:

例如,在 SQL Server DBMS 中,使用二进制几何存储机制存储在地理数据库中的简单要素类由业务表、关联要素 (f) 表和空间索引 (s) 表组成。这些表使用一组系统表:i 表、gdb_items、sde_table_registry、sde_layers 和 sde_spatial_references 系统表。这些表用于追踪有关要素类的信息。

每个 DBMS 中用于存储和管理地理数据库的一组表和列都会稍有不同。用于存储地理数据库的 DBMS 的类型会影响物理存储架构。

附加文件

地理数据库还使用 DBMS 中的触发器、函数、存储过程和用户定义的类型来实现功能和保持一致性。没有必要详细讨论这些内容,因为您无需与这些数据库对象中的大多数进行交互。

如果想使用 SQL 访问地理数据库中的信息,请参阅对 ArcSDE 地理数据库使用 SQL 的快速浏览了解相关基本知识。

有关数据集和系统表结构的详细信息,请参阅以下主题:


3/7/2012