Ім'я файлу: Лекція 4 XML _rev2.docx
Розширення: docx
Розмір: 46кб.
Дата: 29.11.2021
скачати
Пов'язані файли:
ЛАБОРАТОРНА РОБОТА.docx
Звіт Лабораторна робота 4.docx

Лекція 4. XML-моделі нереляційних баз даних


4.1 Бази даних на основі XML

На сучасному етапі розвитку Інтернету ще не створено спеціалізованих систем керування базами даних (СКБД). Це обумовлено тим, що мережа Інтернет ще не висунула таких вимог до систем баз даних, які б виходили за межі можливостей наявних СКБД. Відтак усі інтернет-додатки, які передбачають зберігання й обробку великих обсягів складноструктурованих даних, використовують СКБД загального призначення.

Завжди була гострою проблема зберігання і передавання Інтернетом не лише документів довільної форми, але й даних довільної структури. У зв'язку з цим інтенсивно розроблялися стандарти передавання даних і мови, що їх підтримують. У результаті виникла мова XML (Extensible Markup Language), що може використовуватись як мова опису даних, що передаються Інтернетом, а також як мова зображення баз даних в Інтернеті.

Є два способи інтеграції інтернет-технологій з технологіями СКБД: публіка­ція баз даних в Інтернеті та робота інтернет-додатків з базами даних наявних СКБД. Публікація баз даних здійснюється за допомогою спеціальних засобів наяв­них СКБД, що вибирають підмножини даних з баз і відображують їх у форматах, поширених в Інтернеті (як правило, це формати HTML (Hypertext Markup Language) і XML). Інший спосіб інтеграції баз даних з мережею Інтернет — розроблення інтернет-додатків, що працюють з наявними СКБД.
Риси баз даних в технології XML

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

Якщо під XML мати на увазі не лише XML-документи, але й технології, за допомогою яких здійснюється їхня обробка, відповідь буде «так, але». «Так», тому що технологія XML має багато характерних рис систем баз даних, насамперед це стосується багаторівневого структурованого відтворення XML-даних. Але в середовищі XML принцип багаторівневості втілюється недостатньо жорстко. У XML-документі співіснують аспекти фізичного й логічного зображення даних. І це не дає змоги реалізувати найважливішу ідею технологій баз даних - принцип неза­лежності даних.

Як і в системах баз даних, у стандартах платформи XML йдеться про модель даних для зображення інформаційних ресурсів.

У середовищі XML є аналог схеми бази даних, роль якого відіграє опис DTD (Document Type Definition — Означення типу документа) або опис XML-документів відповідно до стандарту XML Schema. Можна вести мову також про аналог концептуальної схеми бази даних, роль якої відіграє RDF-специфікація. Нарешті, як і в системах баз даних, на платформі XML розробляються мови запитів (XQuery, XPath, XQL, XML-QL, QUILT тощо).

У контексті баз даних на основі XML важливо звернути увагу на розроблений консорціумом W3C (Консо́рціум Всесвітньої павути́ни, англ. World Wide Web Consortium) стандарт DOM ( Document Object Model ) об'єктної моделі для XML-документів, який визначає функції інтерфейсу прикладного програмування для систем, що підтримують інформаційні ресурси XML.

Проте сумніви в тому, що технологія XML доведена до рівня бази даних залишаються, оскільки багато функцій, властивих класичним базам даних, цій технології не притаманні:

-       ефективне збереження даних;

-       індексацію;

-       централізоване керування;

-       гарантування безпеки інформації;

-       обробку транзакцій;

-       підтримання цілісності даних;

-       спільне використання інформації;

-       тригери;

-       запити до багатьох документів.

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


Дані, документи і бази даних

Існують два основні типи документів XML: документи, орієнтовані на зображення даних, і документи, орієнтовані на зображення документів. Для роботи з документами цих типів призначені засоби обробки даних і засоби обробки документів відповідно.

Документи, орієнтовані на зображення даних, характеризуються чіткою й формалізованою структурою, частим повторенням однакових елементів даних, порядок вказування котрих, як правило, несуттєвий. Прикладом можуть бути XML-документи, що містять дані про замовлення на продаж товарів, графіки польотів, меню ресторанів, протоколи наукових досліджень тощо. Документи, орієнтовані на дані, зазвичай створюються для комп'ютерної обробки; можливості XML вико­ристовуються тут мінімально - він відіграє роль транспортного засобу для даних.

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

