В настоящее время язык XML фактически является стандартом de facto для представления слабоструктурированных данных. Формат XML все чаще используется для хранения значительных объемов информации, что повышает актуальность задачи управления XML-данными. Для решения этой задачи предназначены прирожденные (native) XML-СУБД.
Разработку приложений, работающих с XML-данными, при помощи традиционных языков программирования часто усложняет проблема несоответствия (impedance mismatch) между моделями данных. С точки зрения модели данных можно выделить два уровня: уровень базы данных и уровень приложения. Проблема заключается в несоответствии моделей данных на этих уровнях. Например, достаточно типичным является выбор объектно-ориентированных языков для реализации XML-приложений (Java, C# и т.п.). В таком случае на уровне данных программист имеет дело с древовидной моделью данных языка XML, а на уровне приложения - c объектно-ориентированной моделью языка программирования. Разработчику приходится заботиться о преобразованиях между моделями, что неудобно и ведет к дополнительным ошибкам.
Для запросов XML-данных консорциум W3C предлагает язык XQuery. Выразительность этого языка позволяет рассматривать его не только как язык запросов, но и как полнофункциональный язык управления XML-данными.
XQuery = XPath (язык адресации узлов XML-документа) +
Поддержка трансформаций XML-данных +
Описание логики +
Расширяемость
При работе в Web часто приходится иметь дело со слабоструктурированной информацией, и формат XML получил в этой среде наиболее широкое распространение. Для разработки Web-приложений, оперирующих слабоструктурированными данными, удобно использовать язык XQuery над базой XML-данных. Преимущество данного подхода состоит в том, что приложение разрабатывается от начала и до конца в рамках одной модели данных. Данные, которыми оперирует приложение, представлены в формате XML, язык реализации приложений XQuery основан на модели данных XML и, наконец, документ в формате HTML, результат работы Web-скрипта, также является частным случаем XML-данных.
Данные, которыми оперируют Web-приложения, представляются в формате XML и сохраняются в базе XML-данных. Web-приложение строится из набора сервлетов, реализуемых на языке XQuery.
Сервлеты функционируют над базой XML-данных, причем глубоко интегрированы с ней. Интеграция приложения с данными при таком подходе является гораздо глубокой, чем интеграция традиционных Web-приложений с реляционными БД посредством обращений к прикладному API, поскольку операции XQuery выполняются непосредственно над структурами базы данных. При такой интеграции не требуется дополнительная среда для передачи контекста между сервлетами: сервлеты взаимодействуют друг с другом посредством базы данных.
Для обеспечения возможности промышленного применения XML-СУБД должны отвечать критериям, имеющим отношение ко всем СУБД, независимо от их специфики.
Основными критериями являются следующие:
XML СУБД Sedna (проект Института системного программирования) удовлетворяет всем этим критериям и позволяет создавать эффективные серверные решения для решения задач управления полуструктурированными данными.