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

Концептуальная модель данных позволяет перейти к формированию логических моделей. Существует три вида логических моделей данных: реляционные, иерархические (или древовидные), сетевые (или сети).

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

фамилия, имя, отчество оценки в сессию
Иванов Иван Иванович Информатика – 5, КСЕ – 4, Программирование – 5
Федоров Федор Федорович Информатика – 3, КСЕ – 3, Программирование – 4
Петров Петр Петрович Информатика – 5, КСЕ – 4, Программирование – 5

 

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

 

Для построенной ранее концептуальной модели можно сформировать три реляционные структуры, поскольку выделены три сущности, причем для таблицы, соответствующей сущности сотрудник, требуется составной первичный ключ, включающий атрибуты ФИО, название кафедры (первичные ключи выделены полужирно):


 

 

сотрудник кафедра должность

ФИО ученая степень научное звание контактные данные название кафедры название должности   название шифр в вузе   название образование
     

 

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

 

Иерархическая модель(или дерево) – это конечное множество Т элементов, такое, что выполняются следующие условия:

1) имеется один специально выделенный элемент, называемый корнем дерева;

2) остальные элементы (кроме корня) содержатся в m³0 попарно не пересекающихся множествах Т1, ....Тm, каждое из которых в свою очередь является деревом. Деревья Т1, ....Тm являются поддеревьями данного дерева.

Пример дерева показан на рисунке:

сотрудник
сотрудник
кафедра
сотрудник

 


Дадим некоторые определения, которые понадобятся нам в дальнейшем:

1) уровень иерархии – показывает упорядоченность элементов дерева по старшинству. Корень дерева – нулевой уровень, затем уровни нумеруются по возрастанию номеров;

2) родительские элементы– элементы (вершины дерева), расположенные на предыдущем уровне иерархии (с непосредственно меньшим номером);

3) порожденные элементы– элементы (вершины дерева), расположенные на следующем уровне иерархии (с непосредственно большим номером);

4) подобные элементы – элементы (вершины дерева), расположенные на одном уровне иерархии и/или имеющие одного «родителя». Такие элементы, как правило, имеют одинаковую структуру.

Построим иерархическую модель для концептуальной модели из рассмотренного ранее примера. Для этого воспользуется видом связи «один-ко-многим», которая показана на ER-диаграмме. Чтобы продемонстрировать эту связь на схеме, сущность, выступающую в роли «ко-многим», изобразим в виде повторяющихся прямоугольников:

 

сотрудник
сотрудник
кафедра
сотрудник
должность
сотрудник
сотрудник
сотрудник

 


Видно, что имеют место два дерева, одно из которых моделирует отношения сотрудников с кафедрами, а второе – сотрудников и занимаемые ими должности.

С учетом атрибутов сущностей данная схема выглядит следующим образом (первичные ключи выделены подчеркиванием):

 

сотрудник
сотрудник
кафедра
сотрудник
должность
название шифр в вузе
название образование
ФИО ученая научное контактные степень звание данные
сотрудник
сотрудник
сотрудник
ФИО ученая научное контактные степень звание данные

 

 


Сетевая модель(сеть) – это два множества Т и R, между которыми задано отображение Г: Т ® R, где Т – множество элементов сети, R – множество бинарных отношений между ними, Г – отображение, показывающее, какие элементы какими отношениями связаны. Нестрого сетевые модели можно определить как несколько иерархических моделей, соединенных вершинами максимального уровня иерархии.

 

Построим сетевую модель для нашего примера. Уже иллюстрации к дереву показывают, что модель информационно избыточна – в обоих деревьях находится описание одних и тех же сотрудников. Этот недостаток устраняется в сетевых моделях:

 

кафедра
должность
название шифр в вузе
название образование
сотрудник
сотрудник
сотрудник
ФИО ученая научное контактные степень звание данные