Denne artikkelen mangler kildehenvisninger, og opplysningene i den kan dermed være vanskelige å verifisere. Kildeløst materiale kan bli fjernet.
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:

* {\displaystyle R1\cap R2\rightarrow R1} eller
* {\displaystyle R1\cap R2\rightarrow R2}

Eksempler
---------

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

### Tapsfri dekomposisjon

Relasjonen {\displaystyle R} brytes ned til to relasjoner {\displaystyle R1(A,B;\{A,B\})} og {\displaystyle R2(B,C;\{B\})}. Da vil det gjelde at {\displaystyle R1\cap R2=\{A,B\}\cap \{B,C\}={B}} og {\displaystyle B\rightarrow BC}, forenklet: {\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
  |

 | 

{\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
  |

 | 

{\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
* Relasjon (database)
* Relasjonsalgebra

Eksterne lenker
---------------

* IN2090 – Databaser og datamodellering 08 – Tapsfri dekomposisjon