XML-ориентированные базы данных: обзор состояния и опыт разработки
В докладе рассматривается ряд вопросов, связанных с технологией построения 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-СУБД может быть построена на базе реляционной СУБД. Это значит, что:
- XML-документы могут быть записаны в реляционную БД с полным сохранением содержащейся в них информации и потом восстановлены из базы в исходном виде. При этом запись может быть сделана без использования каких-либо схем, а записанные данные, вместе с автоматически созданными описаниями, становятся полнофункционально доступны пользователям по завершению транзакции записи (важное требование полнофункциональной XML-СУБД).
- Реляционная физическая память может быть оптимизирована для хранения XML данных, что необходимо для организации высокой скорости их обработки .
- Манипулирование записанными XML данными может быть выполнено при помощи операторов SQL, а запросы XQuery, соответственно оттранслированы в SQL.
Возможность использования реляционной СУБД как XML-СУБД весьма заманчива, поскольку:
- Не нужно создавать специализированную систему управления физической памятью.
- Взаимодействовать с БД можно на высокоуровневом языке, операторы которого обрабатывают документы целиком, а не узлы документов. Низкоуровневый интерфейс в этом варианте, можно вообще не реализовывать.
Основной вопрос - адекватное представление структуры XML-документов отношениями и адекватное отображение манипуляций с ними операторами SQL. Если коротко, то одно из адекватных представление структуры может состоять в следующем [5]. Каждый узел XML-документа записывается как кортеж, совокупность однотипных узлов отображается в отношение. Если узел имел атрибуты, то они становятся неключевыми атрибутами отношения. В отличие от реляционных данных, представляющих собой неупорядоченные множества, XML данные представляют собой множества упорядоченные, поэтому позиции узлов должны быть сохранены в отношении в виде значений специальных атрибутов. Эти атрибуты образуют суррогатный первичный ключ отношения [6].
В докладе будут рассмотрены следующие вопросы:
- Особенности XML-ориентированных СУБД.
- Деятельность консорциума XML:DB по развитию стандартов XML-СУБД [7].
- Существующие подходы к реализации СУБД, работающих с XML данными.
- Структура XML данных и те их особенности, которые необходимо учитывать при разработке XML-СУБД.
- Варианты отображения XML данных в реляционную БД [8,9], генерация описаний и индексация.
- Опыт разработки XML-ориентированной СУБД на основе реляционной системы.
Литература:
- Материалы W3C-консорциума об XML-технологии. - http://www.w3.org/TR/, переводы некоторых из них на русский язык - http://www.citforum.ru/internet/xml.shtml.
- Шуленин, А. Встроенные средства поддержки XML в SQL Server 2000 с точки зрения задачи интеграции бизнес-приложений. Доклад на конференции "Корпоративные Базы Данных 2001".- М, 2001.
- Кимбро Стэйкин. Знакомство с естественными XML-базами данных. Пер. с англ. http://www.raleigh.ru/XML/2002/nxmldb.php
- Ли Доддз. XML и базы данных? Доверьтесь своей интуиции. Пер. с англ. http://www.iso.ru/cgi-bin/main/journal.cgi?do_what=details&id=206
- Веселов В., Долженков А. Опыт построения XML-СУБД. - "Открытые Системы", №06/2002.
- Дейт К. Дж. Введение в системы баз данных, 7-е издание: Пер. с англ. - М: Вильямс, 2001.-1072с.
- Материалы XML:DB-консорциума об XML-СУБД. - http://www.xmldb.org/
- Danielo Florescu and Donald Kossmann. Storing and Querying XML Data Using an RDBMS. http://research.microsoft.com/research/db/debull/99sept/issue.htm
- 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
|