[ Russian ] [ English ]

XML-ориентированные базы данных: обзор состояния и опыт разработки

В. Веселов,
СПАРМ,
valera@sparm.com
А. Долженков,
СПАРМ,
dol@sparm.com

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

СУБД, работающие с XML данными, принято подразделять на две категории - собственно XML-СУБД (native XML DBMS, NXD), например "Tamino" Softwahre AG, и СУБД, поддерживающие XML (XML-enabled DBMS), например.SQL Server 2000 Microsoft Corp [1,2,3,4]. Разница между ними состоит, во-первых, в полноте функциональных возможностей, поддерживаемых на логическом уровне представления и манипулирования XML данными и, во-вторых, в организации физического хранения (индексация и минимизация количества операций ввода-вывода), оптимизированного именно для XML данных.

Поддержка XML данных в реляционных СУБД обычно реализуется при помощи схем отображения (Mapping Schema). Они представляют собой обычные схемы XML-документов в формате XSD (или другом), в которые добавлены аннотации, увязывающие элементы и атрибуты с таблицами и полями БД. Использование подобных схем не позволяет достичь полных функциональных возможностей XML-СУБД, поскольку в процессе преобразования происходит потеря части данных.

Однако возможен и другой подход. Полнофункциональная XML-СУБД может быть построена на базе реляционной СУБД. Это значит, что:

  1. XML-документы могут быть записаны в реляционную БД с полным сохранением содержащейся в них информации и потом восстановлены из базы в исходном виде. При этом запись может быть сделана без использования каких-либо схем, а записанные данные, вместе с автоматически созданными описаниями, становятся полнофункционально доступны пользователям по завершению транзакции записи (важное требование полнофункциональной XML-СУБД).
  2. Реляционная физическая память может быть оптимизирована для хранения XML данных, что необходимо для организации высокой скорости их обработки .
  3. Манипулирование записанными XML данными может быть выполнено при помощи операторов SQL, а запросы XQuery, соответственно оттранслированы в SQL.

Возможность использования реляционной СУБД как XML-СУБД весьма заманчива, поскольку:

  1. Не нужно создавать специализированную систему управления физической памятью.
  2. Взаимодействовать с БД можно на высокоуровневом языке, операторы которого обрабатывают документы целиком, а не узлы документов. Низкоуровневый интерфейс в этом варианте, можно вообще не реализовывать.

Основной вопрос - адекватное представление структуры XML-документов отношениями и адекватное отображение манипуляций с ними операторами SQL. Если коротко, то одно из адекватных представление структуры может состоять в следующем [5]. Каждый узел XML-документа записывается как кортеж, совокупность однотипных узлов отображается в отношение. Если узел имел атрибуты, то они становятся неключевыми атрибутами отношения. В отличие от реляционных данных, представляющих собой неупорядоченные множества, XML данные представляют собой множества упорядоченные, поэтому позиции узлов должны быть сохранены в отношении в виде значений специальных атрибутов. Эти атрибуты образуют суррогатный первичный ключ отношения [6].

В докладе будут рассмотрены следующие вопросы:

  • Особенности XML-ориентированных СУБД.
  • Деятельность консорциума XML:DB по развитию стандартов XML-СУБД [7].
  • Существующие подходы к реализации СУБД, работающих с XML данными.
  • Структура XML данных и те их особенности, которые необходимо учитывать при разработке XML-СУБД.
  • Варианты отображения XML данных в реляционную БД [8,9], генерация описаний и индексация.
  • Опыт разработки XML-ориентированной СУБД на основе реляционной системы.

Литература:

  1. Материалы W3C-консорциума об XML-технологии. - http://www.w3.org/TR/, переводы некоторых из них на русский язык - http://www.citforum.ru/internet/xml.shtml.
  2. Шуленин, А. Встроенные средства поддержки XML в SQL Server 2000 с точки зрения задачи интеграции бизнес-приложений. Доклад на конференции "Корпоративные Базы Данных 2001".- М, 2001.
  3. Кимбро Стэйкин. Знакомство с естественными XML-базами данных. Пер. с англ. http://www.raleigh.ru/XML/2002/nxmldb.php
  4. Ли Доддз. XML и базы данных? Доверьтесь своей интуиции. Пер. с англ. http://www.iso.ru/cgi-bin/main/journal.cgi?do_what=details&id=206
  5. Веселов В., Долженков А. Опыт построения XML-СУБД. - "Открытые Системы", №06/2002.
  6. Дейт К. Дж. Введение в системы баз данных, 7-е издание: Пер. с англ. - М: Вильямс, 2001.-1072с.
  7. Материалы XML:DB-консорциума об XML-СУБД. - http://www.xmldb.org/
  8. Danielo Florescu and Donald Kossmann. Storing and Querying XML Data Using an RDBMS. http://research.microsoft.com/research/db/debull/99sept/issue.htm
  9. Feng Tian, David J. DeWitt, Jianjun Chen, and Chun Zhang.The Design and Performance Evaluation of Various XML Storage Strategies. http://www.cs.wisc.edu/niagara/Publications.html
Supported by Synthesis Group