Введение
В связи с непрерывно возрастающим масштабом использования языка XML и связанных
с ним дополнительных спецификаций и инструментальных средств в последние
годы одной из основных задач мирового сообщества (как исследователей, так
и поставщиков коммерческих программных продуктов) является обеспечение систем
управления базами данных, максимально пригодных и удобных для долговременного
хранения XML -документов и управления ими. К настоящему времени имеется множество
программных систем, так или иначе решающих эту задачу. Эти системы весьма
различаются как по своим функциональным возможностям, так и в отношении архитектурной
организации. Было предпринято несколько попыток классификации систем в соответствии
с теми или иными критериями. По-видимому, наиболее известной и используемой
является классификация Рональда Буре [1], но и она не является вполне обоснованной
и убедительной.
В этой статье мы не намериваемся критиковать или совершенствовать классификацию
систем управления XML -данными. Однако отметим, что если говорить о системах,
обладающих, помимо специфических возможностей управления XML -данными, развитыми
традиционными функциями СУБД (многопользовательский режим, транзакционность,
авторизация доступа, восстановление после сбоев и т.д.), то можно условно
разделить существующие системы на два крупных класса. Первый класс составляют
системы, существовавшие до появления потребности в работе с XML , и впоследствии
к этому приспособленные (Буре лаконично называет их XML - enabled DBMS ,
а мы в этой статье, не претендуя на введения термина, будем называть их СУБД,
приспособленные к XML ). Ко второму классу относятся системы,
специально спроектированные и разработанные для управления XML -данными.
В классификации Буре эти системы называются native XML DBMS ,
и в статье мы будем их называть прирожденными XML -СУБД .
Системы обоих классов плодятся и размножаются. Очевидно, что имеется потенциальная
потребность и в СУБД, приспособленных к XML , и во врожденных XML -СУБД.
Например, на предприятиях, которые традиционно пользуются некоторой развитой
SQL -ориентированной СУБД, естественно пытаться удовлетворить свои потребности
в поддержке XML -приложений за счет дополнительных возможностей новых версий
того же продукта. Напротив, в тех случаях, когда компания делает стратегическую
ставку на XML , и все ее будущие приложения будут основаны на работе с XML
-данными, разумно опираться на некоторую прирожденную XML- СУБД.
Между системами указанных двух классов, помимо технических различий, имеется
важное маркетинговое различие. У СУБД, приспособленных к XML , как правило,
наличествуют традиционные потребители. Конечно, компании, производящие такие
системы, стремятся к расширению рынка за счет повышения качества продукта
и расширения его функциональности, но главным стимулом являются потребности
традиционных потребителей. У прирожденных XML -СУБД, по причине их молодости,
традиционных потребителей мало или нет вовсе. Для нахождения своей рыночной
ниши компании, производящие прирожденные XML -СУБД, должны оптимизировать
свои системы в расчете на наиболее перспективный вариант использования.
Тема вариантов использования прирожденных XML -СУБД широко обсуждается как
в исследовательской среде, так и среди производственных разработчиков. В
этой статье мы также хотим затронуть эту тему, представив сначала вниманию
читателей некоторые интересные и важные особенности отечественной прирожденной
XML -СУБД Sedna , разрабатываемой исследовательской группой MODIS Института
системного программирования РАН [2].
Текущая реализация СУБД Sedna базируется на спецификациях языка XQuery 1.0
[3] и его модели данных [4]. Для обеспечения поддержки обновлений баз XML -данных
язык XQuery расширен средствами обновления данных (в контексте СУБД Sedna этот
подъязык называется Xupdate ). При разработке XUpdate использовались идеи и
предложения, описанные в [5]. Для кодирования СУБД Sedna применялись языки
программирования Scheme и C ++. Язык Scheme использовался при написании компонентов
статического анализа и оптимизации запросов. Компоненты синтаксического разбора,
исполнения запросов, управления памятью и транзакциями и т.д. кодировались
на языке C ++. Первой реализационной платформой было семейство Windows . В
настоящее время ведется работа по переносу системы в среду Linux и других UNIX
-платформ. СУБД Sedna можно свободно получить на сайте [2].
содержание назад вперед