Веб-сайт може бути побудований на базі простого, орієнтованого на дані документа XML, що містить інформацію, відповідну кожній сторінці, яка видобувається з бази даних, а також таблиць стилів XSL, призначених для форматування тексту. Будь-який веб-сайт, що на ньому динамічно створюються документи HTML шляхом заповнення шаблону даними з бази, може бути замінений орієнтованими на дані XML-документами й однією або кількома таблицями стилів XSL.

Документи, які орієнтовані на зображення документів, не мають жорсткої структури, не вирізняються глибиною деталізації даних (мінімальний незалежний елемент даних розміщується на рівні змішаного інформаційного повідомлення або всього документа). Крім того, вони характеризуються великим обсягом змішаного інформаційного наповнення. Порядок, у якому згадуються однорідні елементи, майже завжди важливий. До цього класу документів належать книги, повідомлення електронної пошти, рекламні оголошення і майже всі документи у форматі XHTML. Подібні документи призначені, як правило, для читання людьми, а не для комп'ютерної обробки.

На практиці не завжди можна чітко розмежувати різні типи документів. Наприклад, документи, орієнтовані на зображення даних (такі як рахунок-фактура), можуть містити неструктуровані дані з незначною деталізацією (наприклад, опис товарів). Документи, орієнтовані на зображення документів (наприклад, посібник користувача), можуть містити дані з чіткою структурою (назва посібника, дані про організацію, в якій написано посібник, його авторів, ключові слова, УДК, дату видання). Охарактеризувавши документи як орієнтовані на дані або на документи, легше зрозуміти, з чим доведеться мати справу — з даними або документами, відтак значно полегшиться вирішення питання вибору системи для їхнього збереження й обробки.
Бази даних з дворівневим доступом на основі XML

Бази даних на основі XML можуть надавати ієрархічний дворівневий доступ до даних. Складовими ієрархії є і структура каталогів файлової системи, і структура елементів документа XML.

Дворівневий доступ — це найпростіший механізм зберігання даних. Переваги БД з дворівневим доступом полягають у тому, що вони невеликі, зручні у створенні та супроводі, а також забезпечують доступ до даних за допомогою широкого набору інструментальних засобів. Недоліком такого підходу є те, що зовсім не підтримуються або підтримуються недостатньо основні функції БД, а саме: захист даних та маніпулювання ними, організація пошуку, відновлення, керування доступом, цілісність тощо. Дворівневим доступом варто користуватися в тому випадку, коли Ви маєте справу з простими слабко структурованими документами і застосування специфічних функцій СКБД не є суттєвим.

Під час розробки БД з дворівневим доступом слід чітко визначити, які компоненти документів будуть зображені у вигляді структури каталогів операційної системи, а які - у вигляді структури документа XML. Граничним є варіант, коли вся інформація зображена у вигляді структури каталогів, а файли містять лише окремі найпростіші фрагменти документів. Йдеться про БД з дворівневим доступом з високим ступенем деталізації даних, оскільки дані в ній зображені у вигляді численних дрібних фрагментів.

Іншою крайністю є створення єдиного документа XML, що містить усю базу даних. Це так звана база даних з низьким ступенем деталізації даних. З точки зору операційної системи дані в ній не структуровані. Проте до таких даних можна легко звертатися за допомогою текстових редакторів, інструментальних засобів XML та будь-якої мови програмування.

Найбільш зважений підхід полягає у виборі проміжного варіанта, що назива­ється базою даних з середнім ступенем деталізації даних.

Якщо база даних на основі XML поділяється на фрагменти з метою її деталізації, то важливим є питання пошуку так званих точок поділу, які можна застосовувати для фрагментації документів не лише під час використання файлових систем, але й у разі збереження документів в об'єктно-орієнтованих і реляційних базах даних.
4.2. Бази даних із вбудованою підтримкою XML

Бази даних із вбудованою підтримкою XML (native XML databases) розробляються спеціально для збереження і маніпулювання документами XML. Для таких баз даних існує поняття логічної моделі документа XML, в межах якої документи означуються й зберігаються, а також здійснюється їхній пошук і маніпулювання ними. Модель документа має містити елементи, атрибути, а також описувати впорядкованість даних у документі. БД із вбудованою підтримкою XML не висувають вимог до моделі фізичного зображення документів, тому можуть реалізовуватись як незалежно, так і на основі наявних реляційних, об'єктно-орієнтованих, ієрархічних або інших баз даних. Головне, щоб зовнішній інтерфейс був орієнтований саме на документи XML, а не на модель, яка підтримується СКБД. Системи баз даних із вбудованою підтримкою XML, подібно до інших систем баз даних, забезпечують виконання усіх властивих СКБД функцій, таких як захист даних, підтримка їхньої цілісності, резервного копіювання та відновлення, мов запитів, транзакцій, тригерів, доступу багатьох користувачів тощо.

