База даних XML
База даних XML — програмна система збереження даних, яка дозволяє вказати дані та іноді зберегти їх у форматі XML. Ці дані можна запитувати, трансформувати, експортувати та повертати до викликуваної системи. Бази даних XML є атрибутом баз даних, орієнтованих на документи, які в свою чергу належать до категорії NoSQL баз даних.
Обґрунтування для XML в базах даних
Існує ряд причин для прямого визначення даних в XML або інших форматах документів, таких як JSON. Зокрема, для XML вони включають:
- Підприємство може мати багато XML в стандартному форматі, який існує
- Може знадобитися, щоб дані показали або сприйняли як XML, тому використання іншого формату, таких як реляційних сил подвійного моделювання даних
- XML дуже добре підходить до розріджених даних, які глибоко захованих даних та змішаного змісту (наприклад текст із вбудованими мітками)
- XML є легким для читання людьми, тоді як реляційні таблиці вимагають знань для доступу
- Метадані часто доступні як XML
- Семантичні веб-дані доступні як RDF / XML
Стів О'Коннелл дає одну причину для використання XML у базах даних: все частіше використовується XML для транспортування даних, що означає, що «дані витягуються з баз даних і поміщаються в XML-документи і навпаки». Це може виявитися більш ефективним (з точки зору вартості конвертації) та швидше для збереження даних у форматі XML. У додатках на основі змісту можливість чистої бази даних XML також мінімізує потребу вилучення або введення метаданих для підтримки пошуку та навігації.
Бази даних з підтримкою XML
Бази даних з підтримкою XML за звичай пропонують одну чи більше з подальших підходів для збереження XML в межах традиційних реляційних структур:
- XML зберігається в CLOB (Великі символьні об'єкти)
- XML «подрібнена» в серії таблиць на основі схеми
- XML зберігається у власному XML -типі, який визначений стандартом ISO 9075-14
RDBMS, які підтримують тип ISO XML:
- IBM DB2 (pureXML)
- Microsoft SQL Server
- Oracle Database
- 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 сплановано та розроблено на основі подвійної індексації та взаємного підсумовування.