Модели и виды хранения XML-данных

Автор: Гришин М.Ю.

Журнал: Теория и практика современной науки @modern-j

Рубрика: Медицина и здоровье

Статья в выпуске: 6 (36), 2018 года.

Бесплатный доступ

Статья посвящена рассмотрению моделей хранения XML-данных. Статья включает в себя представление типов данных XML. Так же в ней рассматривается то, каким образом XML-файл может быть перемещен в БД. Способы анализа XML.

Данные, типы данных, анализ

Короткий адрес: https://sciup.org/140273654

IDR: 140273654

Текст научной статьи Модели и виды хранения XML-данных

Extensible Markup Language (XML) - это простой, очень гибкий текстовый Формат, производный от SGML (ISO 8879). Первоначально предназначенный язык для решения задач крупномасштабной электронной публикации, XML также играет все более важную роль в обмене самыми разнообразными данными в Интернете и в других местах.

Сначала он получил признание в Web в качестве технологии совместного использования документов. И затем он развился в среду передачи и хранения данных.

Отличие HTML от XML заключается в том, что XML не определяет ни семантику, ни набор тегов. На самом деле XML действительно является метаязыком для описания языков разметки. Другими словами, XML предоставляет средство для определения тегов и структурных связей между ними. Поскольку не существует предопределенного набора тегов, не может быть никакой предопределенной семантики. Вся семантика XML-документа будет определяться либо приложениями, которые их обрабатывают, либо таблицами стилей.

XML определяется как профиль приложения SGML. SGML является стандартным обобщенным языком разметки, определенным ISO 8879. SGML является стандартным, независимым от поставщика способом обслуживания хранилищ структурированной документации в течение более десяти лет, но он не подходит для обслуживания документов через Интернет (по ряду технических причин, выходящих за рамки этой статьи). Определение XML как профиля приложения SGML означает, что любая полностью соответствующая SGML система сможет читать XML-документы. Однако для использования и понимания XML-документов не требуется система, способная понять всю общность SGML. XML является сильно ограниченной формой SGML.

Ранее документы в Web представляли собой тексты и изображения, сейчас многие эти документы являются на основе XML. И в данное время формат XML хорошо подходит для доставки данных из БД например на Front-End web-приложения. Популярность XML со временем не уменьшается.

Однако существует много проблем с хранением и манипулированием XML в БД, но эти проблемы можно решить. Это связано с тем, что представление данных в XML и в базах данных разное. В первом случае это иерархическая древовидная структура, во втором же это реляционная структура, другими словами представление данных в виде таблиц. По традиции разработчики используют 2 вида интегрирования этих «миров»:

  • использование анализатора (parser), с помощью которого можно извлечь данные и записать их непосредственно в БД.

  • сохранение XML-файла полностью в БД, чтобы сохранить древовидную структуру файла

Перемещение XML в базу данных не получится сделать каким-то эталонным образом. Для каждой такой модели хранения данных существуют свои достоинства и недостатки. Важно понимать то, какая модель хранения XML максимально соответствует потребностям конкретного приложения, нежели чем просто приспособить приложение к какой-то модели хранения данных XML.

Существует модель хранения, такая как расщепление файла (другими словами преобразование данных xml-файла в реляционные данные, с последующей манипуляцией через SQL) , а так же CLOB – что расшифровывается на русский язык «Модель хранения большого символьного объекта»

При хранении данных из xml-файла в реляционном представлении означает возможность изменения отдельных элементов без выборки файла целиком.

Существует XMLType Views, который внутри себя имеет движок реляционной базы данных и оптимизирован для выборок связанных с операциями SQL над XML данным. Еще можно использовать операции SQL с типами данных, чтобы не интерпретировать их как строку, а как именно определенный тип, который нам нужен, например Дата.

Однако, этому способу присущи некоторые недостатки. Определение XMLType views, в которых уровень вложенности структур достаточно велик (более чем 10 уровней), может повлечь за собой низкую производительность. Изменение и вставка представлений нуждается в применении триггеров (например, такого как instead-of-triggers), и эти операции становятся трудными в сопровождении, так как нужно будет манипулировать с этими триггерами, что является не самым простым действием.

Главным достоинством применения CLOB является сохранения структуры документа и сохранность его побайтово. Однако, с XMLType View вы теряете гарантию сохранения упорядоченности документа, так как многие элементы (такие как комментарии и инструкции по обработке) исчезнут при размещении данных документа в таблицы.

Все это не будет иметь особого значения, если размещать в БД данные для приложения, которые работают с отдельными кусками данных, и которым не важна структура самого документа. Если нужна такая ситуация, что при выборке из БД, вставке данных и вам нужно оставить метаданные нетронутыми, при этом хотите получить все преимущества DML, то наилучшее решение это использование XMLType Views:

Нужно начать со схемы БД и сгенерировать XSD. В данной ситуации, нет нужды в упорядоченности документа. Любая требуемая упорядоченность секций может быть явно определена каким-нибудь способом. Либо через ROWIDs либо через другие специфичные для приложения способы. В состав СУБД входят инструменты (функции) для создания XSD автоматически из XMLType Views.

Этот метод особенно полезен, если работа происходит с несколькими XML-схемами и с разными именами тэгов, и структурой и вы не имеете желания их определять в схеме вашей базы данных (например, когда от унаследованных приложений баз данных требуется поддержка XML и когда нужно сохранить их функциональность). В типичном случае, вы можете перенацелить одно и то же хранилище данных для использования рядом заказчиков, которые вам задают форматы и шаблоны. Вам нужно только определить некоторый XML view для каждого заказчика и при выборке или вставке данных, одновременно используя view, они будут иметь соответствующий формат, который подходит заказчику.

Список литературы Модели и виды хранения XML-данных

  • Когаловский М.Р. Глоссарий по стандартам платформы XML. Версия 7 (17-12-2006). // Электронные библиотеки. - М.: ИРИО, 2006.
  • Хабибуллин, И. Самоучитель XML / И. Хабибуллин. - М.: БХВ-Петербург, 2003. - 336 c.
Статья научная