Використання БД із вбудованою підтримкою XML є найефективнішим у разі збереження й обробки документів XML, орієнтованих на зображення документів. Саме такі БД підтримують упорядкованість усередині документа, коментарі, розділи CDATA, що звичайно не реалізується в СКБД з іншими моделями даних, розширеними для підтримки XML. БД із вбудованою підтримкою XML дають змогу використовувати мови запитів на основі XML й формулювати запити типу «Вивести документи, де третій абзац після початку кожного розділу містить текст, виділений жирним шрифтом». Очевидно, що подібні запити важко формулювати в SQL.

БД із вбудованою підтримкою XML можуть зберігати слабко структуровані дані, даючи при цьому змогу підвищувати швидкість пошуку та обробляти документи, що не мають DTD або інших схем XML (документи без схем). Тобто такі бази даних дозволяють зберігати й обробляти будь-які документи XML, що не містять опису відображень. Під час використання реляційних або об'єктно-орієн­тованих баз даних для збереження документів XML необхідно попередньо описати відображення схеми XML на схему бази даних. Відсутність або необов'язковість попереднього настроювання на схему XML у БД із вбудованою підтримкою XML виявляється досить корисною у застосуваннях типу пошукових веб-систем. Пошуковий механізм цих додатків обробляє документи XML, що можуть мати найрізноманітніші схеми або навіть зовсім не супроводжуватися схемами.
Різновиди баз даних із вбудованою підтримкою XML

Є два різновиди БД із вбудованою підтримкою XML:

-       орієнтовані на зберігання тексту (текстові XML-БД);

-       орієнтовані на модель (модельні XML-БД).
Текстові бази даних із вбудованою підтримкою XML

У текстових XML-БД документи XML зберігаються у вигляді текстів. Сховищем таких текстів можуть бути файли операційної системи, поля таблиці реляційної бази даних, що дають змогу зберігати рядкові об'єкти великого розміру, або спеціальні репозиторії текстової інформації.

Характерною ознакою всіх орієнтованих на зберігання тексту БД із вбудова­ною підтримкою XML є наявність індексів, що дають можливість легко й швидко виконувати пошук у XML-документах. У БД на основі XML цього типу пошук здійснюється одноразовим переглядом індексу. Коли індекс переглянуто, необхідний фрагмент документа можна вибирати одноразовим зчитуванням, якщо цей фрагмент зберігається на диску у вигляді безперервної послідовності байтів. З іншого боку, збирання документа з його складових частин, яке здійснюється в реляційних системах баз даних і в деяких орієнтованих на модель БД із вбудова­ною підтримкою XML, вимагає багаторазового перегляду індексу і багаторазових звернень до диска.

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

Модельні бази даних із вбудованою підтримкою XML

Іншою категорією є БД, орієнтовані на модельне зображення документів XML. У таких БД документ XML зображується у внутрішній об'єктній моделі й саме в такому вигляді зберігається. Спосіб збереження моделі документів XML залежить від специфіки реалізації XML-БД.

У деяких XML-БД моделі документів зберігаються в реляційних чи об'єктно-орієнтованих базах даних. Наприклад, збереження моделі DOM у реляційній базі даних може привести до побудови таких таблиць, як Elements, Attributes, PCDATA, Entities та EntityReferences. В інших орієнтованих на модель базах даних із вбудованою підтримкою XML використовуються фізичні структури, спеціально розроблені для оптимального збереження і маніпулювання моделлю документа XML. Модельні XML-БД, побудовані на основі баз даних іншого типу, мають гірші характеристики продуктивності, особливо щодо пошуку даних, аніж ті, які використовують власні, спеціально розроблені під вибрану модель, формати збе­реження даних.

Модельні XML-БД, у яких для збереження даних використовуються спеці­альні фізичні структури, характеризуються продуктивністю пошуку даних, по­рівнянною з продуктивністю текстових XML-БД під час пошуку за ієрархічною структурою. Це пояснюється тим, що більшість модельних XML-БД використо­вують покажчики для навігації структурою документа. Показники продуктивно­сті текстових і модельних XML-БД залежать від форми подання результатів. Текстові XML-БД набагато швидше виводять документи в текстовому вигляді, а модельні скоріше виводять документи, наприклад, у вигляді DOM-дерев (за умови, що їхня модель документа легко відображується в DOM).

