/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
BCNF vs 3NF ?? - Pleeeease!
Fra : VK


Dato : 23-06-06 20:13

Er der en venlig sjæl der gider forklare på alm. dansk (%rationel
algebra eller kalkyle) hvad forskellen er mellem
3 Normalform (3NF) og
Boyce-Codd (BCNF) normalisering ?

For at opsummere kort hvad jeg har forstået indtil videre:

- 3NF: hvis der er felter i tabellen, som er direkte afhængige af en
IKKE primær-nøgle, skal disse flyttes over i en ny tabel (med FK)

- BCNF: tabellerne skal selvf. være på 3NF OG....noget med at der er
kun én, ikke sammensæt nøgle per tabel (superkey formoder jeg). Men så
er der samtidig tilladt at have superkeys, som primære nøgle....og vi er
tilbage i 3NF......


Jeg vil rigtig meget gerne have en typisk eksempel på en tabel
normaliseret til 3NF OG derefter til BCNF!

 
 
Jens Gyldenkærne Cla~ (23-06-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 23-06-06 23:23

VK skrev:

> - 3NF: hvis der er felter i tabellen, som er direkte
> afhængige af en
> IKKE primær-nøgle, skal disse flyttes over i en ny tabel (med
> FK)

Korrekt.


> - BCNF: tabellerne skal selvf. være på 3NF OG

BCNF er stærkere end 3NF, så enhver tabel der opfylder BCNF vil
også opfylde 3NF. Men BCNF er *ikke* en overbygning til 3NF - det
er ikke et krav at tabellen skal være på 3NF før man anvender BCNF
(så vidt jeg husker skal tabellen dog opfylde 1NF).

BCNF er meget enkel at formulere (men ikke helt så simpel at
forstå):

   En tabel er på BCNF hvis (og kun hvis) enhver determinant er
   en kandidatnøgle

En determinant er et eller flere felter der fuldt ud bestemmer
værdien for et andet felt.

En kandidatnøgle er et sæt felter der kan udgøre primærnøglen for
en tabel.


> Jeg vil rigtig meget gerne have en typisk eksempel på en tabel
> normaliseret til 3NF OG derefter til BCNF!

Jeg fandt et her: <http://db.grussell.org/section009.html>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177455
Tips : 31962
Nyheder : 719565
Indlæg : 6408149
Brugere : 218880

Månedens bedste
Årets bedste
Sidste års bedste