23.11.2013 Views

Fjerde normalform.pdf

Fjerde normalform.pdf

Fjerde normalform.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

TDT4145 Datamodellering og databasesystemer <br />

Litt om fjerde <strong>normalform</strong> <br />

Ta utgangspunkt i en litt forenklet utgave av Canons kameraunivers; der det finnes et <br />

antall kameramodeller som kan bruke et antall objektiver og et antall blitser. Vi antar <br />

at Canon har kameramodellene 1D og 7D, de har blitsene 320, 400 og 580, og de har <br />

objektivene 24 mm, 35 mm, 50 mm og 85 mm. Tabellen kompatibilitet under viser <br />

hvilke kombinasjoner av kamera, objektiver og blitser som fungerer. <br />

Kamera Objektiv Blits <br />

1D 24 mm 320 <br />

1D 35 mm 320 <br />

1D 50 mm 320 <br />

1D 85 mm 320 <br />

1D 24 mm 400 <br />

1D 35 mm 400 <br />

1D 50 mm 400 <br />

1D 85 mm 400 <br />

1D 24 mm 580 <br />

1D 35 mm 580 <br />

1D 50 mm 580 <br />

1D 85 mm 580 <br />

7D 24 mm 320 <br />

7D 35 mm 320 <br />

7D 50 mm 320 <br />

7D 85 mm 320 <br />

7D 24 mm 400 <br />

7D 35 mm 400 <br />

7D 50 mm 400 <br />

7D 85 mm 400 <br />

7D 24 mm 580 <br />

7D 35 mm 580 <br />

7D 50 mm 580 <br />

7D 85 mm 580 <br />

Side 1 av 3


I tabellen kompatibilitet er det ingen funksjonelle avhengigheter som gjelder og alle <br />

attributtene inngår derfor i primærnøkkelen som er den eneste supernøkkelen for <br />

tabellen. Tabellen er på Boyce-­‐Codd <strong>normalform</strong>, men har likevel en del uønskede <br />

egenskaper på samme måte som vi tidligere har sett med tabeller på 1. <strong>normalform</strong> <br />

eller 2. <strong>normalform</strong>. Ved innsetting av et nytt objektiv, for eksempel en 135 mm som <br />

kan benyttes med alle kamera-­‐ og blitskombinasjoner, må vi sette inn 6 nye rader i <br />

tabellen over. <br />

Det avgjørende spørsmålet i forhold til 4. <strong>normalform</strong> er om sammenhengen mellom <br />

kamera og blitser er avhengig av objektiver eller ikke (og tilsvarende om <br />

sammenhengen mellom kamera og objektiver er uavhengig av blitser). <br />

Dersom de blitsene som kan brukes med et kamera, er uavhengig av de objektivene <br />

som kan brukes på kameraet, vil vi ha to (ikke-­‐trivielle) flerverdi-­‐avhengigheter (mvd <br />

– multi value dependency): <br />

kamera -­‐>> objektiv og kamera -­‐>> blits <br />

I et slikt tilfelle vil tabellen kompatibilitet alltid inneholde alle kombinasjoner av <br />

kamera, objektiv og blits, for objektiver og blitser som passer på et bestemt kamera. <br />

Tabellen vil potensielt ha mye redundans, og den vil ikke være på 4. <strong>normalform</strong>. I et <br />

slikt tilfelle vil det være gunstig å dekomponere tabellen i komponentene <br />

objektiver(kamera, objektiv) og blitser(kamera, blits) <br />

som begge vil være på 4. <strong>normalform</strong>. Under har vi vist hvordan forekomstene av <br />

disse vil se ut med utgangspunkt i kompabilitet-­‐tabellen på forrige side. <br />

Kamera <br />

1D <br />

1D <br />

1D <br />

1D <br />

7D <br />

7D <br />

7D <br />

7D <br />

Objektiv <br />

24 mm <br />

35 mm <br />

50 mm <br />

85 mm <br />

24 mm <br />

35 mm <br />

50 mm <br />

85 mm <br />

Side 2 av 3


Kamera <br />

1D <br />

1D <br />

1D <br />

7D <br />

7D <br />

7D <br />

Blits <br />

320 <br />

400 <br />

580 <br />

320 <br />

400 <br />

580 <br />

På grunn av de to flerverdi-­‐avhengighetene vil de to tabellene alltid kunne joines <br />

tapsløst sammen til utgangspunktet. <br />

Dersom det derimot er slik at det kan finnes objektiv-­‐blits-­‐kombinasjoner som ikke <br />

fungerer for et kamera, selv om kameraet kan bruke både objektivet og blitsen, vil vi <br />

ikke ha flerverdi-­‐avhengighetene kamera -­‐>> objektiv og kamera -­‐>> blits. I et slikt <br />

tilfelle vil tabellen kompatibilitet være på 4. <strong>normalform</strong>. Vi kan heller ikke <br />

dekomponere tabellen i de to komponenttabellene (kamera-­‐objektiv og kamera-­blits)<br />

og ha tapsløst-­‐join-­‐egenskapen. <br />

Øvingsoppgave <br />

Ta utgangspunkt i tabellen Pensum(Emne, Bok, Lærer) som viser hvilke bok-­‐lærer-­emne-­‐kombinasjoner<br />

som gjelder. For vårt emne vil vi for eksempel ha radene <br />

og . <br />

Under hvilke forutsetninger vil det være hensiktsmessig å dekomponere denne <br />

tabellen i komponentene EmnePensum(Emne, Bok) og EmneLærer(Emne, Lærer)? <br />

Roger Midtstraum, 6. mars 2012 <br />

Side 3 av 3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!