PDA

View Full Version : [SQL?] normalizzazione: HELP dmn ho l'esame!


australopiteci
05-02-2006, 20:49
Ragazzi quanlcuno mi potrebbe dire che differenza ci sia tra seconda e terza forma normale?


La seconda forma normale dalla definizione che ho sembra che in X->Y, X debba per forza essere una superchiave e quindi non vedo che differenza ci sia con la terza e pewrhcè la terza sia + difficile da raggiungere se invece ha anche la clausola che Y può essere primo..

Qualcuno mi potrebbe chiarire ??

DarkRevenge
05-02-2006, 21:34
Allora... per essere in 2NF, per definizione, non devono esserci attributi non chiave che dipendono parzialmente dalla chiave. In pratica se C1, C2 sono i due campi che compongono la chiave, non deve esserci una relazione del tipo C1 --> C3 oppure C2 --> C3.

La definizione di 3NF invece dice che non devono esserci attributi non chiave che dipendono transitivamente dalla chiave, cioè attraverso una chiave intermedia. In altre parole se la chiave è C1 ed esistono le seguenti dipendenze: C1 --> C2, C2 --> C3 ma NON C1 --> C3 allora lo schema non è in 3NF.

Esempio preso dal mio libro di testo: se hai una relazione che descrive le diverse corse degli autobus definita come:

Corse(OraCorsa, Linea, Origine, Destinazione, #Bus, #Posti)

hai la seguente dipendenza:

Linea --> Origine, Destinazione

che indica che non siamo in 2NF, in quanto origine e destinazione dipendono parzialmente dalla chiave (OraCorsa, Linea).
Eliminati tali campi e posti in un'altra tabella, la nostra relazione diventa

Corse(OraCorsa, Linea, #Bus, #Posti)

con l'aggiunta della relazione

Linee(Linea, Origine, Destinazione)

A questo punto la relazione è in 2NF, ma non ancora in 3NF, in quanto esiste ancora la dipendenza

(OraCorsa, Linea) --> #Bus --> #Posti

in pratica il numero di posti non può essere conosciuto a priori attraverso la chiave, ma può essere conosciuto attraverso il numero dell'autobus, che a sua volta dipende dalla chiave. Quindi #Posti dipende transitivamente dalla chiave attraverso #Bus.

Spero di essere stato abbastanza chiaro ;)

australopiteci
06-02-2006, 00:51
grazie mille :)

credo (e spero :P ) di aver capito

ciaoooooooo e grazie di nuovo :)