Functionele afhankelijkheid

Uit testwiki
Versie door imported>ChristiaanPR op 27 sep 2024 om 18:52
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Een functionele afhankelijkheid is een bepaald soort constraint in databases, dus voorwaarde op de mogelijke waarden in een tabel van een relationele database. Een verzameling attributen, die staan in de kolommen, van de tabel wordt functioneel afhankelijk genoemd van een tweede verzameling attributen als altijd wanneer twee rijen van een tabel gelijke waarden hebben voor de tweede verzameling attributen, ze ook gelijke waarden hebben voor de eerste verzameling attributen: AB D t1,t2:aA:t1(a)=t2(a)bB:t1(b)=t2(b)

De beide verzamelingen attributen worden de gedetermineerde en de determinant van de functionele afhankelijkheid genoemd.

Een verzameling attributen waarvan alle attributen functioneel afhankelijk zijn wordt een kandidaatsleutel van de tabel genoemd.

Functionele afhankelijkheden spelen een grote rol bij databasenormalisatie.

Voorbeelden

Er staan hieronder twee tabellen met de attributen X en Y. In de eerste tabel geldt de functionele afhankelijkheid {X}{Y}, 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 beide a is.

Functionele afhankelijkheden komen in databases zeer veel voor. Zo zou bijvoorbeeld voor een telefoongids kunnen gelden: {plaatsnaam}{netnummer}, een plaatsnaam heeft maar een netnummer. Dat betekent niet dat het omgekeerde ook moet gelden: bij één netnummer horen vaak verschillende plaatsnamen.

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 αγδ.