суббота, 15 августа 2009 г.

БД26

3.3. Нормализация отношений
3.3.1. Понятие функциональной зависимости (ФЗ)
Вспомним, что любое отношение рассматривается как переменная, принимающая определенные значения в определенные моменты времени.
Определение ФЗ:
Пусть R – переменная отношения, X, Y – произвольные подмножества множества всех атрибутов R. Y функционально зависит от X тогда и только тогда, когда для любого допустимого значения R каждое значение X связано только с одним значением Y.
Обозначается: X→Y
Говорится: «X функционально определяет Y» или «Y функционально зависит от X».
Левая часть выражения называется детерминантом (детерминантой) ФЗ, правая – зависимой частью ФЗ.
НАПРИМЕР: в отношении Студенты существуют такие ФЗ
№зачетки → {Ф, И, О}
№зачетки → {Адрес, Группа}
{№зачетки, Ф, И, О} → {Адрес, Группа}
Это, конечно, частные случаи, из которых можно сделать вывод, что если детерминант содержит первичный ключ, то множество всех остальных атрибутов отношения функционально зависит от него.
Еще ПРИМЕР: в отношении Кафедры существуют ФЗ
КодКафедры → {Кабинет, Телефон}
НазваниеКафедры → {Кабинет, Телефон}
Видно, что аналогичный вывод можно сделать не только для первичных ключей, но и для альтернативных, то есть для всех потенциальных ключей.
Множество атрибутов отношения, которое содержит в качестве подмножества потенциальный ключ называется суперключом этого отношения.
Третий ПРИМЕР: если в отношение Студенты добавить атрибут СтаростаГруппы, то появятся такие ФЗ:
Группа → СтаростаГруппы
СтаростаГруппы → Группа
(причем, ни атрибут Группа, ни атрибут СтаростаГруппы не являются потенциальными ключами)
В этом случае имеется избыточность данных, которая может привести к вводу ошибочных сведений, т.е., пользователь случайно может ввести в качестве старосты не того студента, но система не выдаст ошибку.
Фактически, если в отношении имеется ФЗ в которой детерминант не является суперключом, то отношение избыточно.
Можно сказать, что при проектировании БД нужно стремиться к сокращению количества ФЗ, на что и направлена нормализация.
Правда, есть такие зависимости, которые учитываются только формально, т.к. они всегда существуют и подразумеваются самим определением ФЗ. Это тривиальные ФЗ.
Тривиальная ФЗ – это такая ФЗ, зависимая часть которой является подмножеством детерминанта.
НАПРИМЕР:
{№зачетки, Ф, И, О} → {Ф, И, О}
{КодПодгруппы, Курс} → {Курс}
Понятно, что такие тривиальные ФЗ не рассматриваются при нормализации, но все же они существуют и всегда формально учитываются.
ФЗ называется неприводимой слева, если ни один атрибут не может быть опущен из ее детерминанта (иными словами, детерминант неизбыточен).
НАПРИМЕР: ФЗ {№зачетки, Фамилия, Имя, Отчество} → {Адрес} приводима, т.к. из детерминанта можно исключить атрибуты Фамилия, Имя, Отчество без нарушения ФЗ.
А ФЗ {Группа, Дисциплина} → {Преподаватель} неприводима, т.к. из детерминанты нельзя исключить не Группу, ни Дисциплину без нарушения зависимости.



газоны рулонные


Газоны ландшафтный дизайн, ландшафтное проектирование

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

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

Узнайте все про скидки Санкт-Петербурга в одном месте