Flervaluert avhengighet

Fra testwiki
Hopp til navigering Hopp til søk

I databaseteori er en flervaluert avhengighet en full begrensning mellom to datamengder med attributter i en relasjon.

I motsetning til funksjonell avhengighet krever flervaluert avhengighet at visse tupler er til stede i en relasjon. Derfor er en flervaluert avhengighet et spesielt tilfelle av tuppelgenererende avhengighet. Flervaluert avhengighet spiller en rolle i fjerde normalform.

En flervaluert avhengighet er et spesialtilfelle av en skjøteavhengighet hvor bare to mengder med verdier involvert, altså er det en binær skjøteavhengighet.

En flervaluert avhengighet eksisterer når det er minst tre attributter (som X, Y og Z) i en relasjon og for en verdi av X er det en veldefinert mengde verdier av Y og en veldefinert mengde verdier av Z. Imidlertid er mengden verdier i Y uavhengig av mengden Z og omvendt.

Formell definisjon

Den formelle definisjonen er som følger: [1]

La R være en relasjon og la αR og βR være mengden med attributter. Den flervaluerte avhengigheten αβ (α "multibestemmer" β) holder i R hvis, for enhver lovlige relasjon r(R) og alle par av tupler t1 og t2 i r slik at t1[α]=t2[α], så finnes det tupler t3 og t4 i r slik at:

tuppelαβR(αβ)t1a1..anb1..bmd1..dkt2a1..anc1..cme1..ekt3a1..anb1..bme1..ekt4a1..anc1..cmd1..dk

Uformelt, hvis man angir ved (x,y,z) tuppelen som har verdier for α,β,Rαβ kollektivt lik med x,y,z, så bør det hver gang tuplene (a,b,c) og (a,d,e) eksisterer i r være slik at tuplene (a,b,e) og (a,d,c) også eksistere i r.

Flervaluert avhengighet kan skjematisk fremstilles som vist nedenfor:

t1[α]=t2[α]=t3[α]=t4[α]t1[β]=t3[β]t2[β]=t4[β]t1[R(αβ)]=t4[R(αβ)]t2[R(αβ)]=t3[R(αβ)]

Eksempel

Anta eksempelet under med en relasjon mellom universitetsfag, anbefalte bøker for faget og foreleseren som skal undervise:

Universitetsfag
Kurs Bok Foreleser
AHA Sørensen Marius U
AHA Moen Marius U
AHA Sørensen Inger M
AHA Moen Inger M
AHA Sørensen Øyvind G
AHA Moen Øyvind G
OSO Sørensen Marius U
OSO Sørensen Inger M

Fordi foreleseren knyttet til kurset og bøkene knyttet til kurset er uavhengige av hverandre har dette databasedesignet en flervaluert avhengighet. Hvis man skulle legge til en ny bok til AHA-faget måtte det legges til en rad for hver av foreleserne i det faget, og omvendt. Formelt sett er det to flervaluerte avhengigheter i denne relasjonen: {kurs}  {bok} og tilsvarende {kurs}  {foreleser}. Databaser med flervaluerte avhengigheter har dermed redundans. I databasenormalisering krever fjerde normalform at X er en supernøkkel for hver ikke-trivielle flervaluerte avhengighet X  Y. En flervaluert avhengighet X Y er triviell hvis Y er en delmengde av X, eller hvis XY er hele mengden av attributter til relasjonen.

Egenskaper

  • Hvis αβ, så αRβ
  • Hvis αβ og γδ, så αδβγ
  • Hvis αβ og βγ, så αγβ

Følgende involverer også funksjonelle avhengigheter:

  • Hvis αβ, så αβ
  • Hvis αβ og βγ, så αγβ

Reglene ovenfor er komplette og korrekte.

  • En dekomponering av R til (XY) og (XR − Y) er en trapsfri skjøte-dekomposisjon hvis og bare hvis X  Y holder i R.
  • Hver funksjonelle avhengighet er en flervaluert avhengighet fordi hvis X Y, så vil bytting av Y-er mellom tuplene som er enige om X ikke skape nye tupler.
  • Splitting holder ikke: Lik som for funksjonelle avhengigheter kan man ikke generelt splitte venstre side av en flervaluert avheighghet. Men ulikt en funksjonell avhengighet kan vi ikke splitte høyre side heller, og noen ganger må man beholde flere attributter på høyre side.
  • Overdekking av en mengde av flervaluerte avhengigheter er mengden av alle flervaluerte avhengigheter som kan infereres ved å bruke følgende regler (Armstrongs aksiomer):
    • Komplementering: Hvis X Y, så X R - Y
    • Utvidelse: Hvis X Y og Z W, så XW YZ
    • Transitivitet: Hvis X Y og Y Z, så X Z - Y
    • Replikering: Hvis X Y, så X Y
    • Koalisering: Hvis X Y and W slik at W Y = , W Z, og Z Y, så X Z

Definisjoner

Full begrensning
En begrensning som uttrykker noe om alle attributter i en database. (I motsetning til en innebygd begrensning.) At en flervaluert avhengighet er en full begrensning følger av dens definisjon, som hvor den sier noe om attributtene Rβ.
Tuppelgenererende avhengighet
En avhengighet som eksplisitt krever at visse tupler er tilstede i relasjonen.
Triviell flervaluert avhengighet 1
En flervaluert avhengighet som involverer alle egenskapene til en relasjon, altså R=αβ. En triviell avhengighet med flere verdier innebærer, for tupler t1 og t2, at det er tupler t3 og t4 som er lik t1 og t2.
Triviell flervaluert avhengighet 2
En flervaluert avhengighet som βα .

Referanser

Mal:Databasenormalisering