Як і текстові XML-БД, модельні XML-БД працюють менш ефективно під час пошуку й виведення даних у форматах, що відрізняються від того, який вибраний для збереження документів.
Огляд функцій і можливостей БД із вбудованою підтримкою XML
Колекції документів

У багатьох БД із вбудованою підтримкою XML дані зберігаються у вигляді колекцій. Колекції відіграють ту саму роль, що й таблиці в реляційній базі даних або каталоги у файловій системі. Припустимо, що БД із вбудованою підтримкою XML використовується для зберігання документів, які містять відомості про ви­кладачів вузу. У цьому випадку можна визначити колекцію викладачів для того, щоб запити, які стосуються викладачів, обробляли лише документи цієї колекції.

Інший приклад: необхідно зберігати документацію щодо всіх програмних продуктів, які використовуються на підприємстві. У цьому випадку можна визначи­ти ієрархію колекцій. На першому рівні можна побудувати колекцію із загальною інформацією про програмні продукти, а на другому — підколекції, кожна з яких містить документацію, що стосується програмних продуктів певного типу.
Мови запитів

БД із вбудованою підтримкою XML мають підтримувати принаймні одну спеціалізовану мову запитів. Найбільш популярними мовами є XPath (з можливим розширенням для побудови запитів за багатьма документами) і XQuery. Деякі БД із вбудованою підтримкою XML оснащені власними спеціалізованими мовами запитів. Напевно, в майбутньому всі БД із вбудованою підтримкою XML будуть підтримувати мову XQuery.
Оновлення й видалення документів

У БД із вбудованою підтримкою XML застосовується багато різних стратегій оновлення і видалення документів:

-       просте видалення або заміна наявних документів;

-       модифікація документів з використанням певної моделі DOM;

-       використання спеціалізованих мов з метою модифікації документів або їхніх фрагментів.

Багато з цих методів маніпулювання документами є специфічними для конкретних XML-БД. Проте існують кілька стандартних мов маніпулювання документами XML. Наприклад, мова XUpdate, в якій для ідентифікації вершин використовуються вирази мови XPath, призначена для оновлення XML-документів. Крім того, членами робочої групи W3C XQuery було запропоновано кілька розширень мови XQuery засобами оновлення і видалення документів XML та їхніх фрагментів. Незабаром мова XQuery має бути офіційно розширена можливостями з оновлення документів.
Транзакції, блокування й одночасний доступ

Практично всі БД із вбудованою підтримкою XML дозволяють використовувати транзакції з можливістю відкочування. Однак блокування здійснюється на рівні всього документа, а не на рівні окремих вершин у його структурі. У зв'язку з цим багатокористувацький режим підтримується на досить низькому рівні. Чи справді це впливає на ефективність роботи в даному режимі, залежить від конкретного додатку і від того, що розуміти під поняттям «документ». Розглянемо кілька прикладів:

-       документом є розділ технічної документації. Під час написання документації обов'язки між її розробниками були розподілені так, що кожний працював над своїм розділом. Блокування на рівні документа (тобто розділу) навряд чи призведе до виникнення проблем, пов'язаних з одночасним доступом, оскільки малоймовірно, що один і той самий розділ оновлюватиметься кількома авторами водночас;

-       документ містить інформацію про резервування авіаквитків на один рейсовий політ. Великою є ймовірність того, що за наявності багатьох авіакас попереднього резервування і продажу квитків блокування на рівні документа призведе до виникнення проблеми одночасного доступу;

-       документ містить інформацію, що використовується в послідовному технологічному процесі, наприклад під час укладання фінансової угоди. На кожному кроці цього процесу здійснюється зчитування даних із документа і додавання до нього нових даних. Наприклад, один із кроків може полягати в перевірці платоспроможності клієнта і введенні у документ даних про нове кредитування. Інший крок може полягати в перевірці заборгованості клієнта за іншими контрактами і введенні або зміні значення сумарної заборгованості. Якщо блокування здійснюється на рівні вершин структури документа, то багато операцій, подібних до згаданих вище, можуть виконуватися паралельно. Якщо блокування здійснюється на рівні документа, то операції можуть виконуватися лише послідовно. Це може призвести до неприпустимих затримок у роботі застосувань, що інтенсивно використовуються.

