Een functionele afhankelijkheid in een database dwingt een reeks beperkingen tussen kenmerken af. Dit gebeurt wanneer een attribuut in een relatie op unieke wijze een ander attribuut bepaalt. Dit kan worden geschreven A -> B wat betekent dat "B functioneel afhankelijk is van A." Dit wordt ook een database-afhankelijkheid genoemd.
In deze relatie bepaalt A de waarde van B, terwijl B afhangt van A.
Waarom functionele afhankelijkheid belangrijk is in databaseontwerp
Functionele afhankelijkheid draagt bij aan de validiteit van gegevens. Neem een tabel mee Medewerkers met kenmerken zoals BSN (Social Security Number), naam, geboortedatum, adres, enzovoort.
Het attribuut SSN bepaalt de waarde van naam, geboortedatum, adres en misschien andere waarden, omdat een sofinummer uniek is, terwijl een naam, geboortedatum of adres dat misschien niet is. We kunnen het zo schrijven:
SSN -> naam, geboortedatum, adres
Daarom zijn naam, geboortedatum en adres functioneel afhankelijk van SSN. De omgekeerde instructie (name -> SSN) is echter niet waar omdat meer dan één werknemer dezelfde naam kan hebben maar nooit dezelfde SSN zal hebben. Als we de waarde van het SSN-kenmerk kennen, kunnen we de waarde van naam, geboortedatum en adres nader bepalen. Maar als we in plaats daarvan de waarde kennen van alleen het naamkenmerk, kunnen we de SSN niet identificeren.
De linkerkant van een functionele afhankelijkheid kan meer dan één attribuut bevatten. Laten we zeggen dat we een bedrijf hebben met meerdere locaties. We hebben misschien een tabel Medewerker met attributen werknemer, titel, afdeling, locatie en manager.
De medewerker bepaalt de locatie waar hij werkt, dus er is een afhankelijkheid:
medewerker -> locatie
Maar de locatie kan meer dan één manager hebben, zodat werknemer en afdeling samen de manager bepalen:
medewerker, afdeling -> manager
Functionele afhankelijkheid en normalisatie
Functionele afhankelijkheid draagt bij aan wat database-normalisatie wordt genoemd, die zorgt voor gegevensintegriteit en gegevensredundanties vermindert. Zonder normalisatie is er geen garantie dat de gegevens in een database juist en betrouwbaar zijn.




