Модели представления данных


Современные СУБД основываются на использовании моделей данных, позволяющих описывать объекты предметных областей и взаимосвязи между ними.

Существуют три основные модели данных, на которых основываются СУБД: реляционная, сетевая и иерархическая; возможны также комбинации указанных моделей. Наиболее простая модель — это представление данных в виде определенной иерархии. Универсальной моделью является представление данных в виде отношений, или реляций. Сетевая модель занимает промежуточное положение между иерархической и реляционной моделями данных. В ней, с одной стороны, применяется достаточно универсальное представление данных, имеющее широкое применение, а с другой — учитывается возможность прямого доступа к данным.

Рассмотрим особенности построения различных моделей БД.

Иерархическая модель основана на понятии деревьев, состоящих из узлов и ветвей, задающих отношения (связи) между данными. Узлы дерева ставятся в соответствие совокупности данных, характеризующих некоторый объект. Узлы и ветви дерева образуют иерархическую древовидную структуру, состоящую из подуровней. Она всегда начинается с корневых узлов, которые в этой модели находятся на первом уровне. На последующих уровнях могут добавляться зависимые элементы, которые имеют только одну точку входа (рис. 4.5).

 

 

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

Иерархическая структура удовлетворяет следующим условиям: иерархия начинается с корневого узла;

• на уровнях с большим номером (нижележащих) находятся

зависимые узлы;

• узел предшествующего уровня является начальным для новых зависимых узлов;

• каждый узел, находящийся на нижележащем уровне, соединен с одним и только одним узлом предшествующего уровня, за исключением корневого узла;

• корневой узел может быть связан с одним или несколькими зависимыми узлами;

• доступ к каждому узлу происходит только через корневой узел по единственному пути;

• существует произвольное количество узлов каждого уровня.

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

• невозможно получить данные об элементе В без осуществления доступа к данным об элементе А (см. рис. 4.5);

• если два узла содержат одинаковые элементы, эти элементы в БД повторяются (например, С1 = D2, т.е. имеет место избыточность данных, что особенно нежелательно на физическом уровне (избыточность на логическом уровне, напротив, желательна, поскольку упрощает работу с данными);

• иерархическая упорядоченность усложняет операции удаления и включения данных;

• если теряются данные об узле В, удаляются данные об узлах В1 и В2, т. е. удаление объекта влечет за собой удаление подчиненных объектов (поэтому выполнение операции удаления требует особой осторожности);

• легко получить ответ на вопрос «Какие элементы входят в

узел 5?», но трудно получить ответ на вопрос «Какие узлы содержат одинаковые элементы?», т.е. возникают трудности с составлением выборок информации по заданному признаку.

Достоинства иерархической модели следующие:

• наличие хорошо зарекомендовавших себя систем управления БД, основанных на ее применении;

• простота понимания и использования (пользователи систем обработки данных хорошо знакомы с иерархической структурой);

• обеспечение определенного уровня независимости данных;

• простота оценки операционных характеристик благодаря заранее заданным взаимосвязям.

Сетевая модель может быть описана в виде графа (рис. 4.6).

 

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

Другим важным свойством сетевой модели является то, что возможно установление отношений между любыми узлами сети, однако следует иметь в виду, что объем справочника, в котором хранится информация об отношениях (связях) данного узла, с увеличением количества связей возрастает. Таким образом, излишнее количество связей может отрицательно сказаться на размерах БД.

С точки зрения количества полезной информации сетевая модель может быть наиболее компактной, поскольку возможность установления любых связей между узлами дает возможность избежать в БД узлов с одинаковой информацией (отсутствие избыточности данных).

Вход в сетевую модель в принципе возможен через любой из узловых элементов.

Главными достоинствами сетевой модели данных являются:

• наличие успешных реализаций

систем управления БД, обеспечивающих эту сетевую модель (как в иерархической модели);

• простота реализации часто встречающихся в реальном мире взаимосвязей «многие ко многим».

 

Основной недостаток сетевой модели состоит в ее сложности. Прикладной программист должен детально знать логическую структуру БД, поскольку ему необходимо осуществлять навигацию среди различных по сути записей данных. Иначе говоря, программист должен представлять «свое» текущее положение в БД при «продвижении» по ней.

Недостатком является также возможная потеря независимости данных при реорганизации БД. Кроме того, в сетевой модели данных представление, используемое прикладной программой, сложнее, чем в иерархической модели, поэтому и составление прикладных программ может оказаться сложнее.

Сетевая структура может быть получена из иерархической структуры путем добавления понятия ссылки, которое может быть определено как логический указатель. Так можно связать две древовидные структуры без установления между ними иерархических отношений.

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

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

Реляционный подход к построению моделей данных основывается на использовании для их описания произвольных отношений (англ. relation, отсюда название). Любое подобное отношение может быть представлено двумерной таблицей.


 

В табл. 4.1 представлено отношение с именем А над элементарными данными с именами а, Ь, с, ..., JC. Каждая строка таблицы представляет набор значений этих данных, находящихся между собой в данном отношении. Строки таблицы обычно называют кортежами, т. е. упорядоченными множествами, а столбцы — доменами (полями). Каждый столбец в таблице является атрибутом. Значения в столбце определяют из множества значений, которые принимает атрибут. Столбцы таблицы — это элементы данных, а строки — записи.

Если количество столбцов равно п, то говорят, что отношение А является «-местным отношением.

Считая кортежи отдельными записями, легко представить такое отношение (таблицу) в виде простейшего последовательного файла.

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


 

В качестве примера на рис. 4.7 приведена нормализация иерархической модели данных. Путем «размножения» узлов иерархической модели она представляется в виде таблицы, которой достаточно лишь присвоить имя корневого узла соответствующей иерархической модели и пронумеровать домены. В случае сетевых структур тем же приемом «размножения» узлов они приводятся сначала к иерархической, а затем и к реляционной форме (рис. 4.8).


 

 

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

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