2.7. SQL 几何对象存储

图 7 中显示在 OGC 标准中几何信息存储在一个 Geometry 表中,这个表可以用常规字段或 WKB 两种方式存储几何对象,Geometry 表通过 GID 字段关联到 Feature 表的几何字段。事实上,OGC 标准中还有一种定义,Feature 表的几何字段也可以是 SQL UDT(自定义类型),也就是不需要额外的 Geometry 表来存储几何信息,而直接存储在 Feature 表的几何字段中。大多数数据库都是采用这种自定义类型的方式存储几何信息,比如 ArcSDE 中的 ST_Geometry 类型、PostGIS 中的 Geometry 和 ST_Geometry 类型。

自定义类型可以采用 SFS 标准中定义的几何类型,也可以采用 SQL/MM 7 的定义,比如 PostGIS 对这两种定义都进行了支持,下图是 SFS 和 SQL/MM 几何类型定义的一个对应关系:

image0

图 8 SFS 和 SQL/MM 几何类型的对应关系

用户既可以遵循 SFS 的定义,使用类似“Geometry”、“Point”这样的命

名;也可以遵循 SQL/MM 定义,采用“ST_”作为前缀进行命名,如“ST_Geometry”、“ST_Point”。

SQL 几何类型的继承关系可参考图 9,可以发现 SQL 中实现的几何对象模型和图 1 所示的通用几何对象模型非常类似。

image1

图 9 SQL 几何对象模型

7

ISO《SQL Multimedia and Application Packages》标准,其中的《Part3:Spatial》定义了和空间数据有关的内容。