Normalisering

Noen defininsjoner

Funksjonell avhengighet: Hvis A og B er attributter i relasjonen R, så er B funksjonelt avhengig av A hvis det til en gitt verdi av A alltid finnes en bestemt verdi B som A kan assosieres med.
Full funksjonell avhengighet: Hvis A og B er attributter i relasjonen R, så er B fullt funksjonelt avhengig av A hvis B er avgengig av hele A. Hvis A er et attributt, så er det alltid full funksjonell avhengighet
Transitiv avhengighet: Hvis man har en relasjon R med attributtene A, B og C så er C transitivt avhengig av A via B dersom B er funksjonelt avhengig av A, og C er funksjonelt avhengig av B og A ikke er funksjonelt avhengig av B eller C
Universalrelajonen: En tenkt relasjon som omfatter alle attributter i databasen. Danner ofte grunnlaget for normaliseringsprosessen
Superkey: Et eller flerer attributter som sammen identifiserer en entitet unikt(en relajon har minst en supernøkkel, og det er alle attributtene samlet)
Kandidatnøkkel: Minimalistiske supernøkler, dvs at man kan fjerne et attributt fra en supernøkkel og så er det fortsatt unikt

Hva er normalisering?

Når man normaliserer, starter man med en struktur som ikke er tilfredsstillende for så å bryte den ned i flere tabeller.

Et ikke tilfredsstillende relasjonsskjema/struktur har man når:

Hvilke normalformer har vi

Normaliseringsprosessen

unormalisert
Fjern ikke-atomiske verdier(verdier som må splittes opp i flere deler, repeterende grupper eller kombinasjon av de to)
1. normalform: Relajonen R er i 1. normalform hvis det i krysset mellom rad og kolonne finnes kun 1 verdi
Splitt opp partielle avhengigheter av primærnøkkelen
2. normalform: Relasjonen R er i 2. normalform hvis den er i 1. normalform og alle egenskapsattributter(ikkeprimærnøkkelattributter) er fullt funksjonelt avhengig av primærnøkkelen
Splitt opp relasjonen R for transitive avhengigheter
3. normalform Relasjonen R er i 3. normalform hvis den er i 2.normalform og ingen egenskapsattributter er transitivt avhengige av primærnøkkelen
Boyce Codd normalform Relasjonen R er i Boyce Codd normalform hvis alle determinanter( attributt eller gruppe attributter som en annen attributt er funksjonelt avhengig av) i relasjonen er kandidatnøkler

2 muligheter for databasedesign

  1. universalrelasjon + normalisering
  2. tabeller på grunnform(en tabell med bare primærnøkkel+ evt 1 attributt, kan ikke splittes opp mer) + gruppering

Viktig å huske på

Eksempel

Unormalisert

pasientregister

pasient_personnr pasientnavn pasientadr dato_besok kommentar_pasient legeid legenavn
12075622346 Arne B. Olsen Slåttveien 2, 1602 Fredrikstad 23-10-1976
30-06-1985
Kronisk bronkitt.
Kronisk bronkitt. Mye sykmeldt
1
5
Einor Ilderhaug
Ivar Juliussen
23106901038 Ilma S. Arnesen Sommerstien 3, 1621 Gressvik
Lerkeveien 10, 1203 Sarpsborg
10-02-1975
21-12-1989
 
Problemer etter nakkesleng 1987
1
7
Einor Ilderhaug
Erna Danielsen
31018734723 Eivind Moen Himlingveien 3, 1767 Halden 25-03-1988   3 Elling Pedersen

Kandidatnøkler: pasient_personnr,legeid
pasient_personnr,dato_besok,legeid
pasient_personnr
legeid
Primærnøkkel: pasient_personnr
repeterende grupper: pasientadr, kommentar_pasient, legeid, legenavn, postnr, poststed

1.normalform

pasientregister

