ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 10871
Скачиваний: 43
2.3 Иерархическая модель данных
31
Такую иерархическую структуру принято также называть древовидной. Наи-
высший узел (в нашем примере СТУДЕНТЫ) называется корнем. Зависимые узлы
располагаются на более низких уровнях дерева. Узел, каждому экземпляру которо-
го можно поставить в соответствие несколько экземпляров другого узла, называ-
ется старшим элементом или родителем. Следующий за ним элемент в структуре
называется подчиненным элементом или потомком, который в свою очередь мо-
жет иметь несколько типов подчиненных элементов и быть старшим по отноше-
нию к ним. Тип связи в иерархической древовидной структуре определяется как
1:М — один-ко-многим.
Если на структуру наложено ограничение, согласно которому каждому эк-
земпляру подчиненного узла обязательно должен соответствовать экземпляр ро-
дительского узла, то такую иерархию называют жесткой. Если же в структуре
допускается отсутствие экземпляров родительского узла для существующих под-
чиненных, то такую иерархию называют формальной.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Элементы, не имеющие подчиненных, называют концевыми эле-
ментами, или листьями.
Путь от концевого элемента до корневого называют ветвью.
Максимальное количество элементов в самой «длинной» ветви —
рангом структуры.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Корневой элемент определяет первый уровень структуры; элементы, непосред-
ственно связанные с корневым, — второй уровень и т. д. [2].
Формально дерево можно определить как иерархию элементов с попарными
связями, для которой выполняются следующие правила:
1) самый верхний уровень имеет только один узел или корневой сегмент;
2) каждый узел состоит из одного либо нескольких элементов данных, опи-
сывающих объект в узле;
3) каждый низший уровень может содержать зависимые узлы, и тогда узел,
находящийся на предыдущем уровне, называется исходным (родителем).
Зависимые узлы могут добавляться как вертикально, так и горизонтально;
4) каждый узел, находящийся на втором уровне, соединен с одним и только
одним узлом на уровне первом и т. д.;
5) исходный уровень может иметь в качестве зависимых любое количество
порожденных узлов;
6) доступ к каждому узлу за исключением корневого происходит через исход-
ный узел.
Применяются следующие операции по управлению данными в иерархической
модели данных:
• включение — добавление экземпляров в элемент структуры (операция ана-
логична операции вставки в линейных структурах) с ограничением на встав-
ку экземпляров при отсутствии старшего (для жесткой иерархии);
32
Глава 2. Модели данных
• замена (обновление) — операция, аналогичная операции замены в линей-
ных структурах, однако для родительских элементов древовидной струк-
туры для обеспечения принципа жесткой иерархии необходимо автома-
тическое обновление полей связей экземпляров подчиненных элементов.
В некоторых иерархических СУБД допускается формальное отсутствие
ключевых полей в подчиненных элементах: ключи старших «мигрируют»
в подчиненные элементы;
• удаление — каскадное удаление всех экземпляров подчиненных элементов
при удалении соответствующих им старших при жесткой иерархии;
• выборка — возможность выборки подобного экземпляра. В отличие от опе-
рации выборки в линейных структурах операция позволяет произвести чте-
ние следующего экземпляра того же элемента структуры. Обеспечивается
также выборка подобного экземпляра в пределах исходного. Такая выборка
может быть осуществлена только после выборки экземпляра старшего эле-
мента, а читаются последовательно однотипные подчиненные, но только
связанные с выбранным «старшим» [2]. Возможна также выборка следу-
ющего экземпляра в иерархической последовательности, т. е. выборка дан-
ных по правилу перехода по дереву — «сверху вниз — слева направо».
Основными достоинством иерархической модели данных является простота
понимания и использования, кроме того, достигается определенный уровень в обес-
печении независимости данных.
К недостаткам модели можно отнести сложность механизма обеспечения свя-
зей типа «многие-ко-многим» и, как следствие, невозможность легко представить
в виде древовидной структуры большинство предметных областей, а также отсут-
ствие гибкости при выполнении операций по манипулированию данными.
2.4 Сетевая модель данных
В сетевой модели объекты предметной области объединяются в сеть. Элемен-
тами такой сетевой структуры являются линейные структуры данных. Иерархи-
ческая структура является частным случаем сетевой. Связи в сетевой структуре
определяются так же, как и в иерархической. Заметим, что при определении свя-
зей в сетевой структуре допустимы следующие положения:
• в сетевой структуре может быть несколько главных элементов (корней)
либо главный элемент вообще может отсутствовать;
• допускается наличие более одной связи между двумя элементами структуры;
• подчиненный элемент может иметь более одного старшего;
• допускаются циклические связи;
• возможно наличие связей между экземплярами одного и того же элемента
структуры.
Поясним различие между понятиями элемент структуры (тип записи) и экзем-
пляр элемента структуры (экземпляр записи). СТУДЕНТЫ является типом струк-
туры, а «1112 Иванов И. И. 1987. . .» — экземпляром элемента структуры. Таким об-
2.4 Сетевая модель данных
33
разом, в БД может иметься один или несколько экземпляров элемента структуры
или, что тоже верно, в БД может существовать любое множество экземпляров за-
писи некоторого типа.
На рисунке 2.7 приведен пример простой сетевой структуры. В этом приме-
ре мы расширили иерархическую структуру, предложенную в предыдущем под-
разделе, добавив два элемента: ПРЕПОДАВАТЕЛИ и ДИСЦИПЛИНА, предпо-
ложив, что один преподаватель может читать лекции по нескольким дисципли-
нам (связь 1:М). Элемент ДИСЦИПЛИНА также связан с элементом УСПЕВАЕ-
МОСТЬ (1:М). Таким образом, в элементах УСПЕВАЕМОСТЬ и КОНТРОЛЬНЫЕ
ТОЧКИ можно опустить поля «Наименование дисциплины», поскольку при уста-
новке соответствующих связей автоматически добавятся ключевые поля старших
структур в дочерние. Операции по обработке данных в сетевой модели аналогичны
соответствующим операциям для иерархической модели.
Рис. 2.7 – Сетевая структура данных
Основным достоинством сетевой модели является ее универсальность и воз-
можность реализации связей «многие-ко-многим». Главным недостатком является
ее сложность — разработчик должен детально знать структуру всей БД, даже той
части, которую не затрагивает его программа, поскольку необходимо осуществлять
навигацию среди различных элементов структуры.
Следующим шагом в развитии моделей данных является использование реля-
ционной модели данных при проектировании БД, которая из-за своей простоты
и универсальности заняла прочное место в современных системах управления БД.
34
Глава 2. Модели данных
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Контрольные вопросы по главе 2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Дайте определения представлений данных.
2. Дайте определение понятий схемы и подсхемы данных.
3. Назовите правила построения иерархических структур.
4. Назовите и кратко охарактеризуйте типовые операции по управлению дан-
ными в дореляционных структурах.
Глава 3
РЕЛЯЦИОННАЯ МОДЕЛЬ
3.1 Основные понятия реляционной модели
3.1.1 Общие сведения
Принципы реляционной модели данных были предложены Эдгаром Франком
Коддом в 1969 году. В своей статье [7] Кодд впервые изложил основные прин-
ципы построения реляционной модели данных. При проектировании реляцион-
ной БД применяются строгие методы, построенные на нормализации отношений.
Э. Ф. Кодд отмечает, что реляционная модель данных обеспечивает ряд возможно-
стей, которые делают управление БД и их использование относительно легким,
устойчивым по отношению к ошибкам и предсказуемым [8].
Термин «реляционная» говорит о том, что в основе модели лежит понятие
«отношение» (англ. relation). Наиболее важными характеристиками реляционной
модели являются следующие [8]:
• реляционная модель описывает данные с их естественной структурой, не
добавляя каких-либо дополнительных структур, необходимых для машин-
ного представления или для целей реализации;
• модель обеспечивает математическую основу для интеграции выводимо-
сти, избыточности и непротиворечивости отношений;
• реляционная модель позволяет добиться реальной независимости данных
от их физического представления, связей между данными и способов реа-
лизации, связанных с эффективностью и подобными заботами.
Благодаря Э. Ф. Кодду компания IBM в начале 70-х годов начала разработку
нескольких коммерческих реляционных СУБД. В начале 80-х годов такие гиган-
ты информационной индустрии, как Oracle Corporation, Ingres Corp., IBM и более
мелкие организации предложили ряд систем, наглядно демонстрирующих возмож-
ность применения реляционной модели для разработки БД, хранящих информа-