Функционалната зависимост е връзка, която съществува между два атрибута. Обикновено съществува между първичния ключ и неключовия атрибут в таблица.
X → Y
Лявата страна на FD е известна като детерминанта, дясната страна на продукцията е известна като зависима.
Например:
Да приемем, че имаме таблица на служителите с атрибути: Emp_Id, Emp_Name, Emp_Address.
в java regex
Тук атрибутът Emp_Id може уникално да идентифицира атрибута Emp_Name на таблицата на служителите, защото ако знаем Emp_Id, можем да кажем, че името на служителя е свързано с него.
Функционалната зависимост може да се запише като:
Emp_Id → Emp_Name
Можем да кажем, че Emp_Name е функционално зависим от Emp_Id.
Видове функционална зависимост
1. Тривиална функционална зависимост
- A → B има тривиална функционална зависимост, ако B е подмножество на A.
- Следните зависимости също са тривиални като: A → A, B → B
Пример:
Consider a table with two columns Employee_Id and Employee_Name. {Employee_id, Employee_Name} → Employee_Id is a trivial functional dependency as Employee_Id is a subset of {Employee_Id, Employee_Name}. Also, Employee_Id → Employee_Id and Employee_Name → Employee_Name are trivial dependencies too.
2. Нетривиална функционална зависимост
- A → B има нетривиална функционална зависимост, ако B не е подмножество на A.
- Когато A пресичане B е NULL, тогава A → B се нарича като пълен нетривиален.
Пример:
ID → Name, Name → DOB