Введение в системы управления базами данных

         

Определение функциональной зависимости



Определение функциональной зависимости

Для устранения указанных аномалий (а на самом деле для правильного проектирования модели данных!) применяется метод нормализации отношений. Нормализация основана на понятии функциональной зависимости атрибутов отношения.

Определение 1. Пусть

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

Определение функциональной зависимости
.

Множество атрибутов

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

Замечание. Если атрибуты

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

Пример 1. В отношении СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ можно привести следующие примеры функциональных зависимостей:

Зависимость атрибутов от ключа отношения:

{Н_СОТР, Н_ПРО}

Определение функциональной зависимости
ФАМ

{Н_СОТР, Н_ПРО}

Определение функциональной зависимости
Н_ОТД

{Н_СОТР, Н_ПРО}

Определение функциональной зависимости
ТЕЛ

{Н_СОТР, Н_ПРО}

Определение функциональной зависимости
ПРОЕКТ

{Н_СОТР, Н_ПРО}

Определение функциональной зависимости
Н_ЗАДАН

Зависимость атрибутов, характеризующих сотрудника от табельного номера сотрудника:

Н_СОТР

Определение функциональной зависимости
ФАМ

Н_СОТР

Определение функциональной зависимости
Н_ОТД

Н_СОТР

Определение функциональной зависимости
ТЕЛ

Зависимость наименования проекта от номера проекта:

Н_ПРО

Определение функциональной зависимости
ПРОЕКТ

Зависимость номера телефона от номера отдела:

Н_ОТД

Определение функциональной зависимости
ТЕЛ

Замечание. Приведенные функциональные зависимости не выведены из внешнего вида отношения, приведенного в таблице 1. Эти зависимости отражают взаимосвязи, обнаруженные между объектами предметной области и являются дополнительными ограничениями, определяемыми предметной областью. Таким образом, функциональная зависимость - семантическое понятие. Она возникает, когда по значениям одних данных в предметной области можно определить значения других данных. Например, зная табельный номер сотрудника, можно определить его фамилию, по номеру отдела можно определить телефона. Функциональная зависимость задает дополнительные ограничения на данные, которые могут храниться в отношениях. Для корректности базы данных (адекватности предметной области) необходимо при выполнении операций модификации базы данных проверять все ограничения, определенные функциональными зависимостями.









Содержание раздела