Normalizzazione tab 2°FN e 3°FN

BoG3
Ciao a tutti, sto preparando l'esame di data base e mi sono soffermato su alcuni esercizi propposti ma che non hanno soluzione sul libro, ragione per la quale chiedo a voi di darmi una mano x vedere dove sbaglio:

partendo dalla tabella (che do per scontato essere in 1° FN .. nn so bene il perchè, se nonn sbaglio perchè non ha attributi composti a loro volta da piu' altri attributi):

TAB (IDCliente, Indirizzo, CodArticolo, Descrizione, Quantita')

io ho pensato:

- definizione 2°FN: la tabella deve essere gia' in 1°FN e devo separare tutti gli attributi che dipendono da solo un sotto isieme di chiavi primarie
- essendo IDCliente e CodArticolo le chiavi primarie, dirrei che Indirizzo non centra con CodArticolo ma con IDCliente, questa allora è una dipendenza parziale
- essendo Descrizione dipendente solo dalla merce (CodArticolo) allora anche qusta è una dipendenza parziale.
- il campo Quantita' dipende dalla combinazione di CodArticolo e IDCliente, quindi non è dipendente parzialmente ed in questo caso nn me ne preoccupo.

quindi ottengo 3 tabelle:

TAB1 (CodArticolo, Descrizione)
TAB2 (IDCliente, Indirizzo)
TAB3 (IDCliente, CodArticolo, Quantita') //Questa viene fuori dato che estrapolo le altre 2, quello che rimane sono questi 3 campi.

Ora il mio dubbio è: ma siamo nella 2° o nella 3° FN? per alcune tabelle basta la 2° FN? Se non erro ho rispettato le regole della 2°FN e dovrei essere nella 2°?
So che la 3° dice: La tabella deve essere in 2°FN e devi separare tutti gli attributi che dipendono indirettamente dalle chiavi, ovvero ci dipendono per via di un altro attributo. un esempio potrebbe essere credo questa tabella:

TAB (IDCliente, Indirizzo, CodArticolo, Descrizione, Quantita', CostoSpese)

Dove CostoSpese dipende dalla quantita' della merce spedita, quindi posso dire che la quantita' dipende da IDCliente e CodArticolo, mentre costo è influenzato da Quantita'. Quindi per proprieta' transittiva potrei dire che implicitamente SpeseSpedizione dipendono da IDCliente e CodArticolo !?

grazie a tutti

Risposte
Umby2
L'ultima parte del discorso, non mi convince molto.
Bisognerebbe anche capire bene il significato dei vari campi per valutare bene il tipo di normalizzazione da fare.

Se ad esempio:
Il CodArticolo si ripete piu volte (esempio un documento di fattura, o ddt)
potresti avere

1) IDCliente, IDFattura
e poi
2) IDFattura, CodArticolo, Quantita, Prezzo

cosi' facendo nel record 1) avresti tutti i dati del documento (cliente, agente, num documento, data, porto, vettore, etc etc )
nel seccondo 2) i dettagli del corpo del documento (righi articolo)

BoG3
"Umby":
L'ultima parte del discorso, non mi convince molto.
Bisognerebbe anche capire bene il significato dei vari campi per valutare bene il tipo di normalizzazione da fare.


purtroppo non è descritta la realta' .. è solo un esercizietto per normalizzare una tabella .. dorebbe essere scontato.. come purtroppo lasciano scontate tante cose...

Umby2
Capisco il tuo dubbio, ma non saprei dirti quale strada prendere, in virtu' del fatto che:

leggendo: TAB (IDCliente, Indirizzo, CodArticolo, Descrizione, Quantita')

il campo per me "dubbio" è quello relativo alla quantità

Potrebbe essere intesta come la quantita' (giacenza) presente nell'articolo. In questo caso andrebbe messa insieme alla descrizione dell'articolo.
Potrebbe essere intesa come la quantita' venduta al cliente. In questo caso imposterei cosi:

1) idcliente, indirizzo (come già detto da te)
2) codart, desart (come sopra)
3) idcliente, codart, quantita'

BoG3
"Umby":
Capisco il tuo dubbio, ma non saprei dirti quale strada prendere, in virtu' del fatto che:

leggendo: TAB (IDCliente, Indirizzo, CodArticolo, Descrizione, Quantita')

il campo per me "dubbio" è quello relativo alla quantità

e' la quantita' venduta al cliente. In questo caso imposterei cosi:

1) idcliente, indirizzo (come già detto da te)
2) codart, desart (come sopra)
3) idcliente, codart, quantita'



ERA QLL K PENSAVO GRZ :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.