XML-столбцы в базе геоданных в DB2

XML – это открытый формат определения элементов данных в документах. Для хранения XML-данных в базе данных IBM DB2 вы можете использовать XML-столбцы ArcSDE или собственные типы XML-данных IBM DB2 (PureXML).

Вы можете хранить пользовательские XML-документы в любом типе XML. Используемый тип XML определяется параметром XML_COLUMN_STORAGE DBTUNE. По умолчанию данный параметр равен DB_XML. Поэтому, по умолчанию используется тип данных PureXML.

Для использования ArcSDE данных типа XML вам необходимо установить DB2 Text Search Extender.

ПримечаниеПримечание:

Если до этого вы использовали Net Search Extender, то вам необходимо перейти на Text Search Extender. Подробную информацию см. в информационном центре DB2 (http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.admin.ts.doc/doc/c0053115.html).

XML-столбцы в ArcGIS for Desktop

В базы геоданных XML-столбцы поддерживаются не полностью. Поэтому верно следующее:

XML-столбцы в СУБД DB2

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

Вы можете использовать два различных типа XML-столбцов: ArcSDE XML или DB2 PureXML. Столбец, который вы используете в наборе данных, созданном вами в базе геоданных, управляется параметром XML_STORAGE таблицы DBTUNE.

Для ArcSDE XML существует три системные таблицы базы геоданных ArcSDE, используемые для управления XML-столбцами: SDE_XML_COLUMNS, SDE_XML_INDEX_TAGS и SDE_XML_INDEXES. Данные таблицы принадлежат администратору базы геоданных. Существует еще две дополнительные таблицы для каждого XML-столбца, используемые для хранения и индексирования XML-документов: SDE_XML_DOC<COLUMN_ID> и SDE_XML_IDX_<COLUMN_ID>. Данные таблицы принадлежат пользователю, который является владельцем бизнес-таблицы, содержащей XML-столбец.

Следующие таблицы создаются при использовании ArcSDE XML. Эти таблицы используются для хранения и индексирования XML-документа.

ВниманиеВнимание:

Не изменяйте ни одну из указанных таблиц с использованием SQL.

SDE_XML_COLUMNS

При добавлении XML-столбца ArcSDE в бизнес-таблицу в таблицу SDE_XML_COLUMNS добавляется строка. Данная таблица используется один раз для каждой базы данных ArcSDE.

Имя поля

Тип поля

Описание

Null?

COLUMN_ID

INTEGER

Идентификатор XML-столбца и первичного ключа для таблицы

Данное значение присваивается ArcSDE при каждом создании XML-столбца ArcSDE.

NOT NULL

REGISTRATION_ID

INTEGER

Идентификатор бизнес-таблицы, содержащий XML-столбец ArcSDE и внешний ключ для системной таблицы TABLE_REGISTRY.

NOT NULL

COLUMN_NAME

VARCHAR(32)

Имя XML-столбца ArcSDE в бизнес-таблице.

NOT NULL

INDEX_ID

INTEGER

Идентификатор индекса XPath, связанный с XML-столбцом ArcSDE (если имеется), и внешний ключ для таблицы SDE_XML_INDEXES.

MINIMUM_ID

INTEGER

Значение исходного номера, используемое в XML-столбце ArcSDE бизнес-таблицы, для идентификации отдельных XML-документов.

CONFIG_KEYWORD

VARCHAR(32)

Ключевое слово конфигурации DBTUNE, для которого параметры определяет способ создания XML-документа, таблиц индекса XML XPath, а также текстовых индексов таблиц в базе данных

Дополнительную информацию о ключевых словах DBTUNE и их параметрах см. в разделах Что представляют собой ключевые слова конфигурации DBTUNE и их параметры? и Параметры конфигурации DBTUNE для DB2.

XFLAGS

INTEGER

Значение, указывающее на то, как сохранены исходные документы в таблице XML-документе: в сжатом или несжатом виде

По умолчанию документы сжимаются; сжатые документы обеспечивают лучшую производительность.

SDE_XML_INDEXES

Данная таблица используется один раз для каждой базы геоданных. Она содержит одну строку для каждого XML-столбца ArcSDE, имеющего индекс XPath.

Имя поля

Тип поля

Описание

Null?

INDEX_ID

INTEGER

Идентификатор индекса XPath и первичного ключа для таблицы

NOT NULL

INDEX_NAME

VARCHAR(32)

Имя индекса XPath

NOT NULL

OWNER

VARCHAR(32)

Пользователь базы данных, владеющий XML-столбцом ArcSDE

NOT NULL

INDEX_TYPE

INTEGER

Значение, указывающее на тип индекса XPath

Для ArcSDE версии 9.1 и позднее значение равно 2 для типа индекса SE_XML_INDEX_DEFINITION и 1 для типа индекса SE_XML_INDEX_TEMPLATE.

NOT NULL

DESCRIPTION

VARCHAR(64)

Текст, идентифицирующий индекс XPath

Если для создания индекса использовался файл определения индекса, то описание индекса может быть указано в верхней части файла.

SDE_XML_INDEX_TAGS

