Язык XML, впервые представленный концорциумом W3C в 1996 году, за последние несколько лет стал настоящим стандартом обмена и внешнего представления информации в разнородных системах и приложениях. XML предоставляет существенную гибкость в представлении данных, чтобы удобным образом отражать большинство существующих форматов данных, при этом оставляя разработчикам возможность создавать достаточно ограниченные диалекты языка. За несколько лет после появления XML как стандарта, в индустрии было созданно большое количество стандартных XML диалектов для: мета-данных в докуметнообороте (Dublin Core, XEDI), определения бизнесс процессов и транзакций для электронной коммерции и для автоматизации процессов (RosettaNet, ebXML, BPEL), публикация докуметнов (DocBook) и оргомное количество проприетарных форматов для экспорта и импорта данных из приложений и баз данных. Таким образом, при создании современного приложения с открытой архитектурой, необходимо использовать XML для представления и обмена информацией.
Но XML удобен не только для обмена информации, но и в силу гибкости представления данных, XML является удачным решением для хранения данных, особенно когда данные слабо-структурированы или когда встает задача представления одних и тех же данных в различных форматах. Особенно привлекательными областями для хранения и преобразования данных в формате XML являются системы контент-менеджмента и докуметооборота, где требуется преобразование данных в различные форматы и синхронизация или приведение данных к единому представлению. В сценарии контент-менеджмента XML обычно является базовым представлением документов, из которого автоматически генерируются дополнительные представления для визуализации, печати и редактирования. При этом системы контент-менеджмента хранят богатые мета-данные по документам и отслеживают все версии документов. Системы документооборота также часто используют богатый набор данных в своих документах. Например система колл-центра может хранить как исходные данные о проблемной ситуации, так и транскрипты последующих разговоров с клиетном, записки оператора и т.п. В добавок к этим сообщениям, колл-центр может хранить дополнительные документы по кейсу, аннотации и прочую дополнительную информацию. В таком сценарии храние данных в XML предоставляет существенную гибкость в структуре исходных документов при возможности эффективного поиска по всем видам данных.
Также, следует отметить задачу интеграции данных из большого количества гетерогенных источников - таких как базы данных, корпоративные приложения, веб-сервисы и документы. В традиционных задачах интеграции требуется создание глобального хранилища данных с возможностью представления различных выборок из интегрированных данных. Обычно проекты интеграции данных реализуют используя инструменты ETL и реляционные базы данных, но при наличии слабо-структурированных данных, в том числе данных полученных от веб-сервисов и из документов, жесткая структура реляционных баз становится препятсвием при реализации хранилища. Сложную, иерархическую структуру XML докуметнов приходится разбивать на реляционные таблицы, что является достаточно сложной задачей. В этих сценариях имеет смысл использовать специальную СУБД для хранения XML и языки запросов и транформации данных XQuery для обработки и преобразования данных к различным форматам.
СУБД Sedna - это система изначально спроектированная для хранения и обработки XML данных, в отличие от вендоров реляционных баз, где поддержка XML реализована как частных случай сверху существующих механизмов хранения. Благодаря native поддержке XML данных, Sedna предоставляет пользователям полный спектр услуг традиционной СУБД для XML данных: эффективная поддержка транзакций, горячее резервное копирование и быстрое восстановление базы, сихнронизация, поддержка языка запросов XQuery и языка модификации данных XQuery Update. При этом Sedna предоставляет разработчикам легкие API для популярных языков, включая: C, Java, Python, PHP; и простой способ разработки Web приложений на основе СУБД Senda.
В настоящем докладе мы подробно расскажем о проблемах хранения и преобразования XML данных в вышеперечисленных сценариях и расскажем о подходах и преимуществах использования СУБД Sedna для этой цели.