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

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



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

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

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

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

.

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

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

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

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

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

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

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

ФАМ

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

Н_ОТД

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

ТЕЛ

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

ПРОЕКТ

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

Н_ЗАДАН

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

Н_СОТР

ФАМ

Н_СОТР

Н_ОТД

Н_СОТР

ТЕЛ

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

Н_ПРО

ПРОЕКТ

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

Н_ОТД

ТЕЛ

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









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