Блокування на рівні вершини XML-структури зазвичай вимагає одночасного блокування «батька» цієї вершини, а також «батька» цього «батька» і так до само­го кореня. Щоб пояснити, чому потрібне багаторівневе блокування, розглянемо такий приклад. Нехай транзакція виконує оновлення листкової вершини. Якщо не було заблоковано її батьківську вершину, то інша транзакція може в цей час видалити дану батьківську вершину, що, у свою чергу, призведе до видалення ли­сткової вершини, яка оновлюється першою транзакцією. Таким чином, кожного разу під час оновлення вершини слід заблокувати її саму, всі її дочірні вершини та всіх її предків аж до кореневої вершини. Отже, буде заблоковано певний шлях від кореня до листка, а вершини, розташовані на інших шляхах в ієрархічній структурі документа XML, залишаться доступними для інших транзакцій.

Інтерфейс прикладного програмування

Майже всі БД із вбудованою підтримкою XML надають інтерфейс прикладного програмування. Це, як правило, ODBC-подібний інтерфейс, що містить методи для з'єднання з базою даних, аналізу метаданих, виконання запитів та перегляду результату. Результат виконання запиту може повертатися у вигляді XML-тексту, дерева DOM або в інших форматах. Якщо запити можуть повертати багато документів, то надаються методи їхнього ітеративного перебирання. Багато БД із вбудованою підтримкою XML надають можливості виконувати запити і повертати результати з використанням протоколу HTTP.
Ідентичність логічного документа його оригіналу, що зберігається в базі даних

Характерною ознакою БД із вбудованою підтримкою XML є ідентичність документа, що вибирається з БД, його оригіналу. Це дуже важлива властивість для додатків, що оперують поняттям документа, і для яких розділи CDATA, викори­стання сутностей, коментарі й команди обробки становлять невід'ємну частину документа.

Ідентичність логічних і збережених документів є менш важливою для додатків, що орієнтуються на обробку не самих документів, а наявних у них даних. Для таких додатків у документі XML важливими є: атрибути, текст та ієрархічна структура. У цьому випадку під час передавання даних між документами XML і базами даних важливо зберегти ідентичність не всього документа, а лише зазначених вище складових. В окремих випадках для орієнтованих на дані програми важливо зберігати порядок дочірніх елементів і даних PCDATA у межах батьківського елементу. У загальному випадку додатки, що орієнтовані на обробку даних, не підтримують впорядкованість елементів документа, команди обробки, коментарі й фізичні структури зберігання даних (посилання на сутно­сті, розділи CDATA тощо), тому їх не можна використовувати для збереження й обробки документів.

Усі БД із вбудованою підтримкою XML можуть підтримувати ідентичність елементів документів, порядку їхнього розташування, атрибутів і даних PCDATA. Більш повне забезпечення ідентичності збережених і логічних документів залежить від реалізації конкретних XML-БД. Як правило, текстові XML-БД підтримують повну ідентичність документів, а модельні XML-БД — ідентичність на рівні моделі документа.
Індексування

У БД із вбудованою підтримкою XML індекси використовуються для прискорення пошуку. Існують три типи індексів:

-       індекси значень дають можливість індексувати значення атрибутів або тексту. Вони дозволяють здійснювати швидкий пошук за запитами типу «Знайти всі елементи або атрибути, що містять значення бази даних ХМL»;

-       індекси структури дають можливість індексувати розташування елементів і атрибутів та прискорювати пошук за запитами на зразок «Знайти всі елементи <заголовок>». Разом індекси значень і структури дають змогу відповідати на запити типу «Знайти всі елементи <заголовок>, що містять значення бази даних XML»;

-       повнотекстові індекси дають можливість індексувати всі слова в тексті та значеннях атрибутів і використовуються при реалізації запитів типу «Знайти документи, що містять усі слова з фрази бази даних ХМL», або спільно зі структурними індексами для обробки запитів типу «Знайти документи, що містять усі слова з фрази бази даних XML в елементах <заголовок>».

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

Під час збереження документів XML у базі даних принциповим є спосіб обробки зовнішніх об'єктів. Можна вибрати зовнішній об'єкт і зберегти його разом з основним документом, або ж залишити в документі, що зберігається, тільки поси­лання на зовнішній об'єкт. У кожному окремому випадку кращим може виявити­ся як перший, так і другий спосіб.

