Топология в базе геоданных в DB2

Топология представляет собой правила, обеспечивающие целостность данных и управление поведением классов пространственных объектов. Топология базы геоданных хранит информацию о классах объектов (которые должны быть в том же наборе классов объектов), участвующих в топологии, кластерный допуск, присвоенный топологии, относительный ранг каждого класса объектов в топологии, а также перечень правил, применяемых к данной топологии.

Дополнительную информацию о концепциях, относящихся к топологии, см. в разделе Основы топологии и Топология в ArcGIS.

Топология вArcGIS for Desktop

Топологии в дереве каталога отношений отображаются как часть набора данных объектов, в которых находятся участвующие классы объектов. Топология представляется следующим значком:

Значок топологии

Классы объектов из набора классов объектов, которые участвуют в топологии, вы можете просмотреть во закладке Классы пространственных объектов (Feature Classes) диалогового окна Свойства топологии (Topology Properties).

Диалоговое окно Свойства топологии (Topology Properties).

Щелчок на закладке Rules (Правила) открывает правила, применяемые к топологии. После проверки топологии вы можете создать список ошибок и исключений для каждого правила из закладки Errors (Ошибки).

Топология в базе данных IBM DB2

В СУБД топологии хранятся в таблице GDB_ITEMS. Правила, связанные с топологией хранятся в столбце DEFINITION.

При проверке топологии измененные области и найденные ошибки топологии, связанные с каждой топологией, хранятся в наборе таблиц схемы пользователя, подключенного к базе геоданных. К ним относятся таблицы T_<ID>_DIRTYAREAS, T_<ID>_LINEERRORS, T_<ID>_POINTERRORS и T_<ID>_POLYERRORS. Значение ID в именах таблиц соответствуют ID топологии в поле DATASETSUBTYPE1 таблицы GDB_ITEMS. Каждая таблица ошибок содержит нарушенное правило в поле TOPORULEID. Данное поле связано с полем col_iteminfo таблицы GDB_ITEMS.

Далее приведено описание измененных областей и таблиц ошибок топологии, а также пример таблиц топологии в том виде, в котором они используются в DB2.

T_<ID>_DIRTYAREAS

Измененные области, или непроверенные части топологии, хранятся в базе геоданных в виде геометрий. Их отслеживание ведется в таблице T_<ID>_DIRTYAREAS.

T_<ID>_DIRTYAREAS

Данная таблица создается при проверке топологии.

Имя поля

Тип поля

Описание

Null?

OBJECTID

INTEGER

Уникальный идентификатор объекта измененной области в топологии

NOT NULL

ISRETIRED

INTEGER

Данный код указывает, достигла ли измененная область максимального количества вершин (250).

При достижении данного предела создается новый объект измененной области, а существующий архивируется (значение изменяется на 1).

0 = максимальное количество вершин еще не достигнуто или 1 = максимальное количество вершин

NOT NULL

DIRTYAREA

ST_MULTIPOLYGON

Поле Shape

T_<ID>_LINEERRORS, T_<ID>_POINTERRORS и T_<ID>_POLYERRORS

Любые нарушения правил топологии представлены как объекты ошибок. Как и для измененных участков, данные объекты ошибок также хранятся и управляются в отдельных таблицах ошибок топологии. Для данных таблиц используется практически идентичное определение схемы, за исключением дополнительных полей, которые являются специальными для типа формы ошибки топологии. Как видно из имен таблиц, они содержат информацию об ошибках топологии на основании типа объекта, для которого произошла ошибка – линия, точка или полигон.

Данные таблицы не существуют в вашей базе данных до тех пор, пока вы не произведете оценку топологии.

Имя поля

Тип поля

Описание

Null?

OBJECTID

INTEGER

Уникальный ID объекта ошибки топологии в отдельной таблице ошибки топологии; ошибки топологии не имеют уникального ID в топологии, только в специальной таблице.

NOT NULL

ORIGINCLASSID

INTEGER

ID класса объектов источника

NOT NULL

ORIGINID

INTEGER

ID объекта из класса объектов источника, относящегося к ошибке топологии

DESTCLASSID

INTEGER

ID класса объектов назначения

DESTID

INTEGER

ID объекта из класса объектов назначения, относящегося к ошибке топологии

TOPORULETYPE

INTEGER

Тип правила топологии; соответствует значение константы esriTopologyRuleType

NOT NULL

TOPORULEID

INTEGER

ID правила топологии, хранящийся в столбце ITEMINFO таблицы GDB_ITEMS

NOT NULL

ISEXCEPTION

INTEGER

Код, определяющий, имеет ли ошибка топологии маркировку исключения; 0 = не исключение (по умолчанию) 1 = маркирована как исключение

NOT NULL

SHAPE

ST_MULTILINESTRING (для T_<ID>_LINEERRORS), ST_POINT (для T_<ID>_POINTERRORS) или ST_MULTIPOLYGON (для T_<ID>_POLYERRORS)

Указывает на тип формы

Измененные области и таблицы ошибок топологии создаются в схеме пользователя, создавшего топологию, в отличие от других таблиц, которые являются системными и хранятся в схеме пользователя администратора базы геоданных.

Далее приведена схема таблиц для проверенной топологии:

Таблицы топологии в DB2

