Вернуться к статье

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


Рис. 2. Оптимизированный вариант представления структуры
Представленное на рис.1 преобразование семантически полное, «реляционно-безупречное» и очень неудобное для использования. Попробуем подойти несколько иначе — уберем таблицу 3, а вместо служебного реквизита "Позиция" сделаем в таблице 1 реквизит "ПолныйТекст"

Вернуться к статье


Рис. 3. Очередное «улучшение» структуры
Дальнейшее «улучшение» структуры базы данных, представленной на рис. 1 и 2 можно сделать, если ликвидировать таблицу 2, а вместо нее в таблице 1 создать реквизит «Автор» и записать в его единственное значение сразу обоих авторов

Вернуться к статье


Рис. 4. Объектно-ориентированная структура описания документа
В отличие от реляционной модели, ссылка находится не в дочернем, а родительском классе, идентификатор же, напротив, в классе дочернем, а не в родительском.

Вернуться к статье


Рис. 5. Описание класса «XML-узел»

В отличие от рассмотренной на рис. 4 объектной модели, ссылка на дочерние узлы представляет собой упорядоченный список, который может содержать идентификаторы узлов типа — 1, 2, 3. Свойство «Атрибуты» представляет собой неупорядоченный список атрибутов и содержит идентификаторы узлов типа 2

ИдентификаторТип узлаИмя узлаЗначение узлаДети (ссылка)Атрибуты (ссылка)
19(#document)-2-
1Документ-7,9,11,133,5
32Номер514-
43(#text)51--
51ТипПредложение6-
63(#text)Предложение--
71Содержание-8-
83(#text)Мы, Ваши сотрудники--
91Автор-10-
103(#text)Иванов Иван--
111Автор-12-
123(#text)Петрова Мария--
131Содержание-14-
143(#text)предлагаем Вам...--

Вернуться к статье