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:
eller ![{\displaystyle R1\cap R2\rightarrow R2}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e541df5d63a51d2ac05f4c609092511e423974fd)
Eksempler
Anta en relasjon
med nøkkelkandidat
.
Tapsfri dekomposisjon
Relasjonen
brytes ned til to relasjoner
og
. Da vil det gjelde at
og
, forenklet:
R A | B | C | 1 | 1 | 2 | 1 | 2 | 3 | 2 | 1 | 2 | | | | 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 | | | | 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