Tapsfri dekomposisjon

Fra testwiki
Hopp til navigering Hopp til søk

Mal:Kildeløs I databaser er en tapsfri dekomposisjon (tysk: Verbundtreue, også kalt Verlustlosigkeit) er når en relasjon dekomponeres på en slik måte at den opprinnelige relasjonen kan gjenopprettes fra den dekomponerte relasjonen ved å bruke en naturlig skjøt (engelsk: natural join)

Funksjonell avhengighet er et relatert tema.

Enkelt kriterium

En nedbrytning av en relasjonsmodell R i to underordninger R1 og R2 er er tapsfri dersom:

  • R1R2R1 eller
  • R1R2R2

Eksempler

Anta en relasjon R(A,B,C;{A,B}) med nøkkelkandidat {A,B}.

Tapsfri dekomposisjon

Relasjonen R brytes ned til to relasjoner R1(A,B;{A,B}) og R2(B,C;{B}). Da vil det gjelde at R1R2={A,B}{B,C}=B og BBC, forenklet: BC

R
A B C
1 1 2
1 2 3
2 1 2
R1
A B
1 1
1 2
2 1
R2
B C
1 2
2 3
R1R2
A B C
1 1 2
1 2 3
2 1 2

Ikke-tapsfri dekomposisjon

R
A B C
1 1 2
1 2 3
2 1 3
R1
A B
1 1
1 2
2 1
R2
B C
1 2
2 3
1 3
R1R2
A B C
1 1 2
1 1 3
1 2 3
2 1 2
2 1 3

Årsaken til mangel på tapsfrihet i det andre eksemplet er at det hverken er en funksjonell avhengighet mellom B → A eller mellom B → C. I det første eksemplet hadde man derimot B → C.

Se også

Eksterne lenker