De functionele afhankelijkheid is een relatie die bestaat tussen twee attributen. Het bestaat doorgaans tussen de primaire sleutel en het niet-sleutelattribuut in een tabel.
X → Y
De linkerkant van FD staat bekend als een determinant, de rechterkant van de productie staat bekend als een afhankelijke.
Bijvoorbeeld:
Stel dat we een werknemerstabel hebben met attributen: Emp_Id, Emp_Name, Emp_Address.
steden in Australië
Hier kan het Emp_Id-attribuut op unieke wijze het Emp_Name-attribuut van de werknemerstabel identificeren, omdat als we de Emp_Id kennen, we kunnen zien welke werknemersnaam eraan is gekoppeld.
Functionele afhankelijkheid kan worden geschreven als:
Emp_Id → Emp_Name
We kunnen zeggen dat Emp_Name functioneel afhankelijk is van Emp_Id.
Soorten functionele afhankelijkheid
1. Triviale functionele afhankelijkheid
- A → B heeft een triviale functionele afhankelijkheid als B een subset van A is.
- De volgende afhankelijkheden zijn ook triviaal, zoals: A → A, B → B
Voorbeeld:
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. Niet-triviale functionele afhankelijkheid
- A → B heeft een niet-triviale functionele afhankelijkheid als B geen subset van A is.
- Wanneer A-kruising B NULL is, wordt A → B als volledig niet-triviaal genoemd.
Voorbeeld:
ID → Name, Name → DOB