Розглянемо випадок, коли документ містить посилання на CGI-програму, що надає інформацію про погоду на поточний день. Якщо документ, що зберігається, використовується як веб-сторінка з інформацією про сьогоднішню погоду, то бу­ло б помилковим, зберігаючи документ, замінити посилання на зовнішній об'єкт його значенням, оскільки в цьому випадку збережена сторінка вже не міститиме реальних даних наступного дня. З іншого боку, якщо документ є частиною колек­ції хронологічних даних про погоду і якщо він має містити дані про погоду на день його збереження, то буде помилковим зберігати документ разом із посилан­ням на зовнішній об'єкт, оскільки в цьому випадку документ буде містити про­гноз погоди не на той день, коли він був збережений, а на той день, коли до нього звертаються.

БД із вбудованою підтримкою XML не можуть самостійно обирати спосіб збереження зовнішніх об'єктів, вони лише надають можливість робити такий вибір у кожному конкретному випадку.
Нормалізація у БД із вбудованою підтримкою XML

Головною метою нормалізації є зображення даних у такому вигляді, щоб кожен факт зберігався в базі лише один раз. Нормалізація надає низку переваг, зокрема вона дозволяє економити дисковий простір та підтримувати цілісність даних. Нормалізація є одним з ключових аспектів технології проектування реляційних баз даних і «гарячою» темою в обговореннях щодо запам'ятовування даних у БД із вбудованою підтримкою XML.

Для більшості документів XML, орієнтованих на зображення документів, пи­тання нормалізації не постає так гостро. Наприклад, розглянемо колекцію доку­ментів, що описують товари, виготовлені певною компанією. У кожному документі з такої колекції є лише невелика частина даних, спільних для всіх документів: на­зва, адреса і телефон компанії, її товарний знак, інформація про права власності. Обсяг цих даних є незначним порівняно із загальним обсягом документів, тому можна вважати, що в базі даних одні й ті самі факти повторно майже не відобра­жуються.

Як і в реляційних базах даних, у БД із вбудованою підтримкою XML немає ні­чого такого, що змушувало б створювати лише строго нормалізовані бази даних. Тобто можна створювати такі ж слабко нормалізовані XML-БД, як і реляційні бази. Тому завдання правильного проектування БД із вбудованою підтримкою XML покладено на плечі проектувальників: перш ніж прийняти певні проектні рішення, вони мають ретельно вивчити структуру документів і способи їхнього викори­стання. БД із вбудованою підтримкою XML мають одну перевагу в порівнянні з реляційними БД: вони не підтримують схеми бази даних, тому можуть зберігати схожі документи, що мають різні схеми.

Нормалізація даних у БД із вбудованою підтримкою XML багато в чому по­дібна до їхньої нормалізації в реляційних БД, тобто слід проектувати документи так, щоб вони не містили даних, які повторюються. Одна з відмінностей БД із вбудованою підтримкою XML від реляційних полягає в тому, що XML допускає багатозначність, а реляційна модель — ні. Це дає змогу скористатися такими при­йомами нормалізації даних у БД із вбудованою підтримкою XML, які не дозволе­ні в реляційних БД.

Наприклад, розглянемо замовлення на продаж товарів. Воно містить заголо­вок, що складається з номера замовлення й дати, а також багато рядків, у кожно­му з яких вказано найменування товару, кількість замовлених одиниць, вартість одиниці й сумарну вартість товару. У реляційній БД заголовок і рядки з відомо­стями про товар мають зберігатися в різних таблицях, у XML-БД всі ці дані без надлишковості зберігаються в одному документі, оскільки ієрархічна структура документа XML дозволяє одному батьківському елементу мати багато дочірніх.

