XML-базы данных должны «думать и действовать» в терминах XML

По мере того, как ИТ-специалисты начинают экспериментировать с Web-службами, им, вероятно, потребуется новый вид хранилища: база данных, поддерживающая XML. Такие программные инструменты предназначены для эффективного хранения и управления XML-документами, число которых постоянно растет. Подобные документы создаются пользователями главным образом в процессе взаимодействия через Web со своими партнерами по бизнесу и клиентами. Сторонники поддерживающих XML баз данных подчеркивают ряд преимуществ этих решений по сравнению с традиционными базами. В первую очередь они называют простоту, легкость разработки приложений, способность искать XML-документы и обрабатывать связанные с ними запросы, а также оперативность извлечения документов из хранилища.

Формального, стандартного определения XML-базы данных не существует, хотя в рамках спецификации XML:DB Initiative подобная база данных описывается как решение, которое определяет логическую модель XML-документа (а не данных в документе) и управляет документами на основе этой модели. Суть состоит в том, что такая база данных «думает и действует», опираясь на XML: входные данные — это XML, и выходные данные — это тоже XML. При этом данные инструменты могут физически хранить документы в объектной или реляционной базе либо с помощью внутренней модели хранения, такой как индексированные файлы.

Отсутствие формального определения — не единственный недостаток в глазах критиков этого подхода. Они также отмечают незрелость продуктов и стандартов XML; отсутствие стандартного, надежного языка запросов, соответствующего языку SQL, применяемому в реляционных базах данных, и возможные проблемы с обеспечением целостности данных.

Производители реляционных СУБД также расширяют поддержку XML. Например, Microsoft разрабатывает версию SQL Server, получившую название Yukon. Представители Oracle в декабре анонсировали технологию XDB. Цель обоих проектов состоит в том, чтобы дать базам данных возможность рассматривать XML-документы как новый тип данных и управлять ими так же, как при работе с обычными реляционными данными или объектами.

«Если уж у меня есть реляционная база данных Oracle, мне бы хотелось точно знать, что происходит у нее внутри при обработке XML-данных, — заметил Ларри Хансон, архитектор баз данных налогового ведомства штата Калифорния. — Если эти документы хранятся, например, как объекты, то можно ли обратиться к ним с запросом и пометить их?»

В Oracle утверждают, что эти операции станут возможными в XDB, но как поведет себя эта технология при обработке больших объемов данных или наборов данных очень большого размера, пока неясно.

Хансон отметил, согласившись с мнением многих других экспертов, что XML-данные по сути своей отличаются от реляционных данных.

«XML очень хорошо подходит для иерархического хранения, — сказал Хансон, имеющий значительный опыт работы администратором баз данных. — В базах данных XML интерактивные налоговые декларации можно хранить как единое целое. В реляционной базе данных каждая строка декларации должна помещаться в свою таблицу, где данные расписываются по строкам и столбцам».

Попытка «втиснуть» XML-документ в жесткую реляционную структуру может привести к неоправданной трате памяти и к неэффективной обработке запросов.

Аналитики считают, что преимущества новой технологии баз данных будут способствовать быстрому становлению этого рынка. По прогнозам International Data Corp., затраты предприятий на поддерживающие XML базы данных ежегодно будут увеличиваться на 130% и к 2004 году достигнут 700 млн. долл. Такие базы данных будут дополнять реляционные базы данных, поскольку первые лучше подходят для хранения и обработки документов XML, а последние — для чисел и текста.

У пользователей есть большой выбор, учитывая, что уже сейчас выпускается по крайней мере два десятка баз данных, поддерживающих XML.

К основным производителям подобных продуктов относятся компания Software AG, а также eXcelon, которая хранит документы в своей объектно-ориентированной базе данных ObjectStore. Над XML-базами данных работает несколько небольших фирм, в том числе NeoCore, Ixia и ZYZFind. Этой теме посвящено несколько проектов, касающихся выпуска свободно распространяемого программного обеспечения. Один из них — Xindice, бывший проект dbXML Core, который теперь реализуется в рамках Apache Software Foundation.

Когда следует использовать поддерживающую XML базу данных, и нужно ли это делать, — зависит от данных, с которыми вам приходится работать, и от того, что именно вы хотите с ними делать.

Как заметил Филипп Гелинас, генеральный директор компании Xiasoft, выпускающей программное обеспечение и разработавшей TextML Server для XML-документов, организации, которым требуются новые приложения, созданные на базе XML, как правило, предпочитают использовать модели данных, которые не соответствуют традиционным реляционным структурам.

Этот сервер недорог (стоит около 10 тыс. долл., тогда как цена на некоторые конкурирующие решения доходит до 50 тыс. долл.) и позволяет работать с широким спектром инструментальных средств.

«Очень часто заказчики пытаются сначала использовать эти приложения с существующими реляционными базами данных и обнаруживают, что это невозможно, — сказал Гелинас. — После этого они приобретают XML-базу данных».


XML шагает по планете

Результаты опроса еженедельника Infoworld: «На какой стадии находится процесс внедрения XML в вашей компании?»