Functionele afhankelijkheid
Van Wikipedia
Een functionele afhankelijkheid is een relatie tussen twee attribuutverzamelingen in een tabel van een relationeel model. Deze redenering speelt een grote rol bij het bepalen van kandidaatsleutels bij databanknormalisatie.
Wanneer in twee tupels waarin attribuut X dezelfde waarde bevatten, dan moeten de waarden in attribuut Y van dat tupel ook hetzelfde zijn. Dit noteren we als .
Als we formeel uitschrijven komen we uit op de volgende expressie:
[bewerk] Voorbeelden
Om het wat visueler te maken staan hier twee eenvoudige tabellen met de attributen X en Y. In de eerste tabel geldt de functionele afhankelijkheid , in de tweede tabel niet.
X | Y | Z |
a | b | c |
a | b | d |
b | a | d |
c | b | c |
X | Y | Z |
a | b | c |
a | c | d |
a | b | d |
b | a | c |
In de eerste en tweede rij ziet u dat de functionele afhankelijkheid wordt verbroken, doordat de waarde in de kolom Y zowel b en c hebben, terwijl de waarde in kolom X bij beiden a is.
[bewerk] Axioma's
De volgende axioma's zijn van toepassing op functionele afhankelijkheden. De eerste drie worden ook wel axioma's van Armstrong genoemd:
- Reflexiviteitsregel: Wanneer α een attribuutset is en
geldt, dan geldt
.
- Augmentatieregel: Wanneer
geldt en γ is een verzameling attributen, dan geldt
.
- Transiviteitsregel: Wanneer
en
gelden, dan geldt ook
.
De volgende drie axioma's kunnen logisch afgeleid worden uit de axioma's van Armstrong:
- Verenigingsregel: Wanneer
en
geleden, dan geldt ook
.
- Decompositieregel: Wanneer
geldt, dan gelden ook
en
.
- Pseudotransiviteitsregel: Wanneer
en
gelden, dan geldt ook
.