XML-столбец ArcSDE может иметь дополнительный индекс XPath, который позволяет вам выполнять поиск содержимого отдельно XML-элемента или атрибута в каждом документе. Определение элементов и атрибутов, которые включены в каждый индекс XPath или исключены из него приведены в данной таблице.

Данная таблица используется один раз для каждой базы геоданных. Она содержит одну строку для каждого XPath, связанного с индексом XPath XML-столбца ArcSDE.

Имя поля

Тип поля

Описание

Null?

INDEX_ID

INTEGER

Идентификатор индекса XPath, связанный с XML-столбцом ArcSDE (если имеется), и внешний ключ для таблицы SDE_XML_INDEXES.

NOT NULL

TAG_ID

INTEGER

Идентификатор XPath или тега

NOT NULL

TAG_NAME

VARCHAR(1024)

Абсолютное значение XPath, определяющее XML-элемент или атрибут, содержащийся в XML-документе

Например, /metadata/mdDateSt определяют XML-элемент, а /metadata/dataIdInfo/tpCat/TopicCatCd/@value определяют XML-атрибут.

Данные XPath не должны содержать символа звездочка (*) для ссылки на группу XML-элементов или атрибутов — каждый элемент определяется точно с использованием XPath, указанных в данной таблице. Элементы не могут иметь имя * в корректном XML-документе.

NOT NULL

DATA_TYPE

INTEGER

Значение, указывающее на то, имеет ли XML-элемент или атрибут индекс числа, varchar или текста

Значение 1 указывает на то, что содержимое тега проиндексировано как тест; значение 2 указывает на то, что содержимое тега проиндексировано как число; значение 3 указывает на то, что содержимое тега проиндексировано как varchar.

NOT NULL

TAG_ALIAS

INTEGER

Число, которое может быть использовано для идентификации XPath

Например, протокол связи Z39.50 использует числовые коды для ссылки на содержимое, по которому может выполнятся поиск.

DESCRIPTION

VARCHAR(64)

Текст, определяющий содержимое, которое должно содержаться в XML-элементе или атрибуте

IS_EXCLUDED

INTEGER

Значение, указывающее на то, включен ли XML-элемент в индекс XPath или исключен из него

  • 0 = XPath включен.
  • 1 = XPath исключен.

NOT NULL

SDE_XML_DOC<COLUMN_ID>

В таблице SDE_XML_DOC<COLUMN_ID> хранится XML-документ и поддерживается полнотекстовый индекс содержимого XML-документа. База геоданных содержит одну из этих таблиц для каждого XML-столбца ArcSDE. Число в имени таблицы является идентификатором XML-столбца ArcSDE. Данная таблица содержит одну строку для каждого XML-документа, сохраненного в XML-столбце ArcSDE.

Имя поля

Тип поля

Описание

Null?

SDE_XML_ID

INTEGER

Идентификатор XML-документа, хранящегося в XML-столбце ArcSDE и первичного ключа для таблицы

NOT NULL

DOC_PROPERTY

INTEGER

Значение, указывающее на наличие конфликтов при добавлении содержимого XML-документа в индекс XPath

1 = найден конфликт, например, когда предполагалось, что элемент имеет цифровое индексирование, а документ содержит строку в данном элементе.

Значение NULL = при индексации документа проблемы не обнаружены.

XML_DOC

BLOB

XML-документ

NOT NULL

XML_DOC_VAL

BLOB

Содержимое полного XML-документа со всеми XML-тегами и другие пометки удалены

По умолчанию на данном столбце построен текстовый индекс; данный индекс используется для ответа на полнотекстовые запросы.

SDE_XML_IDX<COLUMN_ID>

Таблица SDE_XML_IDX<COLUMN_ID> создается для XML-столбцов ArcSDE и имеет текстовый индекс XPath. В данной таблице хранится текстовое или числовое содержимое для каждого индексированного XPath.

ID в имени таблицы является внутренним регистрационным номером XML-столбца ArcSDE.

Имя поля

Тип поля

Описание

Null?

XML_KEY_COLUMN

INTEGER

Идентификатор для индексированного значения и первичного ключа для таблицы

NOT NULL

SDE_XML_ID

INTEGER

Идентификатор XML-документа, содержащего индексированное значение

NOT NULL

TAG_ID

INTEGER

Идентификатор для тега, связанного с индексом XPath XML-столбца ArcSDE, который определяет место хранения значения в документе.

NOT NULL

DOUBLE_TAG

FLOAT

Индексированное значение, когда тег определяется как DOUBLE в определении индекса XPath

STRING_TAG

VARCHAR2(256)

Индексированное значение, когда тег определяется как VARCHAR в определении индекса XPath

TEXT_TAG

CLOB

Индексированное значение, когда тег определяется как STRING в определении индекса XPath

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

Таблицы, используемые для поддержки XML-столбцов ArcSDE в DB2
ПримечаниеПримечание:

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

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

XML-столбцы в XML-документе

Вы не можете выполнить экспорт таблицы, содержащей XML-столбец, в рабочую область XML-документа. Вы можете выполнить его экспорт в документ набора записей XML, но в документе нет ничего, отличающего столбец как XML-столбец.

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

5/10/2014