Перейти до вмісту

База даних XML

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.

База даних XML — програмна система збереження даних, яка дозволяє вказати дані та іноді зберегти їх у форматі XML. Ці дані можна запитувати, трансформувати, експортувати та повертати до викликуваної системи. Бази даних XML є атрибутом баз даних, орієнтованих на документи, які в свою чергу належать до категорії NoSQL баз даних.

Обґрунтування для XML в базах даних

[ред. | ред. код]

Існує ряд причин для прямого визначення даних в XML або інших форматах документів, таких як JSON. Зокрема, для XML вони включають:

  • Підприємство може мати багато XML в стандартному форматі, який існує
  • Може знадобитися, щоб дані показали або сприйняли як XML, тому використання іншого формату, таких як реляційних сил подвійного моделювання даних
  • XML дуже добре підходить до розріджених даних, які глибоко захованих даних та змішаного змісту (наприклад текст із вбудованими мітками)
  • XML є легким для читання людьми, тоді як реляційні таблиці вимагають знань для доступу
  • Метадані часто доступні як XML
  • Семантичні вебдані доступні як RDF / XML

Стів О'Коннелл дає одну причину для використання XML у базах даних: все частіше використовується XML для транспортування даних, що означає, що «дані витягуються з баз даних і поміщаються в XML-документи і навпаки». Це може виявитися більш ефективним (з точки зору вартості конвертації) та швидше для збереження даних у форматі XML. У додатках на основі змісту можливість чистої бази даних XML також мінімізує потребу вилучення або введення метаданих для підтримки пошуку та навігації.

Бази даних з підтримкою XML

[ред. | ред. код]

Бази даних з підтримкою XML за звичай пропонують одну чи більше з подальших підходів для збереження XML в межах традиційних реляційних структур:

  1. XML зберігається в CLOB (Великі символьні об'єкти)
  2. XML «подрібнена» в серії таблиць на основі схеми
  3. XML зберігається у власному XML -типі, який визначений стандартом ISO 9075-14

RDBMS, які підтримують тип ISO XML:

  1. IBM DB2 (pureXML)
  2. Microsoft SQL Server
  3. Oracle Database
  4. PostgreSQL

Як правило, база даних з підтримкою XML найкраще підходить там, де більшість даних не XML. Для наборів даних, де більшість даних є XML, чиста база даних XML найкраще підходить.

Приклад запиту типу XML у IBM DB2 SQL

[ред. | ред. код]
select
   id, vol, xmlquery('$j/name', passing journal as "j") as name
from
   journals
where 
   xmlexists('$j[licence="CreativeCommons"]', passing journal as "j")

Чисті бази даних XML

[ред. | ред. код]

Чисті бази даних XML спеціально розроблені для роботи з даними XML. Оскільки керування XML як великими рядками буде неефективним, а завдяки ієрархічній природі XML, спеціальні оптимізовані структури даних використовуються для зберігання та запитів. Це, як правило, підвищує продуктивність як з точки зору запитів і оновлень, доступних лише для читання. XML-вузли та документи є основною одиницею (логічного) сховища, так само як реляційна база даних містить поля та рядки.

Стандарт для запиту даних XML за рекомендацією W3C — це XQuery; останньою версією є XQuery 3.1. XQuery включає XPath як підмову, і сам XML є дієвою підсистемою XQuery. На відміну від баз даних з підтримкою XML, чиста база даних забезпечує повну підтримку XQuery. Окрім XPath, деякі бази даних XML підтримують XSLT як метод перетворення документів або результатів запитів, отриманих з бази даних.

Особливості мови

[ред. | ред. код]
Ім'я Ліцензія Рідна мова XQuery 3.1 XQuery 3.0 XQuery 1.0 XQuery Update XQueryFull Text EXPath Extensions EXQuery Extensions XSLT 2.0 XForms 1.1 XProc 1.0
BaseX BSD Java Так Так Так Так Так Так Так Так Так Ні
eXist GNU LGPL Java Частково Частково Так Пропрієтарне програмне забезпечення Пропрієтарне програмне забезпечення Так Так Так Так Так
MarkLogic Server Комерційна C++ Ні Частково Так Пропрієтарне програмне забезпечення Пропрієтарне програмне забезпечення Ні Ні Так Так Ні
OpenText xDB Комерційна Java Частково Частково Так Так Так Ні Ні Ні Ні Ні
Oracle Berkeley DB XML Комерційна
Qizx Комерційна Java Ні Ні Так Так Так Ні Ні Так Ні Ні
Sedna Apache License 2.0

Підтримувані API

[ред. | ред. код]
Ім'я XQJ XML: DB RESTful RESTXQ WebDAV
BaseX Так Так Так Так Так
eXist Так Так Так Так Так
MarkLogic Server Так Ні Так Так Так
Qizx Ні Ні Так Ні Ні
Sedna Так Так Ні Ні Ні

Дані-орієнтовані набори даних XML

[ред. | ред. код]

Для даних, орієнтованих на набори даних XML, унікальний та чіткий метод пошуку ключових слів, а саме XDMA для баз даних XML сплановано та розроблено на основі подвійної індексації та взаємного підсумовування.