с непрерывно возрастающим масштабом использования
В связи с непрерывно возрастающим масштабом использования языка XML и связанных с ним дополнительных спецификаций и инструментальных средств в последние годы одной из основных задач мирового сообщества (как исследователей, так и поставщиков коммерческих программных продуктов) является обеспечение систем управления базами данных, максимально пригодных и удобных для долговременного хранения XML -документов и управления ими. К настоящему времени имеется множество программных систем, так или иначе решающих эту задачу. Эти системы весьма различаются как по своим функциональным возможностям, так и в отношении архитектурной организации. Было предпринято несколько попыток классификации систем в соответствии с теми или иными критериями. По-видимому, наиболее известной и используемой является классификация Рональда Буре [], но и она не является вполне обоснованной и убедительной.
В этой статье мы не намериваемся критиковать или совершенствовать классификацию систем управления 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 Института системного программирования РАН [].
Текущая реализация СУБД Sedna базируется на спецификациях языка XQuery 1.0 [] и его модели данных []. Для обеспечения поддержки обновлений баз XML -данных язык XQuery расширен средствами обновления данных (в контексте СУБД Sedna этот подъязык называется Xupdate ). При разработке XUpdate использовались идеи и предложения, описанные в []. Для кодирования СУБД Sedna применялись языки программирования Scheme и C ++. Язык Scheme использовался при написании компонентов статического анализа и оптимизации запросов. Компоненты синтаксического разбора, исполнения запросов, управления памятью и транзакциями и т.д. кодировались на языке C ++. Первой реализационной платформой было семейство Windows . В настоящее время ведется работа по переносу системы в среду Linux и других UNIX -платформ. СУБД Sedna можно свободно получить на сайте [].