Oppgave 01 1 NF Frste normalform Hver tabell
Oppgave 01 1 NF Fø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 ( ID ) * * GNavn PNr Sted Dato RNr RType Pris Hansen Olsen Nilsen 0900 Oslo 7500 Bodø 6400 Molde 07. 05 12. 06 10. 04 19. 07 01. 08 12 23 15 20 21 18 D D E E 900 700 * Pilene markerer ID-kolonne markerer kolonne-avhengighet
2 NF ä ä Andre normalform Databasen må være på 1. normalform Deler av ID skal ikke kunne være determinantfelt for andre felt, dvs deler av ID skal ikke entydig kunne bestemme verdier i et annet felt * * * GNavn PNr Sted Dato RNr RType Pris Hansen Olsen Nilsen 0900 Oslo 7500 Bodø 6400 Molde 07. 05 12. 06 10. 04 19. 07 01. 08 12 23 15 20 21 18 12 15 18 20 21 23 D E E D 900 700 800
3 NF ä ä Tredje normalform Databasen må være på 2. normalform Det må ikke eksistere noen funksjonelle avhengigheter mellom egenskapsfeltene (felter utenom ID-feltene) * * * GNavn Dato RNr GNavn Hansen Olsen Nilsen 07. 05 12. 06 10. 04 19. 07 01. 08 12 23 15 20 21 18 Hansen 0900 Olsen 7500 Nilsen 6400 * RNr Rtype * PNr Sted 0900 Oslo 7500 Bodø 6400 Molde 12 15 18 20 21 23 D E E D * RType Pris E D 700 900
Oppgave 02 02 a) * A B C Alle 1 NF-tabeller som ikke har mer enn en ID-kolonne må være på 2 NF siden deler av ID (deler av ID finnes ikke) ikke kan bestemme verdier i ikke-ID-kolonner. Videre er det ingen avhengighet mellom ikke-ID-kolonner. Tabellen er derfor allerede på 3 NF.
02 b) * A B C * A B + * B C Alle 1 NF-tabeller som ikke har mer enn en ID-kolonne må være på 2 NF siden deler av ID (deler av ID finnes ikke) ikke kan bestemme verdier i ikke-ID-kolonner. Ikke-ID-kolonnen B bestemmer entydig kolonnen C. Omforming til 3 NF gjøres derfor ved å lage en ekstra tabell med de to kolonnene B og C med B som ID-kolonne.
02 c) * A B C D * A B + * B C + Alle 1 NF-tabeller som ikke har mer enn en ID-kolonne må være på 2 NF siden deler av ID (deler av ID finnes ikke) ikke kan bestemme verdier i ikke-ID-kolonner. Omforming til 3 NF ved å lage ekstra tabeller for hver avhengighet mellom ikke-ID-kolonner. * C D
02 d) * A B C D * A B D + C * D Alle 1 NF-tabeller som ikke har mer enn en ID-kolonne må være på 2 NF siden deler av ID (deler av ID finnes ikke) ikke kan bestemme verdier i ikke-ID-kolonner. Omforming til 3 NF ved å lage ekstra tabell for hver avhengighet mellom ikke-ID-kolonnene D og C.
02 e) A * B C D * B D + A C * D Alle 1 NF-tabeller som ikke har mer enn en ID-kolonne må være på 2 NF siden deler av ID (deler av ID finnes ikke) ikke kan bestemme verdier i ikke-ID-kolonner. Omforming til 3 NF ved å lage ekstra tabell for hver avhengighet mellom ikke-ID-kolonnene D, A og C.
02 f) A B * C D A B * C + * A D Alle 1 NF-tabeller som ikke har mer enn en ID-kolonne må være på 2 NF siden deler av ID (deler av ID finnes ikke) ikke kan bestemme verdier i ikke-ID-kolonner. Omforming til 3 NF ved å lage ekstra tabell for hver avhengighet mellom ikke-ID-kolonnene A og D.
02 g) * A * B C D * A * B C + * B D Deler av ID (her B) bestemer entydig en ikke-ID-kolonne (her D). Altså er det brudd med 2 NF (og derfor også 3 NF). Lager tabeller med alle mulige delmengder av ID-kolonnene sammen med alle ikke-ID-kolonner som er direkte eller indirekte avhengige av disse nevnte ID-kolonnene. Denne omgjøringen fører her direkte til både 2 NF og 3 NF (3 NF fordi vi her ikke har noen avhengighet mellom ikke-ID-kolonner.
02 h) * A * B * C D E * A * B * C E + * A * C D Deler av ID (her A og C) bestemer entydig en ikke-ID-kolonne (her D). Altså er det brudd med 2 NF (og derfor også 3 NF). Lager tabeller med alle mulige delmengder av ID-kolonnene sammen med alle ikke-ID-kolonner som er direkte eller indirekte avhengige av disse nevnte ID-kolonnene. Denne omgjøringen fører her direkte til både 2 NF og 3 NF (3 NF fordi vi her ikke har noen avhengighet mellom ikke-ID-kolonner.
02 i) * A * B C * D E F * A * B C * D + * A * B F + * D E Deler av ID (her D samt A, B) bestemer entydig ikke-ID-kolonner (her E samt F). Altså er det brudd med 2 NF (og derfor også 3 NF). Lager tabeller med alle mulige delmengder av ID-kolonnene sammen med alle ikke-ID-kolonner som er direkte eller indirekte avhengige av disse nevnte ID-kolonnene. Denne omgjøringen fører her direkte til både 2 NF og 3 NF (3 NF fordi vi her ikke har noen avhengighet mellom ikke-ID-kolonner.
02 j) A B * C D E * F * G H I J K Deler av ID bestemer entydig ikke-ID-kolonner. Altså er det brudd med 2 NF (og derfor også 3 NF). Lager tabeller med alle mulige delmengder av ID-kolonnene sammen med alle ikke-ID-kolonner som er direkte eller indirekte avhengige av disse nevnte ID-kolonnene. Denne omgjøringen fører til 2 NF-tabeller.
02 j) B * C D E * F * G H I + * C * F J K + A * C * G Alle disse tre tabellene er på 2 NF (de to siste også på 3 NF). Den første tabellen er ikke på 3 NF siden vi har avhengighet mellom ikke-ID-kolonner (D/B, B/H og H/E). Den første tabellen må derfor splittes opp.
02 j) * C D * F * G + B * D + * B H I + Alle disse tabellene er på 3 NF * C * F J K + A * C * G + E * H
- Slides: 15