Сайт Информационных Технологий

5.1.3 Логическое представление данных в qWORDе

Рассмотрим, как из физического представления данных конструируются варианты логического представления данных. Для этого используем нижеследующее образное представление (рис. 5.2).

Рис. 5.2. Логическое представление данных в qW

На рис. 5.2 каждый словарь атрибута представлен в виде вертикального набора кружочков. Сверху надписаны названия атрибутов. Количество кружочков в каждом вертикальном ряду разное, так как разное количество слов в словарях атрибутов. Кружочки-слова отсортированы сверху вниз в алфавитно-цифровом порядке, так что фамилии авторов, скажем, меняются от "Абажурова" до "Яшмакова", а года жизни "1890" до "1910". Далее мы одной кривой линией соединяем (или связываем) несколько кружочков. Порядок соединения не важен, поэтому все линии идут слева направо. Одна линия может соединять любое количество кружочков, в любых вертикальных рядах, в том числе несколько в одном вертикальном ряду. Каждую линию следует рассматривать как одну запись в таблице. Линия заканчивается кодом записи. В простейшем случае код записи представляет собой порождаемое системой число натурального ряда чисел. Теперь можно перейти к конструированию логических структур данных.

Сначала рассмотрим чисто реляционный вариант. На рис. 5.2 представлен фрагмент ненормализованной таблицы-отношения с атрибутами (Раздел творчества, ФИО автора, Произведение, Год написания произведения, Место рождения автора). Ключевые атрибуты выделены. Существует реляционная функциональная зависимость между парами атрибутов (ФИО автора)(1)(Место рождения автора) и (Произведение)(1)(Год написания произведения).

Нормализация предполагает ликвидацию функциональной зависимости атрибута от части составного ключа, поэтому после приведения ко второй нормальной форме получим три таблицы вида:

(Раздел творчества),

(Раздел творчества, ФИО автора, Место рождения автора),

(Раздел творчества, ФИО автора, Произведение, Год написания произведения).

Эти таблицы представлены на рис. 5.3. Все эти три таблицы логического представления могут быть физически оформлены как в виде 1, так и в виде 3 таблиц (на рис. 5.3 в виде 3 таблиц).

Рис. 5.3. Представление логической структуры данных в виде трех таблиц

Остановимся на некоторых особенностях qWORD'а, обусловленных его физической структурой данных и нашедших свое отражение при построении этой простой традиционной реляционной структуры.

  1. Ненормализованная таблица (рис. 5.2) уже не содержала избыточности данных и ее нормализация (рис. 5.3) никаких "улучшений" уже создать не могла. Избыточность данных изначально отсутствовала по той простой причине, что каждое значение атрибута встречается в словаре только один раз.
  2. В реляционной модели часто используется операция сортировки, при которой множество записей рассматривается в алфавитно-цифровом порядке значений одного из атрибутов, участвующего в каждой записи этого множества. Как видно из рис. 5.2, рис. 5.3, на физическом уровне структуры данных сортировка существует изначально для каждого из атрибутов.
  3. Операция соединения двух таблиц по общим значениям одного из атрибутов, принадлежащего обеим таблицам с получением временного отношения также носит элементарный характер. Все возможные соединения по всем общим атрибутам на физическом уровне существуют изначально.

Теперь рассмотрим реляционно-иерархический вариант той же самой таблицы (см. рис. 5.2 и рис. 5.4). Иерархия нормализованных таблиц проявлялась уже в структуре составных ключей этих таблиц и в рамках физической структуры данных qWORD'а может быть организована путем структурирования кода записи. Структура кода записи представляет собой строку, состоящую из нескольких чисел разделенных разделителем (или без разделителей). Каждое число связано с определенным уровнем иерархии, последовательность их в строке отвечает последовательности уровней иерархий.

Рис. 5.4. Использование иерархического кода записи при построении логической структуры данных

Каждое число состоит из одинакового произвольного количества цифр и представляет собой код записи для таблицы логического представления, являющейся соответствующим уровнем иерархии. Все числа справа от этого числа представляют собой нули, все числа слева являются кодами записей в таблицах логического представления вышележащих уровней иерархии и указывают на ветвь, связывающую запись, отвечающую этому числу с корнем иерархического дерева. Все уровни иерархии находятся в одной таблице физического представления. На рис. 5.4 коды записей иерархии представлены тремя однозначными числами, разделенными точкой.

Таким образом, это логическое представление является одновременно и реляционным, и иерархическим. Оба логических представления существуют независимо друг от друга и операции, связанные с одним из этих двух представлений, не разрушают логической структуры другого представления.

Наряду с реляционным и реляционно-иерархическим логическим представлением данных физическая структура данных поддерживает и другие представления.

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


Site of Information Technologies
Designed by  inftech@webservis.ru.