关系数据库中的地理数据库存储

地理数据库的核心是一个标准的(即非特殊的)关系数据库方案(一系列标准的数据库表、列类型、索引和其他数据库对象)。这一简单的物理存储结构需要与应用逻辑层中一组更高级别的应用程序对象(如 ArcGIS for Desktop、嵌入式 ArcGIS Engine 逻辑或 ArcGIS for Server)协同工作并受这些应用程序对象的控制。

这些应用程序对象中的每一个都包含用于定义由所有 ArcGIS 应用程序和用户共用的通用地理信息系统 (GIS) 模型的地理数据库对象。使用地理数据库对象的目的是将高级 GIS 信息模型呈现给客户端并将该模型的详细实现信息作为可扩展标记语言 (XML) 流存储在合适的存储模型中 - 例如,保留在标准的数据库管理系统 (DBMS) 表或文件地理数据库中。

地理数据库存储既包括各个地理数据集的方案和规则库,也包括空间和属性数据的简单表格存储。

地理数据库方案包括各个地理数据集的定义、完整性规则和行为。其中包括要素类属性、拓扑、网络、栅格目录、关系、属性域等。方案保留在定义地理信息完整性和行为的 DBMS 的地理数据库元表集合中。

空间制图表达通常是作为矢量要素或栅格数据集,与传统的表格属性一起存储。例如,可使用 DBMS 表来存储要素类,表中的每一行代表一个要素。各行的 shape 列用于保存要素的几何或形状。用于保存几何的 shape 列通常属于以下两种列类型之一:

要素类是相同类型要素的集合,具有相同的几何类型(如点、线或面),具有相同的属性列集合,每个要素类可以由独立的表进行管理。

还可以在关系表中管理和存储栅格及影像数据类型。栅格数据通常比较大,因此需要一个端表来存储数据。对于 DBMS 存储和访问,每个栅格会被切割成若干个小片(或小块)并存储在单独块表的各行中。

用于保存矢量和栅格几何的列类型可能会因数据库的不同而有所不同。最近,大多数 DBMS 都已新增了对空间类型扩展的支持,从而使地理数据库可以方便地利用这些类型来存储空间几何形状。Esri 一直致力于扩展结构化查询语言 (SQL) 中空间类型的应用,如作为《SQL/MM 第三部分:空间》和《开放地理空间联盟 (OGC) 简单要素 SQL 规范》的主要编写者。Esri 不仅关注支持这些类型同时也支持独立的 Oracle Spatial、PostGIS(在 PostgreSQL 中)和 Microsoft SQL Server 空间类型,使用 DBMS 的标准来存储地理数据库。

目前,支持 geodatabase 的含有空间类型的 DBMS,如下所示:

有关各 DBMS 中的地理数据库所使用的存储模式的详细信息,请参阅地理数据库怎样存储在 DBMS 中?

11/19/2012