22. maj 2001 - 00:49Der er
3 kommentarer og 1 løsning
2. eller 3. normalform
Jeg har et lille problem, til en opgave:
Jeg har en tabel med varer, og som udgangspunkt registrerer jeg også producentnavn adresse tlf osv i denne tabel.
Jeg kan se at jeg skal bave producenterne over i en ny tabel, mit problem er så om det er 2. eller 3. normalform? en smule forklaring ville være rart, men et svar er bedre end intet.
1. normal form (1NF): Hver række i tabellen er unikt identificeret, hver kolonne indeholder en atomar værdi (og altså ikke f.eks. sammensatte værdier som lister), og der optræder ikke \"gentagne grupper\" (eksempelvis er det ikke i 1NF tilladt, at lagre antallet af din vare på lager i forskellige lagre i kolonnerne Lager1, Lager2, Lager3 osv.).
2. normal form (2NF): Reglerne for 1NF er opfyldt, og alle kolonner, der ikke er en del af den primære nøgle, er afhængige af den primære nøgle.
3. normal form (3NF): Reglerne for 2NF er opfyldt, og alle kolonner, der ikke er en del af den primære nøgle, er ikke afhængige af andre kolonner, end den primære nøgle.
I din tabel med varer, er f.eks. producentens adresse og telefonnummer funktionelt afhængige af producenten, ikke af varen - og tabellen kommer derfor ikke i 3NF, før producentens data flyttes til en ny tabel.
Mot hovedbrud kom ved at jeg (som udgangspunkt) ikke havde en producentid, så kunne man jo forestille sig at man havde 2 formaer med samme navn, men forskellige adresser. Mit eneste ekesempel på 3. normalform var postnr/ny, hvor postnr jo kan overføres direkte som primær-nøgle. Jeg kom derfor pludselig i tvivl.
Takker mange gange for hjælpen.
Håber jeg får 13 for opgaven, nu hvor det er på plads :o).
Jeg har accepteret dit svar, men hvis du mangler noget at lave en gang, kan du så ikke lige eksemplificere 2nf? det er naturligvis ikke et must, jeg fatter den bare stadig ikke.
Forestil dig at du gemmer bestillinger af varer i din database. En bestilling har et ordrenummer og kan indeholde flere forskellige varer. Lad os sige at du har en (ikke-normaliseret) tabel, der indeholder de forskellige varer, der er knyttet til en ordre, og den primære nøgle i denne tabel vil være (ordrenummer, varenummer). Yderligere kolonner kan være f.eks. antal og producent. Denne tabel er i 1NF, men ikke i 2NF, da kolonnen producent ikke afhænger af _hele den primære nøgle_, men kun kolonnen varenummer i den primære nøgle.
Det var smart :) takker endnu engang, sov godt.......
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.