Штриховые линии определяют неявные отношения между столбцами.

Топология в XML-документе

Топологии представляют собой типы наборов данных, поэтому они появляются в XML-документе с тегом DataElement типа FeatureDataset. Правила топологии включаются и группируются на основании тега TopologyRule. Для топологии, Landbase_Topology, в наборе классов, Water, элементе в XML-документе выглядит следующим образом:

<DatasetDefinitions xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DEFeatureDataset">
    <CatalogPath>/V=sde.DEFAULT/FD=sde.RJP.Landbase</CatalogPath> 
    <Name>sde.RJP.Landbase</Name> 
  <Children xsi:type="esri:ArrayOfDataElement">
    <DataElement xsi:type="esri:DETopology">
          <CatalogPath>/V=sde.DEFAULT/FD=sde.RJP.Landbase/TOPO=sde.RJP.Landbase_Topology</CatalogPath> 
        <Name>sde.RJP.Landbase_Topology</Name> 
        <DatasetType>esriDTTopology</DatasetType> 
        <DSID>-1</DSID> 
        <Versioned>true</Versioned> 
        <CanVersion>true</CanVersion> 
      <Extent xsi:type="esri:EnvelopeN">
           <XMin>503924.656249088</XMin> 
           <YMin>680110.56250334</YMin> 
           <XMax>512514.562497088</XMax> 
           <YMax>689084.187511697</YMax> 
        <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
  <WKT>PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101", GEOGCS["GCS_North_American_1927", DATUM["D_North_American_1927", SPHEROID["Clarke_1866",6378206.4,294.9786982]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"], PARAMETER["False_Easting",500000.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",-85.83333333333333], PARAMETER["Scale_Factor",0.99996], PARAMETER["Latitude_Of_Origin",30.5], UNIT["Foot_US",0.3048006096012192]]</WKT> 
             <XOrigin>489871.255812</XOrigin> 
             <YOrigin>665787.099562</YOrigin> 
             <XYScale>499999.999534338</XYScale> 
             <ZOrigin>0</ZOrigin> 
             <ZScale>1</ZScale> 
             <MOrigin>0</MOrigin> 
             <MScale>1</MScale> 
             <XYTolerance>6.56166666666667E-04</XYTolerance> 
             <ZTolerance>2</ZTolerance> 
             <MTolerance>2</MTolerance> 
             <HighPrecision>true</HighPrecision> 
          </SpatialReference>
       </Extent>
     <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
  <WKT>PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192]]</WKT> 
             <XOrigin>489871.255812</XOrigin> 
             <YOrigin>665787.099562</YOrigin> 
             <XYScale>499999.999534338</XYScale> 
             <ZOrigin>0</ZOrigin> 
             <ZScale>8192</ZScale> 
             <MOrigin>0</MOrigin> 
             <MScale>8192</MScale> 
             <XYTolerance>6.56166666666667E-04</XYTolerance> 
             <ZTolerance>2</ZTolerance> 
             <MTolerance>2</MTolerance> 
             <HighPrecision>true</HighPrecision> 
      </SpatialReference>
      <ClusterTolerance>0.5</ClusterTolerance> 
      <ZClusterTolerance>-1</ZClusterTolerance> 
      <MaxGeneratedErrorCount>-1</MaxGeneratedErrorCount> 
    <FeatureClassNames xsi:type="esri:Names">
         <Name>sde.RJP.Blocks</Name> 
         <Name>sde.RJP.Parcels</Name> 
      </FeatureClassNames>
    <TopologyRules xsi:type="esri:ArrayOfTopologyRule">
      <TopologyRule xsi:type="esri:TopologyRule">
           <HelpString /> 
           <RuleID>183</RuleID> 
           <Name /> 
           <GUID>7D3E7075-16CF-47AD-A8F4-842B921B1E1E</GUID> 
           <TopologyRuleType>esriTRTAreaNoOverlap</TopologyRuleType> 
           <OriginClassID>100</OriginClassID> 
           <OriginSubtype>0</OriginSubtype> 
           <DestinationClassID>100</DestinationClassID> 
           <DestinationSubtype>0</DestinationSubtype> 
           <TriggerErrorEvents>false</TriggerErrorEvents> 
           <AllOriginSubtypes>true</AllOriginSubtypes> 
           <AllDestinationSubtypes>true</AllDestinationSubtypes> 
        </TopologyRule>
      <TopologyRule xsi:type="esri:TopologyRule">
           <HelpString /> 
           <RuleID>184</RuleID> 
           <Name /> 
           <GUID>6F58891D-5BD9-4848-802E-90458152B0CE</GUID> 
           <TopologyRuleType>esriTRTAreaCoveredByArea</TopologyRuleType> 
           <OriginClassID>100</OriginClassID> 
           <OriginSubtype>1</OriginSubtype> 
           <DestinationClassID>98</DestinationClassID> 
           <DestinationSubtype>1</DestinationSubtype> 
           <TriggerErrorEvents>false</TriggerErrorEvents> 
           <AllOriginSubtypes>false</AllOriginSubtypes> 
           <AllDestinationSubtypes>false</AllDestinationSubtypes> 
        </TopologyRule>
    </TopologyRules>
</DataElement>

Связанные темы

5/10/2014