Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЭИС пособие конспект лекций.doc
Скачиваний:
8
Добавлен:
10.11.2019
Размер:
1.05 Mб
Скачать

2.5. Ациклические базы данных

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

Если в отношении R(A,B,C) существует многозначная зависимость (МЗ), например А ->->В (многозначное определение), то при этом А->->С, т.к. многозначные зависимости всегда встречаются парами.

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

Для определения понятия ациклической схемы БД введем граф соединений на множестве отношений {Sl,S2,...,Sk}. Вершинами графа соединений являются имена отношений. Дуга графа, содержащего 2 вершины, существует, если между ними имеется общий атрибут. Этот атрибут называется весом дуги.

Рис. 2.13. Пример графа соединений:

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

Алгоритм проверки структуры БД на ацикличность:

Шаг 1. Если некоторый атрибут встречается только в одном отношении, вычеркнуть данный атрибут из этого отношения.

Шаг 2. Если все атрибуты некоторого отношения находят­ся среди атрибутов другого отношения, то первое отношение вычеркивается из списка.

Шаги 1 и 2 можно применять в любой последовательности.

Если в результате будут вычеркнуты все отношения, то БД является ациклической. В обратном случае - БД циклическая.

Восстановление свойств ацикличности БД может быть произведено двумя способами.

1- Добавление в БД нового отношения с атрибутами, рав­ными объединению весов дуг, образующих цикл. В этом случае возможны неопределенные значения в новом отношении.

2- Добавление новых атрибутов, переименование и разделение атрибутов. Такое решение не создает дополнительных неопределенностей.

Рассмотрим, например, зависимости: Служащий —>Отдел и От­дел, Заказчик —> Тема. Это ситуация, показанная на рис.в). Для преодоления цикличности необходимо разделить роли атрибута Отдел, например, ввести атрибут «Отдел_служащего».

Циклическая база данных может содержать два, три и более циклов. Поэтому после преобразования БД рекомендуется заново проверить её на ацикличность.

2.6. Сетевая модель данных

Информационными конструкциями в сетевой модели дан­ных являются отношения и веерные отношения, хотя в некоторых сетевых СУБД допускаются от­ношения с многоуровневой (три и более) структурой.

Сетевая БД представляется как множество отношений и ве­ерных отношений. Отношения разделяются на основные и за­висимые.

Веерным отношением W(R,S) называется пара отношений, состоящая из одного основного R, одного зависимого отноше­ния S и связи между ними при условии, что каждое значение зависимого отношения связано с единственным значением ос­новного отношения.

Названное условие является ограничением, характерным для сетевой модели данных в целом.

Допустимые в сетевой модели данных операции представ­ляют собой различные варианты выборки.

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

Ограничение двухуровневых сетей состоит в том, что каж­дое отношение может существовать в одной из перечисленных ниже ролей:

- вне каких-либо веерных отношении,

- в качестве основного отношения в любом количестве ве­ерных отношений,

- в качестве зависимого отношения в любом количестве ве­ерных отношений.

Многоуровневые сети не предусматривают никаких ограни­чений на взаимосвязь веерных отношений.

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

Для двухуровневых сетевых СУБД вводятся еще два огра­ничения (с теоретической точки зрения необязательные):

- первичный ключ основного отношения может быть толь­ко одноатрибутным,

- веерное отношение существует, если первичный ключ ос­новного отношения является частью первичного ключа зависимого отношения.