На жаль, структура реальних документів не завжди є строго ієрархічною. Наприклад, якщо документи замовлень на товари мають містити інформацію про покупця (його ім'я, адресу доставки та телефон), то є два рішення. Можна дублю­вати інформацію про покупця в кожному з документів, який його стосується. Це призводить до виникнення надлишковості даних і пов'язаних з нею проблем. Можна зберігати інформацію про покупця окремо, використовувати посилання XLink на відповідних покупців у документах на замовлення товарів і виконувати з'єднання двох документів під час вибирання даних. Такий підхід вимагає підтримки в XML-БД XML-механізму XLink або наявності у мові запитів механізму з'єднання документів.

Теорія й практика розробки БД із вбудованою підтримкою XML не дає однозначних відповідей на питання щодо необхідності нормалізації. Навіть реальні реляційні БД часто не «доводяться» до високої нормальної форми задля досяг­нення необхідної продуктивності, тому наявність недостатньо нормалізованих XML-БД не є настільки суттєвим недоліком, як це може видатися на перший по­гляд. Проте проектувальнику завжди слід приймати виважене рішення щодо про­ектування XML-БД.

Цілісність посилань у БД із вбудованою підтримкою XML

З поняттям нормалізації тісно пов'язане поняття цілісності посилань, що стосується коректності посилань на взаємозалежні дані та є важливою складовою підтримання цілісного стану бази даних. Цілісність посилань означає, що не можна посилатися на відсутні дані. Для користувачів бази даних не дуже приємною буде ситуація, коли замовлення на продаж товару міститиме номер покупця, який від­сутній у списку покупців. У цьому випадку відділ доставки не знатиме, за якою адресою слід доставити замовлений товар, а бухгалтерія не знатиме, кому надіс­лати рахунок.

У реляційній БД цілісність посилань гарантує, що значення зовнішнього клю­ча відношення завжди посилається на існуюче значення первинного ключа цього або іншого відношення. У XML-БД цілісність посилань означає, що покажчики в документах XML вказують на існуючі документи або їхні фрагменти. Покажчики в документах XML створюються за допомогою різних механізмів: атрибутів ID/IDREF, полів key/keyref (як це визначається в схемах XML), XLink, специфічних для певних мов елементів та атрибутів посилань, наприклад атрибу­та ref елементу у схемах XML, а також специфічних для тих чи інших XML-БД механізмів посилань. Використання специфічних для мов елементів і атрибутів посилань є розповсюдженою практикою, а специфічні для XML-БД механізми посилань використовуються рідко.

Цілісність посилань у БД із вбудованою підтримкою XML буває двох типів:

-       цілісність посилань внутрішніх покажчиків (покажчиків на елементи того ж документа);

-       цілісність посилань зовнішніх покажчиків (покажчиків на елементи інших документів).

Цілісність посилань внутрішніх покажчиків, що використовують нестандартні механізми опису, XML-БД не підтримується, оскільки вони не оснащені засоба­ми ідентифікації таких покажчиків. Цілісність посилань внутрішніх покажчиків, що використовують стандартні механізми опису, наприклад, атрибути ID/IDREF або поля key/keyref, підтримується частково. Це пояснюється тим, що більшість БД із вбудованою підтримкою XML здійснюють перевірку цілісності посилань лише під час додавання або оновлення документа. Якщо оновлюється весь доку­мент, то можна легко перевірити коректність внутрішніх посилань. Однак якщо оновлення здійснюється на рівні вершин структури документа, тобто відбуваєть­ся вставка, заміна або видалення окремих вершин, то слід додатково забезпечити підтримку цілісності посилань внутрішніх покажчиків. Це роблять лише кілька існуючих систем баз даних на основі XML.

Підтримувати цілісність посилань зовнішніх покажчиків значно складніше. Якщо зовнішній покажчик посилається на ресурс, збережений у цій же базі даних, то проблема забезпечення цілісності вирішується. Однак якщо є посилання на ре­сурс за межами бази даних, наприклад, документ містить посилання XLink, що по­силається на документ із зовнішнього веб-сайту, то система не має жодної можливості перевірити, чи насправді цей документ там є. В такому випадку підтримувати цілісність посилання за допомогою одних лише механізмів XML-БД неможливо.

Очевидно, в майбутньому більшість БД із вбудованою підтримкою XML забезпечуватимуть цілісність посилань внутрішніх покажчиків, що використовують стандартні механізми опису. Можна також очікувати, що БД із вбудованою підтримкою XML будуть підтримувати цілісність зовнішніх покажчиків, які посилаються на документи тієї ж бази даних. Сьогодні відповідальність за підтрим­ку цілісності покажчиків, як внутрішніх, так і зовнішніх, у більшості випадків перекладено на додатки, які використовують XML-БД.
4.3. XML-БД на основі баз даних іншого типу

Реалізація XML-БД на основі існуючих традиційних систем баз даних (реляційних або об'єктно-орієнтованих) надає низку переваг, оскільки в таких системах реалізовані всі функції, необхідні для роботи з базами даних. XML-БД на основі інших баз даних можна створювати для підтримки обох типів документів XML -орієнтованих на дані та орієнтованих на зображення документів. Однак такий підхід є більш вдалим для реалізації XML-БД, орієнтованих на дані. Тому далі ми звертатимемо увагу переважно на документи цього типу.
Відображення документів у базах даних

Для того щоб передавати дані з документів XML у бази даних, необхідно вміти відображувати елементи схем документів (DTD, XML Schema, RELAX NG тощо) в елементи схем баз даних.

Відображення між документами і базами даних зазвичай виконується для елементів, атрибутів і тексту. У цьому разі опускаються інформація, що стосується фізичної структури (наприклад, означення сутностей, розділи CDATA та інформація щодо кодування), і деякі дані про логічну структуру (наприклад, команди обробки, коментарі, порядок обробки елементів у межах їхнього батьківського елементу).

Це обумовлено насамперед тим, що для бази даних, яка лежить в основі XML-документа, такі відомості не є суттєвими. З точки зору системи баз даних не має значення, зберігаються номери замовлень у документі до чи після дати замовлення, як не має значення й те, чи зберігається ім'я покупця в розділі CDATA як зовнішня сутність, чи безпосередньо в елементі PCDATA. Важливо лише, щоб відповідні дані були передані з документа XML до бази даних. Одним з наслідків такого відображення є те, що збережений документ не ідентичний оригіналу, тобто зі збереженого в базі даних документа неможливо відновити в точності вихідний XML-документ.

Для відображення схеми документа XML на схему бази даних використову­ються, як правило, два методи:

-       табличне відображення;

-       об'єктно-реляційне відображення.
Табличне відображення

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

У випадку табличного відображення є можливість зазначати, запам'ятовуються значення з таблиць як дочірні елементи чи як атрибути, а також можна вказувати, які назви використовувати для кожного з елементів чи атрибутів. Можливості такого відображення можуть розширюватися за допомогою метаданих таблиць та/або стовпців. Поняття «таблиця», що використовується в цьому ві­дображенні, не має чіткої інтерпретації. Тобто під час передачі даних із бази в документ XML таблицею може вважатися будь-яка множина даних, отримана в результаті виконання запиту, а під час передавання XML-даних у базу таблиця може зображуватися реальною таблицею бази даних або віртуальною таблицею, що оновлюється.

Табличне відображення є корисним, наприклад, під час передавання даних між двома реляційними базами. Очевидним недоліком такого відображення є те, що воно не може використовуватися для документів XML, структура яких не від­повідає таблиці.
Об'єктно-реляційне відображення

Об'єктно-реляційне відображення використовується реляційними та об'єктно-орієнтованими базами даних, що підтримують XML. У цьому випадку дані XML-документа мають відображувати деревоподібну структуру об'єктів. У такій моделі елементи складних типів, що містять інші елементи, а також змішані повідомлення, відображуються в класи. Елементи простих типів, що містять лише атрибути і дані PCDATA, відображуються у вигляді скалярних атрибутів. Потім модель відображується на реляційну базу даних традиційними методами об'єктно-реляційного відображення або за допомогою об'єктних віртуальних таблиць SQL 3. Тобто класи відображуються в таблиці, скалярні атрибути — у стовпці, атрибути, значеннями яких є об'єкти — в пари «первинний ключ/зовнішній ключ».

Назва цього відображення — «об'єктно-реляційне» — не зовсім коректна, оскільки дерево об'єктів може бути відображене також в об'єктно-орієнтовану або ієрархічну базу даних. Відображення одержало таку назву в зв'язку з тим, що для більшості програмних продуктів, які підтримують цей тип відображення, кінце­вими структурами є саме реляційні бази даних.

Важливо врахувати, що об'єктна модель, яка використовується за цього відображення, не є об'єктною моделлю документа (DOM). DOM створює модель документа як такого і є однаковим для всіх документів XML, що відповідають заданій схемі.

Чи насправді об'єкти створюються в процесі відображення, залежить від вибраного підходу. В одних випадках створюються класи й у процесі відображення дані документів XML спочатку перетворюються на об'єкти цих класів, а потім — на структури бази даних. В інших випадках дані відображуються безпосередньо в ба­зу даних, а об'єктна модель використовується лише як засіб, що полегшує розу­міння процесу конвертування. Зв'язування документів XML з об'єктами називається зв'язуванням даних XML.


Контрольні запитання

1.    Назвіть характерні риси систем баз даних, які працюють з технологією XML.

2.    Які функції СКБД не підтримує технологія XML?

3.    Які існують основні типи документів XML? У чому полягає відмінність між ними?

4.    Назвіть три основні різновиди баз даних на основі XML.

5.    Якою є архітектура баз даних з дворівневим доступом на основі XML? Які переваги та недоліки таких БД?

6.    Назвіть відмінні риси баз даних із вбудованою підтримкою XML.

7.    Які є різновиди БД із вбудованою підтримкою XML?

8.    В який спосіб забезпечується нормалізація та цілісність посилань даних у БД із вбудованою підтримкою XML?

9.    Які є способи відображення схеми документа XML на схему бази даних?

скачати

© Усі права захищені
написати до нас