Функциональные зависимости отношений и математическое понятие функциональной зависимости

Функциональная зависимость атрибутов отношения напоминает понятие функциональной зависимости в математике. Но это не одно и то же. Для сравнения напомним математическое понятие функциональной зависимости:

Определение 2. Функциональная зависимость (функция) - это тройка объектов Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru , где

Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru - множество (область определения),

Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru - множество (множество значений),

Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru - правило, согласно которому каждому элементу Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru ставится в соответствие один и только один элемент Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru (правило функциональной зависимости).

Функциональная зависимость обычно обозначается как Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru или Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru .

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

Функциональная зависимость атрибутов отношения тоже напоминает это определение. Действительно:

  • В качестве области определения выступает домен, на котором определен атрибут Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru (или декартово произведение доменов, если Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru является множеством атрибутов)
  • В качестве множества значений выступает домен, на котором определен атрибут Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru (или декартово произведение доменов)
  • Правило Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru реализуется следующим алгоритмом - 1) по данному значению атрибута Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru найти любой кортеж отношения, содержащий это значение, 2) значение атрибута Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru в этом кортеже и будет значением функциональной зависимости, соответствующим данному Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru . Определение функциональной зависимости в отношении гарантирует, что найденное значение Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru не зависит от выбора кортежа, поэтому правило Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru

определено корректно.

Отличие от математического понятия отношения состоит в том, что, если рассматривать математическое понятие функции, то для фиксированного значения Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru соответствующее значение функции Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru всегда одно и то же. Например, если задана функция Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru , то для значения Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru соответствующее значение Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru всегда будет равно 4. В противоположность этому в отношениях значение зависимого атрибута может принимать различные значения в различных состояниях базы данных. Например, атрибут ФАМ функционально зависит от атрибута Н_СОТР. Предположим, что сейчас сотрудник с табельным номером 1 имеет фамилию Иванов, т.е. при значении детерминанта равного 1, значение зависимого аргумента равно "Иванов". Но сотрудник может сменить фамилию, например на "Сидоров". Теперь при том же значении детерминанта, равного 1, значение зависимого аргумента равно "Сидоров".

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

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

2НФ (Вторая Нормальная Форма)

Определение 3. Отношение Функциональные зависимости отношений и математическое понятие функциональной зависимости - student2.ru находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. (Неключевой атрибут - это атрибут, не входящий в состав никакого потенциального ключа).

Замечание. Если потенциальный ключ отношения является простым, то отношение автоматически находится в 2НФ.

Отношение СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ не находится в 2НФ, т.к. есть атрибуты, зависящие от части сложного ключа:

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

Наши рекомендации