Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.)

Жанр: Информационные системы и технологии

Просмотров: 1491


8.1. xml как средство представления структурированных данных

 

8.1.1.  П РЕДСТАВЛЕНИЕ  СТРУКТУРИРОВА Н Н ЫХ  ДАННЫХ  В  XML

 

Хотя XML разрабатывался, прежде всего, для представления и обработки до- кументов, он может быть полезен для представления структурированных дан- ных, которые обычно представляются в базах данных. На Ошибка! Источник ссылки не найден. показан типичный XML-документ из сферы обработки дан- ных  очень простой заказ товаров. По содержанию он сильно отличается от документа, показанного на                        Рис. 7.1. , но содержит те же основные компоненты. Вместо <book> элементом верхнего уровня является <purchaseOrd‐ er>. Он содержит, подобно элементу <book>, вложенные элементы  <customer‐ Num>, <orderNum>, <orderDate> и <orderItem>. Элемент <orderItem> тоже содер- жит вложенные элементы. На Ошибка! Источник ссылки не найден. с зака- зом связано несколько условий приобретения товара, представленных атрибу- тами элемента <terms>. Атрибут ship определяет, как будет доставлен заказ, а атрибут bill  условия его кредитования.

 

 

Рис. 8.1.          XML-документ, содержащий расширенный заказ товаров

 

Очевидно, что этот документ-заказ тесно связан с таблицей ZAKAZY из на- шей базы данных. Вы можете сравнить его со структурой таблицы ZAKAZY, при- веденной в Приложении (см. Рисунок П.1 и Таблицу ZAKAZY). Элементы нижнего уровня за исключением элемента <terms> соответствуют столбцам таблицы ZAKAZY. Элемент верхнего уровня представляет строку таблицы.

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

В отличие от таблицы ZAKAZY приведенный XML-документ содержит еще один,

средний уровень иерархии, группирующий информацию о заказанном товаре  код производителя (mfr), код товара  (product), количество товара (qty) и сумму заказа (amount). В реальном заказе, содержащем несколько позиций, эта группа элементов данных может повторяться несколько раз. XML-документ легко расши- рить для поддержки такой структуры данных, добавив еще один или несколько элементов <orderItem>.

Базу данных нельзя так легко расширить. Для поддержки многострочных за-

казов таблицу ZAKAZY, скорее всего, придется разбить на две: в одной будет хра-

ниться заголовок заказа (номер заказа (orderNum), дата заказа (orderDate), код кли- ента (customerNum) и т. п.), а в другой  соответствующие строки заказа: код про- изводителя (mfr), код товара  (product), количество товара (qty) и сумму заказа (amount).

 

8.1.2.  С РАВ Н Е НИЕ  XML И  SQL

 

Сходства XML и SQL. Поскольку язык XML произошел от SGML, он обладает рядом полезных характеристик, сближающих его с языком SQL.

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

кумента, а не то, как он должен обрабатываться. Этот же подход используется и в SQL, ориентированном на определение запрашиваемых данных, а не на то, как они должны извлекаться.

– Строительные блоки. XML-документ состоит из небольшого количества ба-

зовых строительных блоков, в число которых входят такие фундаментальные компоненты, как элементы и атрибуты. В SQL этим понятиям соответствуют таб-

лицы и столбцы.

– Типы документов. В XML каждый документ воспринимается не сам по себе,

а в качестве представителя определенного типа, соответствующего документам реального мира, например заказ, ответ на деловое письмо или резюме кандидата на

должность. И здесь тоже очевидна параллель с SQL, поскольку таблицы также представляют типы сущностей реального мира.

Различия XML и SQL. Однако несмотря на очевидные параллели между

XML и SQL, между ними есть и значительные различия.

– Ориентация на документы или на данные. Базовые концепции XML сфор-

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

– Иерархическая  или  табличная  структура.  Естественные структуры  XML

имеют иерархическую природу и отражают иерархию элементов большинства рас-

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

– Объекты или операции. Основной задачей языка XML является представление объектов. Если выделить осмысленный фрагмент текста XML и спросить, что он представляет, выяснится, что представляет он какой-нибудь объект: абзац, заказ товаров, адрес клиента и т. п. У языка SQL более широкие задачи, но в первую оче- редь он ориентирован на обработку объектов. Если выделить осмысленный фраг- мент текста SQL и спросить, что он представляет, выяснится, что он представляет операцию над объектом: создание объекта, удаление объекта, поиск одного и/или более объектов, либо обновление содержимого объекта. Эти отличия делают на- значение и использование языков XML и SQL взаимодополняющими.