Классика баз данных - статьи

Аннотация. В настоящее время XML


Расширяемый язык разметки XML [] в настоящее время стал стандартным средством моделирования слабоструктурированных данных. Кроме того, язык XML широко используется в приложениях, в которых определяющими являются требования надежности и согласованности данных. Пользователи таких приложений, как правило, вводят запросы на выборку или изменения в параллельном режиме.

На сегодняшний день в большинстве развитых коммерческих реляционных СУБД (РСУБД), таких как IBM DB2, MS SQL Server 2000/2005, Oracle 10g, встроена поддержка стандартов XML. Эта функциональность реализуется в виде дополнительного компонента - XML-расширения. Помимо этого, во всех вышеуказанных РСУБД имеется эффективная поддержка транзакций. В совокупности эти факторы обуславливают высокую привлекательность РСУБД для обработки XML-запросов в параллельном режиме.

Вышеупомянутые XML-расширения поддерживают XML на основе метода STORED []. Основная идея метода заключается в следующем: XML-документ хранится в большом объекте типа BLOB (MS SQL Server 2005) или CLOB (IBM DB2 v 8.2, MS SQL Server 2000), а процессор запросов расширяется поддержкой запросов на выборку и изменения XML-документов (см. ). Таким образом, XML-документы хранятся в столбцах некоторой таблицы, которую мы будем называть таблицей документов(document table).

Для увеличения скорости выборки данных вводятся дополнительные индексы, которые, как правило, реализуются в виде дополнительных таблиц (side tables). В дальнейшем мы будем называть эти таблицы боковыми. Для задания частей XML-документа, которые должны храниться в боковой таблице, проектировщик базы данных должен определить STORED-запрос. Это позволяет существенно увеличить скорость выполнения XML-запросов на выборку. Кроме того, например, в MS SQL Server 2005 для поддержки доступа к XML существуют специальные типы индексов: путевые индексы, индексы по значениям, индексы по значениям и путям в XML-документе.

При изменении XML-документа необходимо, чтобы боковые таблицы (индексы) и таблицы документов находились в согласованном состоянии. Например, в IBM DB2 v 8.2 согласованность данных поддерживается на основе триггеров: при изменении XML-элемента (или атрибута), который находится как в боковой таблице, так и в таблице документов, автоматически выполняется триггер, который осуществляет удаление старого значения в боковой таблице и вставку нового значения.

В этой работе мы изучаем возможности эффективной обработки большого количества XML-запросов в параллельном режиме с использованием коммерческих XML-расширений.

Проведя ряд экспериментов с XML-расширениями, мы выявили, что производительность системы существенно деградирует при большом количестве XML-транзакций. Дело в том, что изоляция транзакций в РСУБД реализуется на основе механизма блокировок данных, в котором не учитывается ни иерархическая природа XML-данных, ни семантика XML-операций.



Содержание раздела