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