Normalisering af en database: Første Normalform

Kim Andersen | 19. februar 2008 | 18:44

Du kan læse indledningen til normalisering på min hovedside om normalisering.

Jeg gennemgår, de første tre normalformer og kommer også lidt ind på Boyce/Codd normalformen. Vi starter med den første normalform.

Første normalform, forkortes ofte som 1. NF.

Definition: En relation er på første normalform, hvis ingen af dens domæner har elementer, der i sig selv er mængder.

- De enkelte felter må kun indeholde én værdi.
- Der må ikke være kolonner som gentager sig.

Hvis vi kigger på den tabel (BIBLIOTEK) som der er linket til nedenfor, kan vi se at der er lavet et system over et bibliotek, hvori man kan se forskellige oplysninger på et udlån. bl.a. hvem der har lånt, hvad personen har lånt, data om bogen og en dato for udlånet.

TABEL: BIBLIOTEK

Man kan hurtigt se at denne tabel ikke overholder første normalform, da der vil opstå nulls, hvis en låner kun låner bogen en gang, og der vil være mangel på felter hvis en låner, låner flere end to bøger.

Derfor bruger vi den løsning som jeg omtalte i min introduktion til normalisering. Vi deler tabellen op.

LAANER:

laanerId Navn Gade Postnr Bynavn
101 Poul Avej 8260 Viby J
201 Britt Bvej 8000 Århus

UDLAAN:

laanerId bogId Forfatter Titel Forlag dato
101 1 Klaus R Heste Dyreforlag 1/1 – 08
101 2 Bente F Grise Dyreforlag 1/1 – 08
101 4 Jørgen P Både Skibsforlag 1/1 – 08
201 3 Bente F Får Dyreforlag 2/1 – 08

Nu har vi lavet to tabeller som begge overholder første normalform.
Vi har en tabel over lånerne (LAANER), så de ikke skal indtastes flere gange, men kan identificeres på deres id (laanerId). Derudover har vi lavet en udlånstabel (UDLAAN), hvori man kan skrive alle de lån som bliver foretaget. Så man vil ikke få for mange eller for lidt felter, og derved heller ikke NULL’s.
Denne tabel vil jeg arbejde videre med i anden normalform.

Læs om 2. normalform her.

Læs om 3. normalform her.

Ingen relaterede indlæg.

Kunne du lide indlæget?

Så tilmeld dig mit RSS-Feed eller følg mig på Twitter.

Du kan også få en gratis e-mail når jeg skriver et nyt indlæg.

Indtast din e-mailadresse:

6 Svar

[...] specielle ord som man selv gerne vil ranke på.

Få samme interne linkstruktur som Wikipedia! | 9. juli 2008 | 12:18

[...] specielle ord som man selv gerne vil ranke på. I mit tilfælde kunne jeg bruge et ord som ”normalisering” og linke det ord til en af mine artikler om normalisering af [...]

[...] å fra formular til database (skrevet 18. februar 2008)

Mit sidste blogindlæg… | 30. december 2008 | 22:17

[...] å fra formular til database (skrevet 18. februar 2008) – Mest populære indlæg (sidevisninger): Normalisering af en database: Første Normalform – 1.026 sidevisninger – Mest populære indlæg (kommentarer): Få gratis link til din hjemmeside [...]

[...] skriver et indlæg som passer fint til en del

7 gode råd til hvordan du bliver en god bruger på aNyhed | 13. april 2009 | 20:26

[...] skriver et indlæg som passer fint til en del af målgruppen her på bloggen, skal vi sige om normalisering af databaser, så er det måske et super indlæg her, men for et helt community, tror jeg ikke det er særlig [...]

Hey. Dejligt med en god forklaring af normalformerne! -God gennemgang

Anders | 19. juni 2009 | 15:18

Hey. Dejligt med en god forklaring af normalformerne! -God gennemgang på et let-forståeligt niveau.
Et hint: link til de andre normalformer på alle siderne – så siden med forklaring af første normalform, i bunden har link til anden og tredje normalform. Jeg skulle i Google for at lokalisere de andre..

Fedt at høre at du kunne bruge gennemgangen Anders. Jeg synes

Kim Andersen | 19. juni 2009 | 19:58

Fedt at høre at du kunne bruge gennemgangen Anders.

Jeg synes da egentlig at jeg allerede havde linket til de andre under hver artikel, men jeg kan da godt se at de ikke er synlige. Det bliver lige rettet til inden for kort tid :)

[...] Læs om normalisering: 1. normalform [...]

Normalisering af databaser: Tredje Normalform | 4. januar 2010 | 22:05

[...] Læs om normalisering: 1. normalform [...]

Efterlad en kommentar

Du kan bruge disse tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>