Hopp til innhold

Skjøteavhengighet

Fra Wikipedia, den frie encyklopedi

I databaseteori er en skjøteavhengighet en begrensning på mengden tillatte relasjoner i et databaseskjema. En tabell omfattes av en skjøteavhengighet hvis alltid kan gjenskapes ved å skjøte sammen flere tabeller som hver har en delmengde av attributtene til . Dersom en av tabellene i skjøten har alle attributtene til tabellen kalles skjøteavhengigheten triviell.

Skjøteavhengighet spiller en viktig rolle i femte normalform (5NF), også kjent som projeksjonsskjøt normalform, fordi det kan bevises at hvis et skjema er dekomponert i tabellene til , så vil dekomponeringen være en tapsfri-skjøt-dekomponering dersom de lovlige relasjonene på er begrenset til en skjøteavhengighet på kalt .

En annen måte å beskrive en skjøteavhengighet på er å si at relasjonene i skjøteavhengigheten er uavhengige av hverandre.

I motsetning til funksjonelle avhengigheter er det ingen korrekt og komplett aksiomatisering for skjøteavhengigheter,[1] selv om aksiomatisering eksisterer for mer uttrykksfulle avhengighetsspråk, som for eksempel fullt typiserte avhengigheter.[2]:kapittel 8 Imidlertid er implikasjon av skjøteavhengigheter avgjørbar.[2]:teorem 8.4.12

Formell definisjon

[rediger | rediger kilde]

La være et relasjonsskjema og la være en nedbryting av .

Relasjonen tilfredsstiller skjøteavhengigheten:

hvis

En skjøteavhengighet er triviell hvis en av selv er .[3]

En binær skjøteavhengighet kalles flervaluert avhengighet av historiske årsaker på grunn av at de ble studert før det generelle tilfellet. Mer spesifikt, hvis U er en mengde attributter og R en relasjon over den, så vil R tilfredsstille hvis og bare hvis R tilfredsstiller

Anta at en pizzakjede modellerer innkjøp i tabellen Ordre = {ordrenummer, kundenavn, pizzanavn, kurer}.

Følgende relasjoner kan utledes:

  • Kundenavnet avhenger av ordrenummeret
  • Pizzanavnet avhenger av ordrenummeret
  • Kureren avhenger av ordrenummeret

Siden relasjonene er uavhengige har vil følgende skjøteavhengighet: *((ordrenummer, kundenavn), (ordrenummer, pizzanavn), (ordrenummer, kurer)).

Hvis hver kunde har sin egen kurer, kan det imidlertid være en skjøteavhengighet som dette: *((ordrenummer, kundenavn), (ordrenummer, pizzanavn), (ordrenummer, kurer), (kundenavn, kurer)), men *((ordrenummer, kundenavn, kurer), (ordrenummer, pizzanavn)) vil også være gyldig. Dette eksempelet gjør det åpenbart at bare å ha en skjøteavhengighet ikke er nok til å normalisere et databaseskjema.

  • Chase-algoritmen, enkel fikspunktalgoritme for å teste og håndheving av implikasjoner av dataavhengigheter i databasesystemer
  • Antakelsen om den universelle relasjonen, ideen om at alle dataattributter i en relasjonsdatabase kan plasseres i en tabell, som deretter kan dekomponeres etter behov

Referanser

[rediger | rediger kilde]
  1. ^ Petrov, S. V. (1989). «Finite axiomatization of languages for representation of system properties». Information Sciences. 47: 339–372. doi:10.1016/0020-0255(89)90006-6. 
  2. ^ a b Abiteboul; Hull; Vianu (1995). Foundations of databases. Addison-Wesley. ISBN 9780201537710. 
  3. ^ Silberschatz, Korth. Database System Concepts (1st utg.). 
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy