Хранение данных в формате XML

Ввод, вывод и обмен данными в формате XML открывают очень эффективный путь интеграции существующих реляционных баз данных с расширяющимся ми­ром XML. Формат XML используется во внешнем по отношению к базам дан­ных мире для представления структурированных данных, но данные в самой базе данных сохраняют табличную структуру, состоящую из строк и столбцов. Очевидно, что следующим шагом в развитии этой интеграции является хранение ХМL-документов прямо в базе данных.

Если СУБД на базе SQL поддерживает большие объекты, это означает, что она уже содержит элементарные средства поддержки, хранения и извлечения XML-Документов. Некоторые коммерческие базы данных хранят и извлекают большие текстовые документы при помощи двух ти­пов данных: больших символьных объектов (CLOB) и больших двоичных объектов (BLOB). Во многих коммерческих продуктах поддерживаются значения типа BLOB или CLOB объемом до 4 Гбайт, что достаточно для хранения подавляющего боль­шинства XML-докумен­тов.

Для хранения XML-документа в базе данных с использованием этой технологии нужно определить таблицу с одним столбцом типа BLOB или CLOB для хранения текста документа и несколькими вспомогательными столбцами (стандартных типов данных) для хранения атрибутов, идентифицирующих данный документ. Например, если в таблице должны храниться документы с заказами товаров, в дополнение к столбцу типа CLOB для хранения XML-документов можно определить вспомогательные столбцы для хранения номера заказчика, даты заказа и номера заказа, используя тип данных INTEGER, VARCHAR или DATE. Тогда можно будет выполнять поиск документов в таблице заказов по номеру документа, дате заказа или номеру клиента, и для извлечения или хранения XML-документа использовать технологии обработки CLOB-данных.

Преимуществом этого подхода являетсято, что его относительно просто реализовать. Он поддерживает четкое разделение между операциями SQL (такими, как обработка запросов) и операциями XML. Недостатком же его является очень низкий уровень интеграции между XML и СУБД. В простейшей реализации XML-документ совершенно прозрачен для СУБД. Последняя ничего не знает о его содержимом. Его нельзя искать по значению одного из его атрибутов или элементов, если только этот атрибут или элемент не извлечен из документа хранится в отдельном столбце таблицы. Впрочем, если вы заранее можете предположить, какие типы поиска наиболее вероятны, это ограничение становится не таким уж значительным.

Используемые для обмена данными между приложениями XML-документы, хра­нящиеся в файлах или базах данных в столбцах типа CLOB, всегда имеют текстовый формат. Этот формат обеспечивает максимальную переносимость содержимого, но компьютерным программам работать с ним крайне неудобно. Синтаксический анализатор XML представляет собой элемент компьютерного программного обеспечения, выполняющий преобразование XML-документа из текстового формата в более подходящее для программной обработки внутреннее представление. Любая СУБД на основе SQL, поддерживающая XML, должна включать синтаксический анализатор для обработки XML-документов. Если СУБД под­держивает тип данных CLOB, для усиления интеграции с XML она позволяет синтаксическому анализатору XML работать прямо с содержимым CLOB-столбцов.

Существует два популярных типа XML-анализаторов, поддерживающих два стиля обработки XML-документов.

– DocumentObjectmodel(DOM).DOM-анализаторы преобразуют XML-документ в иерархическую древовидную структуру. После этого при помощи API DOM программа может перемещаться по дереву вверх и вниз, следуя иерархии документа. Интерфейс API DOM облегчает программистам доступ к структуре документа и его элементам.

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

Любой синтаксический анализатор XML проверит правильность оформления документа и, кроме того, сверит XML-документ со схемой.

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

Анализатор типа SAX позволяет обрабатывать большие до­кументы небольшими фрагментами. Но поскольку документ не находится в па­мяти целиком, программе приходится выполнять по нему несколько проходов, если она обрабатывает его фрагменты не по порядку.








Дата добавления: 2015-02-03; просмотров: 1166;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.