DB2 中地理数据库 (geodatabase) 内的要素类
要素类是具有相同几何类型(点、线、面、多点、注记、尺寸或多面体)的地理要素集合。例如,可将表示某条铁路沿线所有车站的点存储于一个要素类中。而在另一个要素类中,可存储表示所有铁轨的线。
本主题介绍要素类在目录窗口、数据库管理系统 (DBMS) 和 XML 文档中的显示方式。
ArcGIS Desktop 中的要素类
在 ArcGIS Desktop 中可创建七种要素类:点、多点、线、面、注记、尺寸和多面体。
根据图标可在目录树中看出要素类的类型。下表显示了每种要素类的图标。
要素类图标 |
要素类类型 |
---|---|
点或多点 | |
线 | |
面 | |
注记 | |
尺寸 | |
多面体 |
在 DB2 中,目录树中显示的要素类名称包括要素类所在数据库的名称、拥有该要素类的用户的名称以及要素类本身的名称。
例如,如果名为 parcels 的要素类为用户 RJP 所有,且其所在的地理数据库名为 geodata,则该要素类在目录树中的名称为 geodata.RJP.parcels。
有关不同类型要素类的说明,请参见要素类基础知识。
IBM DB2 数据库中的要素类
存储在 DB2 数据库内的地理数据库中的要素类包含用于存储几何数据的 ST_Geometry 列。这意味着 ST_Geometry 列将添加到要素类的业务表中。
ST_Geometry 为非实例化抽象超类,其子类可实例化。有关详细信息,请参见什么是 ST_Geometry 存储类型?。
使用 ST_Geometry 存储通过 ArcGIS 创建要素类时,将在所有者的方案中创建带 ST_Geometry 列的业务表。此外,记录还将添加到 sde 用户方案中的 LAYERS、TABLE_REGISTRY、sde_geometry_columns、COLUMN_REGISTRY、sde_spatial_references(如果定义了空间参考)和 GDB_ITEMS 表中以追踪要素类信息。sde 用户方案中的 GDB_ITEMTYPES 表定义数据类型,此例中为要素类。
所有要素类都有一个存储属性信息、对象 ID 和 Shape 字段的基表(又称业务表)。对象 ID 和 Shape 字段可以有不同的名称,但它们必须位于要素类的基表中。
加载了数据后,数据库中将出现多个 i 表和存储过程。这些存储过程和 i 表用于为要素类生成要素 ID。i 表的名称中包含一个数字。该数字对应 TABLE_REGISTRY 表中要素类的 REGISTRATION_ID。强烈建议不要对这些表和存储过程进行编辑,而且也不支持这种编辑操作。
View a diagram of a feature class in DB2.
需要使用 Adobe Acrobat Reader 才能打开此文件。
虚线表示各列之间的隐含关系;实线表示各列之间明确定义的关系。
ST_GEOMETRY_COLUMNS 表和 ST_SPATIAL_REFERENCE_SYSTEMS 表实际上是视图,并用灰色进行描述来加以区分。
XML 文档中存储的要素类
要素类在 DataElement 元素中进行定义。要素类的 DataElement 标记设置为 esri:DEFeatureClass 类型。要素类 DataElement 中还有定义要素类的其他元素,例如 Field、Domain、ConfigurationKeyword 和 SpatialReference 元素。
以下是 Parcels 要素类的 XML 文档的一小部分内容:
<DataElement xsi:type="esri:DEFeatureClass"> <CatalogPath>/V=sde.DEFAULT/FC=sdedb2.GDB.Parcels</CatalogPath> <Name>sdedb2.GDB.Parcels</Name> <DatasetType>esriDTFeatureClass</DatasetType> <DSID>27</DSID> <Versioned>false</Versioned> <CanVersion>true</CanVersion> <ConfigurationKeyword/> <HasOID>true</HasOID> <OIDFieldName>objectid</OIDFieldName> <Fields xsi:type="esri:Fields"> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>objectid</Name> <Type>esriFieldTypeOID</Type> <IsNullable>false</IsNullable> <Length>4</Length> <Precision>10</Precision> <Scale>0</Scale> <Required>true</Required> <Editable>false</Editable> <AliasName>OBJECTID</AliasName> <ModelName>OBJECTID</ModelName> </Field>
用于定义要素类的所有其他元素
</DataElement>