Normalisering Framstillingen avviker noe fra læreboka,

Slides:



Advertisements
Liknende presentasjoner
GoOnline XP publisering Hvordan komme i gang med GoOnline XP. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline.
Advertisements

Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Tabeller av objekter Klassen ArrayList
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
“Tenk over dette...” Klikk med mus eller piltaster for neste bilde...
Mange til mange sammenhengen
Kap 02 Relasjonsdatabaser
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Normalisering Formell teori for å forbedre relasjonsskjema design, unngå redundans. 2 hovedretninger : Syntese og Dekomposisjon Basert på funksjonelle.
Normalisering og andre modelleringsmetoder
SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Normalisering av objektorienterte systemer
Databaseteori.
1 Kap 04 Datamodellering. 2 Datamodellering -Et språk for å analysere og beskrive virkeligheten. -En metode for å beskrive naturlige sammenhenger i data.
Normalformer – avleggs?
Levende HMS-system – hva betyr det i praksis?
Oppgave 01 1NFFørste normalform ä Hver tabell skal ha en fast postlengde ä Det skal være kun en post-type pr tabell ä Hver post skal ha et eget identifikasjons-felt.
Gjenfinningssystemer og verktøy II
Module 4: Company Investment Decisions Using the WACC
Eksempel AOA (Activity On Arc)
Kompleksitetsanalyse
Transformasjoner Men hva hvis relasjonen er kurvelinjær?
Mer grunnleggende matte: Forberedelse til logistisk regresjon
Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.
Relasjonsmodellen og relasjonsalgebra
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
Relasjonsmodellen, del II
Se ellers læreboka, kap , side
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Siste forelesning ER/EER-modellering
Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
In 135 Datamodellering og databaser Introduksjon, Enkeltentiteten, Informasjon Ola Bø.
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
1 Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt Ansatte Pasienter Utstyr Økonomi Avdelinger RøntgenOnkologisk.
Kap 04 Datamodellering. Datamodellering -Et språk for å analysere og beskrive virkeligheten. -En metode for å beskrive naturlige sammenhenger i data som.
Kap 10 Graf.
Teknikker for å bedre design- prosessen -Design by contract -Prototyping design -Fault-tree analyses.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Forskningsrapporten Frode Svartdal UiT.
Halvor Hanisch Postdoktor OUS
Kjell Arne Iversen, Thore Nilsen
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
Structured Query Language Kræsj-kurs
ER-modellen, notasjon ENTITETS- Attributter TYPE Relasjon
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
Konfigurasjonsstyring Configuration Management
Kapittel 2: Investeringsanalyse
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
De 222 mest brukte ordene i det norske språket..
Se ellers læreboka, kap , side
Objektorientert utforming In 140 Sommerville kap. 12.
Trekkstrukturer Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,… Defineres som en DAG (directed acyclic graph), det vil si en.
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Systemmodeller In 140 Forelesning nr. 9 Sommerville kap. 7.
Forelesning 5 HSTAT1101 Ola Haug Norsk Regnesentral
Objektorientert design In 140 Sommerville kap 12 – del 1.
INF1300 Introduksjon til databaser
INF1300 Introduksjon til databaser
INF1300 Introduksjon til databaser
SIV : Ett gjennomsnitt Kapittel /12/2018 Fred Wenstøp.
Utskrift av presentasjonen:

Normalisering Framstillingen avviker noe fra læreboka, Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform (1NF) side 7 Andre normalform (2NF) side 8-9 Tredje normalform (3NF) side 10 Generelle definisjoner av 2NF og 3NF side 11-13 Boyce-Codd normalform (BCNF) side 13-15 Framstillingen avviker noe fra læreboka, der normalisering gjennomgås i kapittel 3. Else Lervik, oktober 2011

Datamodellering og databaser Else Lervik, oktober 2011 Hva er normalisering? Normalisering er en formell metode for å designe relasjonsdatabaser Mål: Å unngå unødvendig dobbeltlagring av data (redundans) pga dobbeltlagring lett fører til inkonsistente data. Dobbeltlagring er kun nødvendig for å kople tabeller sammen (referanseintegritet, primærnøkkel – fremmednøkkel) Middel: Dele opp eksisterende tabeller Normaliseringen legger stor vekt på å finne kandidatnøkler. Det stilles formelle krav til sammenhengen mellom attributtene i en tabell. Jo strengere krav, desto høyere normalform. 1NF, 2NF, 3NF, BCNF, 4NF, 5NF,…? 4NF og 5NF kun av teoretisk betydning. Gjennomgås ikke. Datamodellering og databaser Else Lervik, oktober 2011

Normaliseringens plass i utviklingsprosessen Som kvalitetssikring: For å forstå en eksisterende database: Relasjonsmodell basert på EER-diagram Normalisering ”Enda bedre” relasjonsmodell Et sett med tabeller Klargjør funksjonelle avhengigheter Grunnlag for å lage EER-modell Datamodellering og databaser Else Lervik, oktober 2011

Har fått følgende dataeksempel til vurdering lev_nr lev_navn status lev_by prod_nr, antall 1 Svendsen 20 Lillehammer (1, 300), (2, 200), (3, 400), (4, 200), (5, 100), (6, 100) 2 Jensen 30 Porsgrunn (1, 300), (2, 400) 3 Bø (2, 400) 4 Christiansen (2, 200) Det er fullt mulig å ta tak i dette via EER-modellering, men vi velger normalisering ettersom dataene allerede er gitt på tabellform. Kan vi bruke denne tabellen i databasen? Skal gjennomgå Codds tre-trinns-prosess (1972) 1NF  2NF  3NF Forutsetter kun én kandidatnøkkel. Datamodellering og databaser Else Lervik, oktober 2011

Funksjonell avhengighet Gitt en relasjon R med (bl.a.) attributtene X og Y. X og Y kan være sammensatte. Y er funksjonelt avhengig (f.a.) av X hvis og bare hvis det til hver X-verdi er assosiert eksakt en Y-verdi. R.X ---> R.Y Eller: X bestemmer (”determinerer”) Y. X er en determinant. Eks.: leveranse1.lev_nr ---> leveranse1.status leveranse1. lev_nr ---> leveranse1. (lev_navn, status) leveranse1.(lev_nr, lev_navn) ---> leveranse1.lev_by Dersom X er en supernøkkel må alle de øvrige attributtene være funksjonelt avhengig av X. Y er fullt funksjonelt avhengig (f.f.a.) av X, hvis den er funksjonelt avhengig av X, og det ikke fins en delmengde Z av X som Y er funksjonelt avhengig av. Eks.: leveranse1.(lev_nr, lev_navn) ---> leveranse1.lev_by f.a., men ikke f.f.a. leveranse1.(lev_nr) ---> leveranse1.lev_by f.f.a. (og dermed f.a.) Heretter betyr f.a. det samme som f.f.a. Datamodellering og databaser Else Lervik, oktober 2011

Viser funksjonelle avhengigheter i et diagram lev_by status lev_nr lev_navn Dette er en modell av virkeligheten. prod_nr antall Merk at lev_by bestemmer status! Datamodellering og databaser Else Lervik, oktober 2011

Første normalform (1NF) Første normalform (1NF): Det eksisterer en primærnøkkel, og ingen del av denne er NULL. Tabellen inneholder ikke repeterende grupper. - Kun én verdi i hver rute i tabellen. Tabellen foran ser slik ut på 1NF: lev_nr lev_navn status lev_by prod_nr antall 1 Svendsen 20 Lillehammer 300 2 200 3 400 4 5 100 6 Jensen 30 Porsgrunn Bø Christiansen Hva er primærnøkkelen? Problemer med oppdatering? Datamodellering og databaser Else Lervik, oktober 2011

Datamodellering og databaser Else Lervik, oktober 2011 Andre normalform (2NF) Andre normalform (2NF): En relasjon er på 2NF hvis og bare hvis den er på 1NF, og den ikke inneholder partielle avhengigheter (en ikke-nøkkel-attributt er f.a. av en del av primærnøkkelen). Fra 1NF til 2NF: Splitt opp relasjonen i flere nye relasjoner slik at partielle avhengigheter unngås. (”Ingen piler krysser bokser”) lev_by lev_nr lev_nr antall status lev_navn prod_nr Datamodellering og databaser Else Lervik, oktober 2011

Splitter 1NF-tabellen i to lev_nr prod_nr antall 1 300 2 200 3 400 4 5 100 6 lev_nr lev_navn status lev_by 1 Svendsen 20 Lillehammer 2 Jensen 30 Porsgrunn 3 Bø 4 Christiansen Hva er primærnøklene i disse to tabellene? Splitter ved å foreta en projeksjon. En naturlig forening bringer relasjonene tilbake til utgangspunktet. De nye tabellene kan inneholde mer informasjon enn de opprinnelige, men ikke mindre. Problemer med oppdatering? Datamodellering og databaser Else Lervik, oktober 2011

Tredje normalform (3NF) Fra 2NF til 3NF: Transitive avhengigheter fjernes. Transitiv avhengighet: lev_nr  lev_by  status, det vil si lev_nr  status Tredje normalform (3NF): En relasjon er på 3NF, hvis og bare hvis den er på 2NF, og den ikke inneholder transitive avhengigheter. (”Alle piler utgår fra primærnøkkelen.”) lev_by lev_by status lev_nr lev_navn lev_by status Lillehammer 20 Porsgrunn 30 lev_nr lev_navn lev_by 1 Svendsen Lillehammer 2 Jensen Porsgrunn 3 Bø 4 Christiansen Hva er primærnøklene i disse to tabellene? Problemer med oppdatering? Datamodellering og databaser Else Lervik, oktober 2011

Generelle definisjoner av 2NF og 3NF Hva hvis flere kandidatnøkler? 2NF En relasjon er på 2NF hvis og bare hvis den er på 1NF, og den ikke inneholder partielle avhengigheter (en ikke-nøkkel-attributt er f.a. av en del av en kandidatnøkkel). 3NF En relasjon er på 3NF, hvis og bare hvis den er på 2NF, og den ikke inneholder transitive avhengigheter, dvs at det ikke fins ikke-nøkkelattributter som er funksjonelt avhengig av andre ikke-nøkkelattributter. Datamodellering og databaser Else Lervik, oktober 2011

Eksempel med flere kandidatnøkler Anta at også lev_navn entydig identifiserer en leverandør. Ellers noe forenklet: To kandidatnøkler: (lev_nr, prod_nr) (lev_navn, prod_nr) lev_navn lev_nr prod_nr Sjekk mot de generelle definisjonene av 2NF og 3NF antall Datamodellering og databaser Else Lervik, oktober 2011

Eksempel med flere kandidatnøkler, forts lev_nr lev_navn prod_nr antall 1 Svendsen 300 2 200 3 400 4 5 100 6 Jensen Bø Christiansen lev_navn lev_nr prod_nr antall Problemer med oppdatering? Datamodellering og databaser Else Lervik, oktober 2011

Boyce-Codd normalform (BCNF) Boyce-Codd normalform (BCNF): En relasjon tilfredsstiller BCNF hvis enhver determinant er en kandidatnøkkel. Hvis en tabell har bare én kandidatnøkkel, er 3NF og BCNF ekvivalente. To kandidatnøkler: (lev_nr, prod_nr) (lev_navn, prod_nr) lev_navn lev_nr prod_nr Er BCNF oppfylt? antall Datamodellering og databaser Else Lervik, oktober 2011

Splitter slik at BCNF er tilfredsstillt lev_nr prod_nr antall 1 300 2 200 3 400 4 5 100 6 lev_nr lev_navn 1 Svendsen 2 Jensen 3 Bø 4 Christiansen Kandidatnøkler i disse tabellene? Konklusjon: Unødvendig å gå gjennom 1NF 2NF3NF prosessen. I praktisk arbeid er det nok å sjekke at BCNF er oppfylt. BCNF kan også brukes dersom de tre kravene midt på side 93 i læreboka ikke er oppfylt. Datamodellering og databaser Else Lervik, oktober 2011