Tapsfri dekomposisjon

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:

  • R 1 R 2 R 1 {\displaystyle R1\cap R2\rightarrow R1} eller
  • R 1 R 2 R 2 {\displaystyle R1\cap R2\rightarrow R2}

Eksempler

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

Tapsfri dekomposisjon

Relasjonen R {\displaystyle R} brytes ned til to relasjoner R 1 ( A , B ; { A , B } ) {\displaystyle R1(A,B;\{A,B\})} og R 2 ( B , C ; { B } ) {\displaystyle R2(B,C;\{B\})} . Da vil det gjelde at R 1 R 2 = { A , B } { B , C } = B {\displaystyle R1\cap R2=\{A,B\}\cap \{B,C\}={B}} og B B C {\displaystyle B\rightarrow BC} , forenklet: B C {\displaystyle B\rightarrow C}

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
R 1 R 2 {\displaystyle R1\triangleright \!\!\triangleleft \,R2}
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
R 1 R 2 {\displaystyle R1\triangleright \!\!\triangleleft \,R2}
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å

  • Arbeidsenhet
  • Ekviskjøt, en undertype av sammenføyninger hvor det kun brukes likhetstegn i skjøtepredikatet
  • Funksjonell dekomposisjon
  • Relasjon (database)
  • Relasjonsalgebra

Eksterne lenker

  • IN2090 – Databaser og datamodellering 08 – Tapsfri dekomposisjon