pasient_personnr legeid dato_besok pasientnavn pasientadr pasientpostnr pasientpoststed kommentar_pasient legenavn
12075622346 1 23-10-1976 Arne B. Olsen Slåttveien 2 1602 Fredrikstad Kronisk bronkitt. Einor Ilderhaug
12075622346 5 30-06-1985 Arne B. Olsen Slåttveien 2 1602 Fredrikstad Kronisk bronkitt. Mye sykmeldt Ivar Juliussen
23106901038 1 10-02-1975 Ilma S. Arnesen Sommerstien 3 1621 Gressvik   Einor Ilderhaug
23106901038 7 21-12-1989 Ilma S. Arnesen Lerkeveien 10 1203 Sarpsborg Problemer etter nakkesleng 1987 Erna Danielsen
31018734723 3 25-03-1988 Eivind Moen Himlingveien 3 1767 Halden   Elling Pedersen

Primærnøkkel: pasient_personnr,legeid,dato_besok
Partielle avhengigheter: pasient_personnr,lege_id,dato_besok -> pasient_navn,pasientadr,kommentar
pasient_personnr -> pasient_navn, pasientadr
legeid -> legenavn

2. normalform

pasient

personnr navn adresse postnr poststed
12075622346 Arne B. Olsen Slåttveien 2 1602 Fredrikstad
23106901038 Ilma S. Arnesen Lerkeveien 10 1203 Sarpsborg
31018734723 Eivind Moen Himlingveien 3 1767 Halden
pasient_journal

personnr dato_besok legeid kommentar
12075622346 23-10-1976 1 Kronisk bronkitt.
12075622346 30-06-1985 5 Kronisk bronkitt. Mye sykmeldt
23106901038 10-02-1975 1  
23106901038 21-12-1989 7 Problemer etter nakkesleng 1987
31018734723 25-03-1988 3  
lege

legeid legenavn
1 Einor Ilderhaug
3 Elling Pedersen
5 Ivar Juliussen
7 Erna Danielsen
Transitive avhengigheter: postnr -> poststed

3. normalform

pasient

personnr navn adresse postnr
12075622346 Arne B. Olsen Slåttveien 2 1602
23106901038 Ilma S. Arnesen Lerkeveien 10 1203
31018734723 Eivind Moen Himlingveien 3 1767
pasient_journal

personnr dato_besok legeid kommentar
12075622346 23-10-1976 1 Kronisk bronkitt.
12075622346 30-06-1985 5 Kronisk bronkitt. Mye sykmeldt
23106901038 10-02-1975 1  
23106901038 21-12-1989 7 Problemer etter nakkesleng 1987
31018734723 25-03-1988 3  
lege

legeid legenavn
1 Einor Ilderhaug
3 Elling Pedersen
5 Ivar Juliussen
7 Erna Danielsen
poststed

postnr poststed
1602 Fredrikstad
1203 Sarpsborg
1767 Halden
Determinanter: personnr(pasient)
personnr,dato_besok,legeid(pasient_journal)
postnr(poststed)
legeid(lege)
Siden determinantene er de samme som kandidatnøklene,
betyr det at relasjonen vår også er i BCNF.


Et godt hjelpemiddel for å normalisere er et normaliseringsskjema.
Skjema for pasientregister

Eksempel

Unormalisert

biblitekutlaan

laanerid laanernavn laaneradr laanertlf bokid isbn boktittel forfatter kategori laanfra laantil bibliotekarid bibliotekarnavn
1 Ole Olsen Olamyra 2, 1756 Berg
Vedenveien 3, 1916 Tistedal
69187645 176-1
254-9
0-451-43278-1
3-645-76452-9
Historie
Lillebror og Kanutten
Jens Abelsen
Anne-Cath Vestly
Lokalhistorie
Barnebøker
01.03-99
11.12-00
01.04-99
11.01-01
12
1
Anna Olsen
Jens Pettersen
5 Anne Andersen Vaskernveien 3, 1767 Halden
 
Iddeveien 125, 1856 Idd
69188943
 
