База данных XML — это программная система сохранения данных , которая позволяет указывать, а иногда и хранить данные в формате XML . Эти данные можно запрашивать , преобразовывать, экспортировать и возвращать вызывающей системе. Базы данных XML — это разновидность документно-ориентированных баз данных , которые, в свою очередь, относятся к категории баз данных NoSQL .
Обоснование использования XML в базах данных
Существует ряд причин напрямую указывать данные в XML или других форматах документов, таких как JSON . В частности, для XML они включают: [1] [2]
- На предприятии может быть много XML в существующем стандартном формате.
- Возможно, данные придется предоставлять или принимать в виде XML, поэтому использование другого формата, например реляционного, приводит к двойному моделированию данных.
- XML очень хорошо подходит для разреженных данных, глубоко вложенных данных и смешанного контента (например, текста со встроенными тегами разметки).
- XML удобен для чтения человеком, тогда как для доступа к реляционным таблицам требуются специальные знания.
- Метаданные часто доступны в формате XML.
- Данные семантической сети доступны в формате RDF /XML.
- Обеспечивает решение проблемы несоответствия объектно-реляционного импеданса [3]
Стив О'Коннелл приводит одну причину использования XML в базах данных: все более распространенное использование XML для транспортировки данных , что означает, что «данные извлекаются из баз данных и помещаются в документы XML, и наоборот». [4] [ требуется обновление ] Это может оказаться более эффективным (с точки зрения затрат на преобразование) и проще хранить данные в формате XML. В приложениях, основанных на контенте, возможности собственной базы данных XML также сводят к минимуму необходимость извлечения или ввода метаданных для поддержки поиска и навигации.
Базы данных с поддержкой XML
Базы данных с поддержкой XML обычно предлагают один или несколько из следующих подходов к хранению XML в традиционной реляционной структуре:
- XML хранится в CLOB ( большом символьном объекте ).
- XML «разбивается» на серию таблиц на основе схемы [5]
- XML хранится в собственном типе XML, как определено стандартом ISO 9075-14 [6].
СУБД, поддерживающие тип ISO XML:
- IBM DB2 (чистый XML [7] )
- Microsoft SQL-сервер [8]
- База данных Oracle [9]
- PostgreSQL [10]
Обычно база данных с поддержкой XML лучше всего подходит там, где большая часть данных не в формате XML. Для наборов данных, в которых большая часть данных представляет собой XML, лучше подходит собственная база данных XML.
Пример запроса типа XML в IBM DB2 SQL
выберите id , vol , xmlquery ( '$j/name' , передав журнал как "j" ) в качестве имени из журналов , где xmlexists ( '$j[licence="CreativeCommons"]' , передав журнал как "j" )
Собственные базы данных XML
Собственные базы данных XML специально созданы для работы с данными XML. Поскольку управление XML в виде больших строк было бы неэффективно, а из-за иерархической природы XML для хранения и выполнения запросов используются оптимизированные на заказ структуры данных. Обычно это повышает производительность как с точки зрения запросов только для чтения, так и обновлений. [11] Узлы и документы XML являются фундаментальной единицей (логического) хранилища, точно так же, как реляционная база данных имеет поля и строки.
Стандартом запроса XML-данных согласно рекомендации W3C является XQuery ; последняя версия — XQuery 3.1. [12] XQuery включает XPath в качестве подъязыка, а XML сам по себе является допустимым подсинтаксисом XQuery. Помимо XPath, некоторые базы данных XML поддерживают XSLT как метод преобразования документов или результатов запросов, полученных из базы данных.
Особенности языка
Поддерживаемые API
Ориентированные на данные наборы данных XML
Для наборов данных XML, ориентированных на данные, разработан и разработан уникальный и особый метод поиска по ключевым словам, а именно XDMA [13] для баз данных XML, на основе двойного индексирования и взаимного суммирования.
Рекомендации
- ↑ Никола, Матиас (28 сентября 2010 г.). «5 причин хранить XML в базе данных». Собственная база данных XML . Проверено 17 марта 2015 г.
- ↑ Фельдман, Дэймон (11 апреля 2013 г.). Переход от реляционного моделирования к моделям данных XML и MarkLogic. МаркЛогик Мир . Проверено 17 марта 2015 г.
- ^ [Краткий обзор NoSQL: краткое руководство по развивающемуся миру многоязычной устойчивости. Addison-Wesley Educational Publishers Inc, 2009] ISBN 978-0321826626
- ^ О'Коннелл, Стив (2005). Раздел 9.2. Примечания к курсу продвинутых баз данных (учебная программа). Саутгемптон, Англия: Университет Саутгемптона .
- ^ «Хранение и запросы XML-схем: базовые». Руководство разработчика Oracle XML DB, 10 г, выпуск 2 . Корпорация Оракл. Август 2005 года . Проверено 17 марта 2015 г.. Раздел Создание таблиц и столбцов XMLType на основе схемы XML
- ^ «ISO/IEC 9075-14:2011: Информационные технологии. Языки баз данных. SQL. Часть 14. Спецификации, связанные с XML (SQL/XML)». Международная Организация Стандартизации . 2011 . Проверено 17 марта 2015 г.
- ^ «Обзор pureXML — DB2 как база данных XML» . Центр знаний IBM . ИБМ . Проверено 17 марта 2015 г.
- ^ «Использование XML в SQL Server». Сеть разработчиков Microsoft . Корпорация Майкрософт . Проверено 17 марта 2015 г.
- ^ «Операции XMLType». Руководство разработчика Oracle XML DB, 10 г, выпуск 2 . Корпорация Оракл. Август 2005 года . Проверено 17 марта 2015 г.
- ^ «8.13. Тип XML» . Документация PostgreSQL 9.6 . Проверено 1 апреля 2017 г.
- ↑ Матиас, Никола (22 августа 2010 г.). «XML и производительность реляционной базы данных». Собственная база данных XML . Проверено 28 июня 2017 г.
- ^ «Рекомендация XQuery 3.1» . 21 марта 2017 г.
- ^ Сельваганесан, С.; Хау, Су-Чэн; Скоро, Лай-Ки (2014). «XDMA: алгоритм поиска ключевых слов на основе двойного индексирования и взаимного суммирования для баз данных XML». Международный журнал программной инженерии и инженерии знаний . 24 (4): 591–615. дои : 10.1142/s0218194014500223.
Внешние ссылки
- Рейтинг СУБД Native XML по популярности, обновляемый ежемесячно, по версии DB-Engines.
- Базы данных XML - Экономическое обоснование, Чарльз Фостер, июнь 2008 г. - Рассказывает о текущем состоянии баз данных и устойчивости данных, о том, как текущая модель реляционных баз данных начинает трещать по швам, и дает представление о сильной альтернативе для сегодняшних требований.
- База данных молекулярных путей на основе XML (2005-06-02) Сравнение скорости и производительности eXist, X-Hive, Sedna и Qizx/open
- Собственные системы баз данных XML: обзор Sedna, Ozone, NeoCoreXMS 2006
- Хранилища XML-данных: новые практики
- Бхаргава, П.; Раджамани, Х.; Такер, С.; Агарвал, А. (2005) Реляционные базы данных с поддержкой XML , Техас, Техасский университет в Остине.
- Инициатива по базам данных XML
- XML и базы данных, Рональд Бурре, сентябрь 2005 г.
- Состояние собственных баз данных XML, Эллиотт Расти Гарольд, 13 августа 2007 г.