Оформить и купить диплом на бланке ГОЗНАК без предоплаты

Проектирование по функциональным зависимостям

Алгоритм проектирования совокупности отношений по функциональным зависимостям состоит из следующих этапов.

1. Построение универсального отношения.

2. Установление функциональных зависимостей между атрибутами универсального отношения.

3. Анализ функциональных зависимостей с целью проверки, находится ли отношение в нормальной форме Бойса-Кодда.

4. В случае отрицательного результата проверки декомпозиция отношения на два с выделением того отношения, которое не соответствует требованиям нормальной формы Бойса-Кодда, и переход к п. 3 для анализа отделенного отношения.

5. Сопоставление таблиц полученным отношениям.

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

Говорят, что атрибут или агрегат атрибутов B находится в функциональной зависимости от атрибута или агрегата атрибутов A, если каждому из возможных значений A соответствует одно и то же значение B.

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

В краткой форме функциональную зависимость B от A записывают в виде

 A ->  B   или   B ¬ A .

Атрибут или агрегат атрибутов A называется детерминантом атрибута или агрегата атрибутов B, если в функциональной зависимости (A ->  B)  либо A – одиночный атрибут, либо A является агрегатом, но B не зависит функционально ни от одной составляющей агрегата A.

Преобразования универсального отношения имеют конечной целью нормальную форму Бойса-Кодда (разновидность третьей нормальной формы).

 Отношение находится в нормальной форме Бойса-Кодда (НФБК), если и только если в каждой функциональной зависимости отношения детерминант является возможным ключом.

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

Пример. Приведенное ниже отношение СТУДЕНТЫ находится в первой нормальной форме.

ОТНОШЕНИЕ: СТУДЕНТЫ

ФИО

Роль

Адрес

Телефон

ФИО1

Студент

Ад1

Те1

ФИО2

Студент

Ад2

Те2

ФИО3

Студент

Ад3

Те3

ФИО4

Студентка

Ад3

Те3

ФИО5

Студентка

Ад4

-----

ФИО6

Студентка

Ад5

Те4

ФИО7

Студентка

Ад5

Те4

 

 

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

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

Роль человека однозначно зависит от его фамилии:

 ФИО ->  Роль.

Домашний адрес студента, студентки определяется фамилией:

ФИО ->  Адрес.

Номер телефона однозначно задан адресом:

Адрес  ->  Телефон   .

Возможными ключами в исходном отношении являются как атрибут ФИО, так и агрегат (ФИО, Роль). Среди приведенных функциональных зависимостей в зависимости Адрес -> Телефон детерминант не является возможным ключом; эта зависимость подлежит отделению во второе отношение, и оно далее преобразуется в отдельную таблицу. После преобразования получаем базу данных из двух таблиц:

 

ОТНОШЕНИЕ: СТУДЕНТЫ

 

ФИО

Роль

Адрес

ФИО1

Студент

Ад1

ФИО2

Студент

Ад2

ФИО3

Студент

Ад3

ФИО4

Студентка

Ад3

ФИО5

Студентка

Ад4

ФИО6

Студентка

Ад5

ФИО7

Студентка

Ад5

 

 

ОТНОШЕНИЕ: ТЕЛЕФОНЫ

 

Адрес

Телефон

Ад1

Те1

Ад2

Те2

Ад3

Те3

Ад5

Те4

 

После преобразований уменьшилось суммарное число пустых мест и

число повторений в таблицах по отношению к первичной таблице.

Функциональные зависимости преобразуют используя следующие правила:

1. Использование свойства транзитивности.

В наборе функциональных зависимостей A -> B , B -> C , A -> C

одна из зависимостей B -> C , A -> C является избыточной.

2. Выделение детерминанта.

В наборе функциональных зависимостей A -> B(A, Z) -> B вторая зависимость является избыточной.

3. Избыточное пополнение.

Функциональная зависимость (A, Z) -> (B, Z) может быть

заменена на зависимость (A, Z) -> B .

4. Объединение.

Набор A -> BA -> C можно заменить на   A -> (B, C) .

5. Распределение.

Зависимость A -> (B, C) можно заменить на набор зависимостей

 A -> BA -> C .

6. Псевдотранзитивность.

В наборе функциональных зависимостей  A -> B , (B, C) -> D ,

(A, C) -> D последняя зависимость является избыточной.

Эти же правила можно использовать для преобразования ER-диаграмм.