69194312
172-7
645-4
132-1
3-745-95452-9
9-654-29015-0
6-421-93401-6
Halden i dag
Drillo-stilen
Stell din hund
Frank Kiel Jacobsen
Arne Scheie
Einar Arnesen
Lokalhistorie
Sport
Dyrestell
23.10-97
13.09-99
13.09-00
23.11-97
13.10-99
13.10-00
1
5
1
Jens Pettersen
Thea Trondsen
Jens Pettersen

Kandidatnøkler: laanerid
laanerid,bokid,laanfra
bokid,laanfra
Primærnøkkel: laanerid
repeterende grupper: laaneradr, laanertlf, bokid, isbn, boktittel, forfatter, kategoti, laanfra, laantil, bibliotekarid, bibliotekarnavn, postnr, poststed

1.normalform

biblitekutlaan

laanerid bokid laanfra laantil laanernavn laaneradr laanerpostnr laanerpoststed laanertlf isbn boktittel forfatter kategori bibliotekarid bibliotekarnavn
1 176-1 01.03-99 01.04-99 Ole Olsen Olamyra 2 1756 Berg 69187645 0-451-43278-1 Historie Jens Abelsen Lokalhistorie 12 Anna Olsen
1 254-9 11.12-00 11.01-01 Ole Olsen Olamyra 2 1756 Berg 69187645 3-645-76452-9 Lillebror og Kanutten Anne-Cath Vestly Barnebøker 1 Jens Pettersen
5 172-7 23.10-97 23.11-97 Anne Andersen Vaskernveien 3 1767 Halden 69188943 3-745-95452-9 Halden i dag Frank Kiel Jacobsen Lokalhistorie 1 Jens Pettersen
5 645-4 13.09-99 13.10-99 Anne Andersen Vaskernveien 3 1767 Halden 69188943 9-654-29015-0 Drillo-stilen Arne Scheie Sport 5 Thea Trondsen
5 132-1 13.09-00 13.10-00 Anne Andersen Iddeveien 125 1856 Idd 69194312 6-421-93401-6 Stell din hund Einar Arnesen Dyrestell 1 Jens Pettersen

Primærnøkkel: laanerid,bokid,laanfra
Partielle avhengigheter: laanerid,bokid,laanfra -> laantil
bokid,laanfra -> laantil
laanerid -> laanernavn,laaneradr,laanertlf
bokid -> isbn,boktittel,forfatter,kategori
bibliotekarid -> bibliotekarnavn
postnr -> poststed

2.normalform

laaner

laanerid laanernavn laaneradr laanerpostnr laanertlf
1 Ole Olsen Olamyra 2 1756 69187645
5 Anne Andersen Vaskernveien 3 1767 69188943

biblitekar

bibliotekarid bibliotekarnavn
1 Jens Pettersen
5 Thea Trondsen
12 Anna Olsen

bok

bokid isbn boktittel forfatter kategori
132-1 6-421-93401-6 Stell din hund Einar Arnesen Dyrestell
172-7 3-745-95452-9 Halden i dag Frank Kiel Jacobsen Lokalhistorie
176-1 0-451-43278-1 Historie Jens Abelsen Lokalhistorie
254-9 3-645-76452-9 Lillebror og Kanutten Anne-Cath Vestly Barnebøker
645-4 9-654-29015-0 Drillo-stilen Arne Scheie Sport

utlaan

laanerid bokid laanfra laantil bibliotekarid
1 176-1 01.03-99 01.04-99 12
1 254-9 11.12-00 11.01-01 1
5 172-7 23.10-97 23.11-97 1
5 645-4 13.09-99 13.10-99 5
5 132-1 13.09-00 13.10-00 1

poststed

postnr poststed
1756 Berg
1767 Halden

Transitive avhengigheter: ingen
Determinanter: laanerid,bokid,laanfra(laaner)
bokid,laanfra(utlaan) postnr(poststed)
Siden determinantene er de samme som kandidatnøklene,
betyr det at relasjonen vår også er i 3.NF og BCNF.