База данных 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 (pureXML [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. MarkLogic World . Получено 17 марта 2015 г.
- ^ [NoSQL Distilled: Краткое руководство по формирующемуся миру полиглотической настойчивости. Addison-Wesley Educational Publishers Inc, 2009] ISBN 978-0321826626
- ^ О'Коннелл, Стив (2005). Раздел 9.2. Заметки по курсу «Продвинутые базы данных» (программа курса). Саутгемптон, Англия: Университет Саутгемптона .
- ^ "XML Schema Storage and Query: Basic". Oracle XML DB Developer's Guide, 10 g Release 2. Oracle Corporation. Август 2005 г. Получено 17 марта 2015 г.Раздел Создание таблиц и столбцов XMLType на основе XML-схемы
- ^ "ISO/IEC 9075-14:2011: Информационные технологии — Языки баз данных — SQL — Часть 14: Спецификации, связанные с XML (SQL/XML)". Международная организация по стандартизации . 2011. Получено 17 марта 2015 г.
- ^ "Обзор pureXML — DB2 как база данных XML". IBM Knowledge Center . IBM . Получено 17 марта 2015 г. .
- ^ "Использование XML в SQL Server". Microsoft Developer Network . Microsoft Corporation . Получено 17 марта 2015 г.
- ^ "XMLType Operations". Oracle XML DB Developer's Guide, 10 g Release 2. Oracle Corporation. Август 2005 г. Получено 17 марта 2015 г.
- ^ "8.13. XML Type". Документация PostgreSQL 9.6 . Получено 1 апреля 2017 г.
- ^ Маттиас, Никола (22 августа 2010 г.). "XML против производительности реляционной базы данных". Собственная база данных XML . Получено 28 июня 2017 г.
- ^ "Рекомендация XQuery 3.1". 2017-03-21.
- ^ Selvaganesan, S.; Haw, Su-Cheng; Soon, Lay-Ki (2014). "XDMA: алгоритм поиска ключевых слов на основе двойного индексирования и взаимного суммирования для баз данных XML". Международный журнал по программной инженерии и инженерии знаний . 24 (4): 591–615. doi :10.1142/s0218194014500223.
Внешние ссылки
- Рейтинг собственных XML-СУБД по популярности, обновляемый ежемесячно, от DB-Engines
- Базы данных XML — экономическое обоснование, Чарльз Фостер, июнь 2008 г. (ссылка недействительна) — рассказывает о текущем состоянии баз данных и сохранении данных, о том, как текущая модель реляционных баз данных начинает трещать по швам, и дает представление о надежной альтернативе, отвечающей сегодняшним требованиям.
- База данных молекулярных путей на основе XML (2005-06-02) Сравнение скорости и производительности eXist, X-Hive, Sedna и Qizx/open
- Системы баз данных XML Native: обзор Sedna, Ozone, NeoCoreXMS 2006
- Хранилища данных XML: новые практики
- Бхаргава, П.; Раджамани, Х.; Такер, С.; Агарвал, А. (2005) Реляционные базы данных с поддержкой XML , Техас, Техасский университет в Остине.
- Инициатива по базам данных XML
- XML и базы данных, Рональд Бурре, сентябрь 2005 г.
- Состояние собственных баз данных XML, Эллиот Расти Гарольд, 13 августа 2007 г.