normalformer – avleggs?

26
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:

Upload: nickan

Post on 09-Jan-2016

29 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: Normalformer – avleggs?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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?

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:

Page 26: Normalformer – avleggs?

Lykke til på reisen hjem…

Dere kan nå meg på: [email protected]