normalformer – avleggs?
DESCRIPTION
Normalformer – avleggs?. Jeg skal snakke om:. Edgar Codd – hvem var han? Normalformene opp til 3NF Hva som er feil med dem Mine egne definisjoner Om pedagogikk Om modellering. Edgar Codd 1923 - 2003. Født i Dorset, England Studerte matte på Oxford Ansatt i IBM i 1948 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/1.jpg)
Normalformer – avleggs?
Edgar Codd – hvem var han? Normalformene opp til 3NF Hva som er feil med dem Mine egne definisjoner Om pedagogikk Om modellering
Jeg skal snakke om:
![Page 2: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/2.jpg)
Edgar Codd 1923 - 2003
1. Født i Dorset, England2. Studerte matte på Oxford3. Ansatt i IBM i 19484. Utvikla teorien om relasjonsdatabaser 5. Offentliggjort i 1970, seinere bearbeida
videre
![Page 3: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/3.jpg)
Normalformer
Attributtene i en tabell skal være atomiske!!
Første normalform:
Hva mener du? Atomiske??
Det betyr at et attributt bare skal inneholde en verdi, kjære Watson!
![Page 4: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/4.jpg)
Brudd på 1NF
• Navn: Ari Ben Laden
• Adresse: Kirkeveien 2C, oppgang D
Ikke atomiske:• Venner: Per, Pål, Espen
• Fagområder: Matematikk, informatikkHva med disse da?
Se på denne tabellen:
Person
PnrNavnAdresseVennerFagområder
Stikkord: Semantisk betydning!
![Page 5: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/5.jpg)
Normalformer
For å forstå hva 2NF og 3NF er, må vi definere termen:
Familiemedlem
FornavnFødedatoKjønnØyenfarge
(Fornavn) -> (Fødedato, Kjønn, Øyenfarge)
Gitt fornavnet. Da er verdiene i de andre attributtene også gitt.
Vi ser at for eksempel fødedatoen er funksjonelt avhengig av fornavnet.
Vi må forstå hva FA betyr for å finne riktig PN i en tabell!
Funksjonell avhengighet
![Page 6: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/6.jpg)
Normalformer
Andre normalform:(Skapt for å handtere sammensatte nøkler!)
Tabellen skal være på 1NF og alle vanlige attributter i en tabell skal være funksjonelt avhengig av HELE primærnøkkelen!!
I denne tabellen er Fornavn bare funksjonelt avhengig av Pnr.
(Pnr) -> (Fornavn)
Bilkjøp
*Pnr*BilnrKjøpedatoFornavnPris
![Page 7: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/7.jpg)
Normalformer
Tredje normalform:Tabellen skal være på 2NF og ikke inneholde noen transitivt funksjonelle avhengigheter!!Person
PnrFornavnEtternavnAdressePostnrStedsnavn
Det er hva vi kaller transitiv avhengighet.
(Pnr) -> (Postnr) -> (Stedsnavn)
Stedsnavnet er bestemt av Pnr via Postnr!
![Page 8: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/8.jpg)
Hva er galt med normalformene?
De passer ikke inn med de utfordringene som vi gir våre elever!
De er REGLERRRRRRRR, ikke definisjoner. De kan ikke forklare hvorfor repeterende
felt er feil.
Hva mener du? Repeterende felt??
Vær tålmodig, Watson! Vi tar et punkt av gangen!
![Page 9: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/9.jpg)
Utfordringene som elevene møter
Elevene må velge ut riktige ord i en tekstoppgave Ordene må settes sammen til en datamodell Krever både evne til abstrahering og strukturering
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bil 1
Person
Fra en lang tekst til en modell
![Page 10: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/10.jpg)
Grunnleggende definisjoner
Tre sentrale begreper, men da må vi definere disse for elevene!
Gjør vi det induktivt eller deduktivt? Induktivt - fra det konkrete til det abstrakte
- er mest gunstig… Men ikke når det gjelder definisjoner,
Watson!
![Page 11: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/11.jpg)
Definisjon av tabell
En tabell er en symbolsk modell av et fenomen.
Katt
Fenomener kan du se, høre og/eller føle.
Konkrete fenomener: Person, mobil
Abstrakte fenomener: Forestilling, besøk, skoletime
![Page 12: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/12.jpg)
Definisjon av attributt
Et attributt er en egenskap som et fenomen HAR.
Egenskapen er nært knytta til fenomenet.
Vi bruker egenskaper som gjelder generelle for alle katter, ikke slike som er spesielle for en katt.
Katt
NavnFødeårKjønnØyenfarge
![Page 13: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/13.jpg)
Strategi for å finne egenskaper
En katt har navn.
En katt har fødeår.
En katt har kjønn.
Men hva med disse to?
En katt har øyne.
En katt har øyenfarge.
Nært knytta til: egenskapen ikke kan sees uten fenomenet.
Katt
NavnFødeårKjønnØyenfarge
![Page 14: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/14.jpg)
Skille fenomener og egenskaper
Finn ord som er fenomener:
Bok, personnr, reise, Edgar, fest, spørsmål
Knep:
Finner vi egenskaper til ordet?
Kan vi oppleve det?
Finn ord som er egenskaper:
Tog, etternavn, aroma, kuhorn, sinne, følehår
![Page 15: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/15.jpg)
Grunnleggende definisjoner
Helhetlig kunnskap???? Alt må stykkes opp. Kunsten er hvordan! Derfor venter vi med å lære relasjoner. Elevene lager databaser med mange
tabeller uten sammenheng. Noen elever aner at noe mangler. Motivasjon for å lære mer oppstår!
![Page 16: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/16.jpg)
Definisjon av relasjon
En relasjon er en rolle som to tabeller deler.
eierPerson Bil
Andre roller: Stjeler, kjører, bli påkjørt av…
kjøper
Rollenavnet bestemmer kardinaliteten!
![Page 17: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/17.jpg)
Eksempler på kardinalitet
En til en: Et land har et nasjonalflagg.
En til mange: Et land har mange byer.
Mange til mange:
Et person kan kjøpe mange biler.
En bil kan bli kjøpt av mange personer.
Metafor:Tabellen på den enslige sida kaller vi modertabell.Tabellen på mangesida kaller vi barnetabell.
![Page 18: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/18.jpg)
kjøper
BilBilnr
PersonPnr
Bruk av rollenavnet
Rollenavnet danner basis for navnet på den nye tabellen:
Bruker metafor: Bilkjøp er et ”ektefødt barn”.
BilBilnr
Bilkjøp
*Pnr*BilnrKjøpedatoPris
PersonPnr
1 1
![Page 19: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/19.jpg)
Sammensatt nøkkel eller ikke?
Hva hvis vi erstatter den sammensatte nøkkelen med et ”autonummer”…
Bilkjøp
Bilkjøpnr*Pnr*BilnrKjøpedatoPris
Problem 1:
Da tillater vi nullverdier i for eksempel Pnr
Vi kan løse det ved å si satte Obligatorisk: Ja
Problem 2:
Vi kan registrere verdier helt fritt!
Bilkjøpnr Pnr Bilnr Kjøpedato Pris1 1 DA 123456 01.01.2004 150 0002 1 DA 123456 01.01.2004 150 000
Tabellen har alternativ nøkkel, noe Access ikke støtter…
![Page 20: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/20.jpg)
Et pust i bakken
Vi har sett hva normalformer duger til Vi har definert tre basisbegreper La oss se på hvordan disse kan takle
problemene med å normalisere:
![Page 21: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/21.jpg)
Problemet med ikke atomisk
Venner er ikke een egenskap, men flere i en.
Heller ikke er det egenskap til en person!
Heller ikke fagområder. Men hva med adresse?
Person
PnrNavnAdresseVennerFagområder
En person har adresse. ”Har” er upresist. Vi kan også
si: En person bor på adresse.
![Page 22: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/22.jpg)
Problemet med 2NF og 3NF
Et bilkjøp har ikke fornavn! Fornavn er ingen
egenskap til et bilkjøp.
En person har ikke stedsnavn!
Stedsnavn er ingen egenskap til en person.
Bilkjøp
*Pnr*BilnrKjøpedatoFornavnPris
Person
PnrFornavnEtternavnAdressePostnrStedsnavn
![Page 23: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/23.jpg)
Hva er repeterende felt
Merk telefon_nummerne.
Anta at det plutselig dukker opp en ny form for telefon…. Hva nå?
Endelig skal vi se på det, Watson!
PersonPnrTlf_hjemmeTlf_jobbTlf_sommerhus
Hvordan forklarer C. J. Date at repeterende felt er feil?
”Det er bare sånn at databasen da ikke er normalisert!”
Ring dataleverandøren! Han legger inn et nytt attributt til den nette sum av 10 00 kr…
![Page 24: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/24.jpg)
Hvordan unngå repeterende felt
Telefon
Tlf_hjemmeTlf_jobbTlf_sommerhus
Et telefon-nummer er egenskap…
Men ikke til en person!
Vi nærmer oss løsningen:
En telefon kan ikke ha flere numre! Ergo:
Telefon
Tlf_nummerType
![Page 25: Normalformer – avleggs?](https://reader035.vdocuments.pub/reader035/viewer/2022070406/568140e6550346895dacb434/html5/thumbnails/25.jpg)
Konklusjon
Elevene lærer på en intuitiv måte, ikke instrumentuell.
Elevene klarer å finne de rette ordene i en tekstoppgave.
De klarer å skape løsninger på 3NF uten å bruke regelverket til Codd.
Ved å definere ordene tabell, attributt og relasjon oppnår vi: