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?
Grov skisse av trinnene i utformingen av en database
- Kartlegg interesseområdet
- Avdekk begreper og relasjoner mellom dem
- Beskriv disse i et modelleringsspråk
- Implementer modellen/tabellene
en henvendelse fra en klient til et DBMS
(skrive-/lese-)transaksjon
domene
En mengde atomære verdier (altså kan elementene ikke være mengder).
attributt
Et navn på en rolle spilt av et domene. (altså en “kolonne”)
Hvis A er et attributt, skriver vi dom(A) = D for å uttrykke at A er en rolle spilt av domenet D.
relasjonsskjema
R(A1, A2, …, An): En navngitt mengde attributter R = {A1, A2, …, An} der R er relasjonsnavnet. n kalles relasjonens grad eller aritet.
instans av et relasjonsskjema R(A1, A2, …, An):
En mengde {t1, t2, …, tm} der hver tk er et n-tuppel av verdier fra domenene til A1, A2, …, An. (altså en “rad”)
Dersom t er et tuppel i en instans av R(A1, A2, …, An) og t = , så er f.eks. t[A2] = og t[A3, A1, A5] = .
relasjon, intensjon, ekstensjon
Et relasjonsskjema med en tilhørende instans. Relasjonsskjemaet kalles relasjons intensjon.
Instansen kalles relasjonens ekstensjon.
kandidatnøkkel
en minimal supernøkkel
Fjerning av et hvilket som helst attributt fører til at de gjenværende attributtene ikk lenger utgjør en supernøkkel.
fremmednøkkel
ett eller flere attributter som refererer et tuppel i en annen relasjon
Fremmednøkkelen må ha samme antall attributter som primærnøkkelen i den relasjonen den peker ut, og attributtene må ha parvis samme domener.
relasjonsdatabaseskjema
samling av relasjonsskjamer + integritetsregler
relasjonsdatabaseinstans
samling av relasjonsinstanser
relasjonsdatabse
relasjonsdatabaseskjema + relasjonsdatabaseinstans
Hva kjennetegner god relasjonsdatabasedesign?
- Relasjonene samler beslektet informasjon
- Lite dobbeltlagring
- Få “glisne” relasjoner
- Korrekt totalinformasjon kan gjenskapes nøyaktig ved join
oppdateringsanomalier
Insettingsanomalier: - Opprettholde konsistente verdier - Håndtere sekundær informasjon - Håndtere nil i kandidat- og fremmednøkler Slettingsanomalier: - Unngå tap av sekundær informasjon Modifiseringsanomalier: - Opprettholde konsistente verdier - Oppdatere sekundær informasjon
Hvordan unngå dobbeltlagring?
Splitt (dekomponer) relasjonene
Brudd på Boyce-Codd, men ikke på 3NF
FD X→A hvor A er et nøkkelattributt og X ikke inneholder en kandidatnøkkel.
normalisering
dekomponere relasjoner med lav normalform til relasjoner med høyere normalform
ulempe med BCNF
kan få FDer på tvers av relasjonene