Avatar billede wale Nybegynder
05. december 2005 - 16:02 Der er 7 kommentarer og
1 løsning

Normalformer, hjælp til BCNF

Hejsa

Jeg har en tabel og jeg er i tvivl om den er på BCNF form.
Min table ser ud som følger:

Ingrediens (Iid, navn, enhed, størrelse)

hvor

Iid        bare et nummer, int
navn      navnet på ingrediensen, char
enhed      enheden på ingrediensen, eks. gram, liter, kg osv., char 
størrelse  størrelsen på en pakke af ingrediensen, int

Mit spørgsmål er så om denne er på BCNF form, hvilket jeg ikke tror den er da enheden kommer til at give redundans. Men hvilken normalform er så opnået?

Mit bud var så at dele tabellen op i 3.

Ingrediens (Iid, navn, størrelse)
Ingrediens_enhed (Iid, Eid)        relationstabel
Enheder (Eid, Enavn)

Jeg vil så mene at der nu var opnået BCNF. Er det korrekt?
Kunne evt. godt bruge nogle eksempler på BCNF...

Håber i kan hjælpe
Avatar billede pidgeot Nybegynder
05. december 2005 - 16:18 #1
Der er ingen grund til at bruge en relationstabel når du ikke har en mange til mange relation.

Ingrediens (Iid, navn, størrelse, Eid)
Enheder (Eid, Enavn)

Jeg er lidt i tvivl om formålet med din database, hvorfor jeg ikke kan sige om tabellen er normaliseret korrekt. Hvis du har gang i et eller andet a la noget opskriftssamling, ville jeg snarere gøre det sådan her:

Ingrediensnavn (Iid, navn)
Ingrediens (Opskriftid, Iid, størrelse, Eid)
Enheder (Eid, Enavn)

eller måske sådan:

Ingrediensnavn (Iid, navn, Eid)
Ingrediens (Oid, Iid, størrelse)
Enheder (Eid, Enavn)

da man sjældent bruger forskellige slags enheder om den samme ingrediens (du siger jo eks. ikke både 250 gram smør og 250 ml smør).

Er det derimod blot en slags inventarliste det skal bruges til, kan mit første foreslag godt bruges - principielt kunne du så droppe Iid og bruge navn som din nøgle.
Avatar billede wale Nybegynder
05. december 2005 - 20:11 #2
Skal bruge det til en opgave, så derfor er det vigtigt at vide hvilken normalform den opfylder.
Jeg har valgt bare at bruge det jeg har skrevet op først da det er nemmest at rode rundt med rent praktisk, men vil så skrive i min rapport at i den skal være ???? sådan for at opfylde BCNF.
Og ja det er til noget opskriftsamling
Avatar billede arne_v Ekspert
05. december 2005 - 21:30 #3
jeg ville nok vælge

Ingrediens (id, navn, enhed)
Pakning (id, størrelse)
Avatar billede arne_v Ekspert
05. december 2005 - 21:35 #4
BCNF = 3NF medmindre der er flere kandidat nøgler som er delvist overlappende
Avatar billede wale Nybegynder
05. december 2005 - 21:51 #5
Ja, men har ik helt styr på det der, så hvilken normalform opfylder denne

Ingrediens (Iid, navn, enhed, størrelse)

og hvad skal jeg gøre for at få den på BCNF hvis den ikke allerede er det?
Avatar billede wale Nybegynder
06. december 2005 - 18:46 #6
Er der evt. nogle der kunne skærer BCNF ud i pap kunne hjælpe mig en del tror jeg.
Avatar billede wale Nybegynder
07. december 2005 - 18:09 #7
Tror jeg har fundet svaret.
Ja!, den er på BCNF da der ikke er nogle felter der kan beskrives ud fra en af de andre.
Avatar billede wale Nybegynder
12. december 2005 - 23:11 #8
Har hittet det selv, men tak for svarene
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester