Relasjonsdatabaser Flashcards
integritetsregel
Alle integritetsregler er i form av funksjonelle avhengigheter (+ domeneskranker og fremmednøkler)
- Entity Integrity (unike, ikke-tomme primærnøkler)
- Reference integrity (fremmednøkler)
- Business integrity (gullkort = 10 reisetimer)
- Domain integrity (verditype)
Påkrevde integritetsregler i relasjonsdatabaser:
- Entitetsintegritet: Alle relasjonsskjemaer skal ha en og bare en primærnøkkel. Ingen av attributtene i primærnøkkelen får være nil.
- Referanseintegritet: Hvis fremmednøkkelen ikke er nil, så skal det finnes et tuppel i den refererte relasjonen hvor primærnøkkelen har samme verdi som fremmednøkkelen.
krav til dekomposisjoner
Dekomposisjon av relasjoner må gjøres på en måte som sikrer at vi kan gjenskape den opprinnelige instansen ved natural join.
Altså kan ingen falske tupler generes ved join.
normalformer
Normalformer er et uttrykk for hvor godt vi har lykkes i en dekomposisjon. At et skjema er på en normalform, sikrer at visse typer dobbeltlagring ikke forekommer. Jo høyere normalform, jo mindre dobbelt lagring.
supernøkkel
En supernøkkel er et sett med attributter som unikt identifiserer en rad.
En kombinasjon (delmengde) X av attributtene {A1, A2, …, An} som er slik at hvis t og u er to tupler hvor t != u, så er t[X] != u[X]
nøkkelattributter
Nøkkelattributter er attributter som er med i (minst) én kandidatnøkkel.
dataattributter
Dataatributter er attributter som ikke er med i noen kandidatnøkkel.
- normalform
Bare atomære verdier/attributter
- normalform
1NF + ingen partielle avhengigheter
En relasjon R er 2NF hvis enhver ikke-triviell FD X→A (hvor X⊆R og A∈R) tilfredsstiller minst ett av følgende:
– X er en supernøkkel
– A er et nøkkelattributt
– X⊄W for noen kandidatnøkkel W i R
R bryter 2NF hvis det finnes en ikke-triviell FD X→A hvor A er et ikke-nøkkelattributt og det finnes en kandidatnøkkel W slik at X⊂W (ekte delmengde).
- normalform
2NF + ingen transitive avhengigheter
Gitt en relasjon R, med et sett av FDer på formen X -> A, der X og A er et sett av attributter.
- X er en supernøkkel i R
- A er et nøkkelattributt
R bryter 3NF hvis det finnes en ikketriviell FD X→A hvor A er et ikke-nøkkelattributt og X ikke er en supernøkkel.
BCNF
(Boyce-Codd-normalform)
3NF + alle minste determinanter er kandidatnøkler
Gitt en relasjon R, med et sett av FDer på formen X -> A, der X og A er et sett av attributter.
- X er en supernøkkel i R
R bryter BCNF hvis det finnes en ikketriviell FD X→A hvor X ikke er en supernøkkel.
funksjonell avhengighet
Et attributt er funksjonelt avhengig av et annet hvis det bestemmes av det andre attributtet.
Klassisk eksempel:
Postnr -> Sted
database
En database er en strukturert samling av relaterte (og persistente) data, håndtert av et DBMS.
DBMS
Databasehåndteringssystemet er programvaren som administrerer systemet.
- Håndterer transaksjoner
- Tilbyr API (Programmeringsgrensesnitt)
Hvorfor ikke bare lagre dataene i vanlige filer?
- Støtte ulike typer data
- Støtte lesing/skriving fra flere og ulike systemer samtidig
det første spørsmålet man bør stille seg når man skal modellere en database
Hvilke spørsmål skal kunne besvares i databasen?