Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Normalformer – avleggs?

Liknende presentasjoner


Presentasjon om: "Normalformer – avleggs?"— Utskrift av presentasjonen:

1 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

2 Edgar Codd 1923 - 2003 Født i Dorset, England Studerte matte på Oxford
Ansatt i IBM i 1948 Utvikla teorien om relasjonsdatabaser Offentliggjort i 1970, seinere bearbeida videre

3 Attributtene i en tabell skal være atomiske!!
Normalformer Første normalform: Attributtene i en tabell skal være atomiske!! Hva mener du? Atomiske?? Det betyr at et attributt bare skal inneholde en verdi, kjære Watson!

4 Stikkord: Semantisk betydning!
Brudd på 1NF Se på denne tabellen: Ikke atomiske: Person Pnr Navn Adresse Venner Fagområder Venner: Per, Pål, Espen Fagområder: Matematikk, informatikk Hva med disse da? Navn: Ari Ben Laden Adresse: Kirkeveien 2C, oppgang D Stikkord: Semantisk betydning!

5 For å forstå hva 2NF og 3NF er, må vi definere termen:
Normalformer For å forstå hva 2NF og 3NF er, må vi definere termen: Funksjonell avhengighet Gitt fornavnet. Da er verdiene i de andre attributtene også gitt. Familiemedlem Fornavn Fødedato Kjønn Øyenfarge (Fornavn) -> (Fødedato, Kjønn, Øyenfarge) 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!

6 Andre normalform: (Skapt for å handtere sammensatte nøkler!)
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!! Bilkjøp *Pnr *Bilnr Kjøpedato Fornavn Pris I denne tabellen er Fornavn bare funksjonelt avhengig av Pnr. (Pnr) -> (Fornavn)

7 (Pnr) -> (Postnr) -> (Stedsnavn)
Normalformer Tredje normalform: Tabellen skal være på 2NF og ikke inneholde noen transitivt funksjonelle avhengigheter!! Person Pnr Fornavn Etternavn Adresse Postnr Stedsnavn Stedsnavnet er bestemt av Pnr via Postnr! (Pnr) -> (Postnr) -> (Stedsnavn) Det er hva vi kaller transitiv avhengighet.

8 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!

9 Utfordringene som elevene møter
Fra en lang tekst til en modell Bil 1 Person Elevene må velge ut riktige ord i en tekstoppgave Ordene må settes sammen til en datamodell Krever både evne til abstrahering og strukturering

10 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!

11 Fenomener kan du se, høre og/eller føle.
Definisjon av tabell Katt En tabell er en symbolsk modell av et fenomen. Fenomener kan du se, høre og/eller føle. Konkrete fenomener: Person, mobil Abstrakte fenomener: Forestilling, besøk, skoletime

12 Definisjon av attributt
Katt Navn Fødeår Kjønn Øyenfarge 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.

13 Strategi for å finne egenskaper
Katt Navn Fødeår Kjønn Øyenfarge 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.

14 Skille fenomener og egenskaper
Finn ord som er fenomener: Bok, personnr, reise, Edgar, fest, spørsmål Finn ord som er egenskaper: Tog, etternavn, aroma, kuhorn, sinne, følehår Knep: Finner vi egenskaper til ordet? Kan vi oppleve det?

15 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!

16 Definisjon av relasjon
En relasjon er en rolle som to tabeller deler. eier Person Bil kjøper Andre roller: Stjeler, kjører, bli påkjørt av… Rollenavnet bestemmer kardinaliteten!

17 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.

18 Bruk av rollenavnet Bil Person Bilkjøp Person Bil
kjøper Bil Bilnr Person Pnr Rollenavnet danner basis for navnet på den nye tabellen: Bilkjøp *Pnr *Bilnr Kjøpedato Pris Person Pnr 1 Bil Bilnr Bruker metafor: Bilkjøp er et ”ektefødt barn”.

19 Sammensatt nøkkel eller ikke?
Hva hvis vi erstatter den sammensatte nøkkelen med et ”autonummer”… Problem 1: Da tillater vi nullverdier i for eksempel Pnr Bilkjøp Bilkjøpnr *Pnr *Bilnr Kjøpedato Pris Vi kan løse det ved å si satte Obligatorisk: Ja Problem 2: Vi kan registrere verdier helt fritt! Tabellen har alternativ nøkkel, noe Access ikke støtter…

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

21 Problemet med ikke atomisk
Person Pnr Navn Adresse Venner Fagområder 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? En person har adresse. ”Har” er upresist. Vi kan også si: En person bor på adresse.

22 Problemet med 2NF og 3NF Et bilkjøp har ikke fornavn!
*Pnr *Bilnr Kjøpedato Fornavn Pris Et bilkjøp har ikke fornavn! Fornavn er ingen egenskap til et bilkjøp. Person Pnr Fornavn Etternavn Adresse Postnr Stedsnavn En person har ikke stedsnavn! Stedsnavn er ingen egenskap til en person.

23 Hva er repeterende felt
Endelig skal vi se på det, Watson! Merk telefon_nummerne. Anta at det plutselig dukker opp en ny form for telefon…. Hva nå? Person Pnr Tlf_hjemme Tlf_jobb Tlf_sommerhus Ring dataleverandøren! Han legger inn et nytt attributt til den nette sum av kr… Hvordan forklarer C. J. Date at repeterende felt er feil? ”Det er bare sånn at databasen da ikke er normalisert!”

24 Hvordan unngå repeterende felt
Telefon Tlf_hjemme Tlf_jobb Tlf_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_nummer Type

25 Konklusjon Ved å definere ordene tabell, attributt og relasjon oppnår vi: 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.

26 Lykke til på reisen hjem…
Dere kan nå meg på:


Laste ned ppt "Normalformer – avleggs?"

Liknende presentasjoner


Annonser fra Google