Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML. Токмаков Г.П. - 177 стр.

UptoLike

Составители: 

177
Если СУБД на базе
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-документов.
Document Object model (DOM). DOM-анализаторы преобразуют XML-документ в
иерархическую древовидную структуру. После этого при помощи
API DOM про-