Функциональная зависимость в базе данных обеспечивает набор ограничений между атрибутами. Это происходит, когда один атрибут в отношении однозначно определяет другой атрибут. Это можно записать как A -> B, что означает «B функционально зависит от A.» Это также называется зависимостью от базы данных .
В этом отношении A определяет значение B, а B зависит от A.
Почему функциональная зависимость важна в дизайне базы данных
Функциональная зависимость помогает обеспечить достоверность данных. Рассмотрим таблицу «Сотрудники», в которой перечислены характеристики, включая номер социального страхования (SSN), имя, дату рождения, адрес и т. Д.
Атрибут SSN будет определять значение имени, даты рождения, адреса и, возможно, других значений, поскольку номер социального страхования является уникальным, а имя, дата рождения или адрес могут не быть. Мы можем написать это так:
SSN -> имя, дата рождения, адрес
Следовательно, имя, дата рождения и адрес функционально зависят от SSN. Однако обратное утверждение (имя -> SSN) неверно, поскольку несколько сотрудников могут иметь одно и то же имя, но никогда не будут иметь одинаковый SSN. Другими словами, если мы знаем значение атрибута SSN, мы можем найти значение имени, даты рождения и адреса. Но если мы вместо этого знаем значение только атрибута name, мы не можем идентифицировать SSN.
Левая сторона функциональной зависимости может включать более одного атрибута. Допустим, у нас есть бизнес с несколькими местоположениями. У нас может быть таблица «Сотрудник» с атрибутами «Сотрудник, должность, отдел, местоположение и менеджер».
Сотрудник определяет место, где он работает, поэтому есть зависимость:
сотрудник -> местоположение
Но у местоположения может быть более одного менеджера, поэтому сотрудник и отдел вместе определяют менеджера:
сотрудник отдела -> менеджер
Функциональная зависимость и нормализация
Функциональная зависимость способствует так называемой нормализации базы данных , которая обеспечивает целостность данных и уменьшает избыточность данных. Без нормализации нет гарантии того, что данные в базе данных являются точными и надежными.