Робота з xml за допомогою продуктів informix, КомпьютерПресс

В останні роки все більшу кількість постачальників програмного забезпечення заявляють про підтримку в своїх продуктах технологій XML. Не залишився осторонь і такий постачальник СУБД, як компанія Informix Software.

Як саме об'єктно-реляційний сервер може підтримувати XML - питання далеко не однозначний навіть для фахівців. Завдання даної статті - розповісти про те, як в принципі об'єктно-реляційна СУБД (ОРСУБД) може підтримувати XML-технології і як ці підходи реалізовані в СУБД Informix Dynamic Server 9.

Що таке XML і навіщо він потрібен?

По суті XML забезпечує текстове представлення структурованих даних. Погано чи добре, але, для того щоб структуру даних можна було уявити у вигляді XML-документа, вона повинна бути визначена. Нижче наведено приклад заголовка статті, структура якого описана за допомогою XML:

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

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

Так формується широкий спектр завдань, що вимагають застосування уніфікованих засобів перетворення даних в різних форматах.

Інтеграція XML в СУБД

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

Зберігання XML у вигляді BLOB-полів

З точки зору реалізації найпростішим способом є перший. Він дуже часто застосовується при використанні РСУБД для зберігання XML-даних. Всі можливості обробки зводяться до запису документа в поле типу BLOB або CLOB і до його вилучення за запитом користувача. При цьому вся осмислена обробка лягає на додаток.

Використання об'єктно-реляційних технологій дозволило розширити інтелектуальні можливості СУБД з обробки документів при цьому методі зберігання. Зокрема, в ОРСУБД Informix Dynamic Server 9 (IDS 9) з'явилася така структура зберігання даних, як Smart BLOB. Відмінною особливістю Smart BLOB є те, що сервер може виконувати більш тонкі операції з таким об'єктом. Зокрема, сервер надає можливість вибирати, змінювати і блокувати не весь Smart BLOB цілком, а тільки зазначені фрагменти поля даного типу.

Крім того, IDS 9 надає відкритий API для визначення вторинних методів доступу, тобто індексів. Завдяки такій відкритості розроблені три модуля повнотекстового пошуку компаніями Excalibur, Verity і RedLab для IDS 9. Зокрема, модуль Verity дозволяє здійснювати контекстний пошук по XML-документах. За допомогою Verity Text Search DataBlade можна здійснювати індексований пошук за певними розділами документа. Якщо повернутися до наведеного вище прикладу з заголовками статей, то можна запросити всі статті, в заголовках яких зустрічається вказане слово або словосполучення.

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

Подання документа XML в наборі пов'язаних таблиць

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

У свою чергу, даний метод формування та розбору XML-документа може бути реалізований двома способами:

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

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

  • відносну простоту реалізації методу;
  • рознесення обчислювального навантаження між СУБД та програмою.

Природно, що поряд з достоїнствами є й недоліки. У цьому випадку кожен додаток, що потребує XML-документі, повинна сама дбати про його формуванні та розборі XML. Для полегшення цього процесу Informix пропонує інструментальне засіб Informix Object Translator. Це візуальний засіб розробки дозволяє зв'язати об'єкти, в найзагальнішому розумінні, з реляційної структурою бази даних. При цьому автоматично генерується код, що забезпечує збереження та вилучення об'єктів з бази даних. Object Translator має вбудовані засоби підтримки XML як одного з таких типів об'єктів. Генерація коду забезпечується для мов Visual Basic і Java.

Спеціальне розширення JAXP інтерфейсу доступу до даних JDBC представила компанія Sun. Це розширення призначене для роботи з XML-документами з Java-додатків. Компанія Informix реалізувала підтримку даного розширення в черговий версії свого JDBC-драйвера 2.20.

Другий спосіб формування XML-документів всередині сервера баз даних є більш складним, але зате набагато більш елегантним. Справа в тому, що варіант поставки IDS 9, званий Informix Internet Foundation, включає компонент J / Foundation. Цей компонент дозволяє виконувати Java-процедури всередині сервера. Таким чином, можна скористатися безкоштовно поширюваними XML-парсер, написаними на Java, для формування і розбору XML-документів безпосередньо всередині сервера Informix.

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

Ієрархічна структура зберігання

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

У Informix розроблений прототип ієрархічного методу зберігання у вигляді Node Blade. В рамках цього модуля реалізований тип даних Node - вузол дерева. З його допомогою структура наведеного вище прикладу XML-документа може бути представлена ​​в наступному вигляді:

При цьому цілком природним чином можна організувати перехід між різними рівнями ієрархії. Для їх здійснення можуть бути задіяні звичайні B +-індекс. Так, для переходу від тега на один рівень вище необхідно урізати ідентифікатор вихідного вузла 1.1.1 до 1.1. Це цілком очевидна, легко виражається і, що більш важливо, швидко виконується в термінах SQL операція.

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

Одним з можливих виходів з даної ситуації може бути використання для зберігання елементів XML-документа типу даних lvarchar. Все що визначаються типи даних сервера Informix повинні мати можливість приведення і до цього типу даних. Під час вилучення елемента за назвою тега можна визначати тип і приводити lvarchar до потрібного типу даних.

Так виглядає напрямок розробок Informix щодо забезпечення зберігання XML-документів у вигляді природної для них ієрархічної структури даних.

висновок

Таким чином, Informix підтримує всі основні методи роботи з XML-документами. При цьому реалізується дана підтримка не тільки на рівні об'єктно-реляційного сервера баз даних IDS 9, а й на рівні засобів зв'язності і засобів розробки. Це дозволяє вибрати оптимальний для вирішення конкретної прикладної задачі технологічне рішення.

Зовсім недавно компанія Cougar представила нову серію блоків живлення для традиційних ПК - VTX, орієнтовану на користувачів з обмеженим бюджетом. У цьому огляді буде розглянута модель Cougar VTX600, яка завдяки своїм характеристикам буде однією з найбільш затребуваних в цій лінійці блоків живлення

На щорічному заході Capsaicin SIGGRAPH в Лос-Анджелесі компанія AMD зміцнила свої позиції на ринку ПК класу high-end з новими процесорами Ryzen Threadripper і GPU «Vega»

Для простого і зручного побудови мереж рядовими користувачами компанія ZyXEL випустила чергову версію свого Інтернет-центру для підключення до мереж 3G / 4G через USB-модем з точкою доступу Wi-Fi - ZyXEL Keenetic 4G III, який ми і розглянемо в цьому огляді

До своєї і так великій родині роутерів і маршрутизаторів фірма ASUS недавно додала дві вельми цікаві моделі: флагманську 4G-AC55U і більш просту 4G-N12. У даній статті буде розглянута флагманська модель ASUS 4G-AC55U

Молода, але амбіційна компанія KREZ на початку цього року випустила нову, оригінальну модель ноутбука KREZ Ninja (модель TM1102B32) під керуванням Windows 10. Оскільки цей комп'ютер має поворотний екран, він може служити універсальним рішенням - його можна з успіхом використовувати і для роботи, і для навчання, і для ігор

Якщо ви часто друкуєте фотографії та вже втомилися міняти картриджі в своєму принтері, зверніть увагу на МФУ Epson L850. Великий ресурс витратних матеріалів, чудова якість відбитків, найширший набір функціональних можливостей - ось лише деякі з переваг даної моделі

Схожі статті