Redigerer
Skjøteavhengighet
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
I [[databaseteori]] er en '''skjøteavhengighet''' en begrensning på [[mengde]]n tillatte [[Relasjonsalgebra|relasjoner]] i et [[databaseskjema]]. En [[Tabell (database)|tabell]] <math>T</math> omfattes av en skjøte[[Avhengighetsteori (databaseteori)|avhengighet]] hvis <math>T</math> alltid kan gjenskapes ved å [[Relasjonsalgebra|skjøte]] sammen flere tabeller som hver har en [[delmengde]] av attributtene til <math>T</math>. Dersom en av tabellene i skjøten har alle attributtene til tabellen <math>T</math> kalles skjøteavhengigheten [[Trivialitet (matematikk)|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 <math>R</math> er dekomponert i tabellene <math>R_1</math> til <math>R_n</math>, så vil dekomponeringen være en [[Tapsfri dekomposisjon|tapsfri-skjøt-dekomponering]] dersom de lovlige relasjonene på <math>R</math> er begrenset til en skjøteavhengighet på <math>R</math> kalt <math>*(R_1,R_2,\ldots,R_n)</math>. En annen måte å beskrive en skjøteavhengighet på er å si at relasjonene i skjøteavhengigheten er uavhengige av hverandre. I motsetning til [[Funksjonell avhengighet|funksjonelle avhengigheter]] er det ingen [[Korrekthet (logikk)|korrekt]] og [[Fullstendighet (logikk)|komplett]] [[aksiom]]atisering for skjøteavhengigheter,<ref>{{cite journal|first=S. V.|last=Petrov|title=Finite axiomatization of languages for representation of system properties|url=https://archive.org/details/sim_information-sciences_1989-04_47_3/page/n160|journal=Information Sciences|volume=47|pages=339–372|year=1989|doi=10.1016/0020-0255(89)90006-6}}</ref> selv om aksiomatisering eksisterer for mer uttrykksfulle avhengighetsspråk, som for eksempel [[Full typed dependencies|fullt typiserte avhengigheter]].<ref name="Abiteboul">{{Kilde bok|url=https://archive.org/details/foundationsofdat0000abit|tittel=Foundations of databases|etternavn=Abiteboul|etternavn2=Hull|etternavn3=Vianu|dato=1995|utgiver=Addison-Wesley|isbn=9780201537710}}</ref>{{Rp|kapittel 8}} Imidlertid er implikasjon av skjøteavhengigheter [[Avgjørbarhet|avgjørbar]].<ref name="Abiteboul" />{{Rp|teorem 8.4.12}} == Formell definisjon == La <math>R</math> være et relasjonsskjema og la <math>R_1, R_2, \ldots, R_n</math> være en nedbryting av <math>R</math>. Relasjonen <math>r(R)</math> ''tilfredsstiller'' skjøteavhengigheten: : <math>*(R_1,R_2,\ldots,R_n)</math> hvis <math>\bowtie_{i = 1}^n \Pi_{R_i}(r) = r.</math> En skjøteavhengighet er triviell hvis en av <math>R_i</math> selv er <math>R</math>.<ref>{{Kilde bok|tittel=Database System Concepts|etternavn=Silberschatz|fornavn=Korth|utgave=1st}}</ref> En [[Aritet|binær]] skjøteavhengighet kalles [[Multivaluert avhengighet|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 <math>X \twoheadrightarrow Y</math> [[hvis og bare hvis]] ''R'' tilfredsstiller <math>*(X\cup Y, X\cup(U-Y)).</math> == Eksempel == 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 å [[Databasenormalisering|normalisere]] et databaseskjema. == Se også == * [[Chase (algoritme)|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 == <references /> {{Databasenormalisering}} [[Kategori:Databaser]]
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Maler som brukes på denne siden:
Mal:Cite journal
(
rediger
)
Mal:Databasenormalisering
(
rediger
)
Mal:Hlist/styles.css
(
rediger
)
Mal:ISOtilNorskdato
(
rediger
)
Mal:Kilde artikkel
(
rediger
)
Mal:Kilde bok
(
rediger
)
Mal:Navbox
(
rediger
)
Mal:Rp
(
rediger
)
Modul:Arguments
(
rediger
)
Modul:Citation/CS1
(
rediger
)
Modul:Citation/CS1/COinS
(
rediger
)
Modul:Citation/CS1/Configuration
(
rediger
)
Modul:Citation/CS1/Date validation
(
rediger
)
Modul:Citation/CS1/Identifiers
(
rediger
)
Modul:Citation/CS1/Utilities
(
rediger
)
Modul:Citation/CS1/Whitelist
(
rediger
)
Modul:ISOtilNorskdato
(
rediger
)
Modul:Navbar
(
rediger
)
Modul:Navbar/configuration
(
rediger
)
Modul:Navbar/styles.css
(
rediger
)
Modul:Navbox
(
rediger
)
Modul:Navbox/configuration
(
rediger
)
Modul:Navbox/styles.css
(
rediger
)
Modul:TableTools
(
rediger
)
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon