Salve a tutti, sono nuovo del forum, appena registrato^^
Mi sto allenando in esercizi per lo scritto di Basi Dati, ho qualche dubbio, talvolta, nell'identificare le dipendenze o, un po' più raramente, le chiavi.
Ho provato a svolgere il seguente esercizio sulla normalizzazione di una relazione:
Dato il seguente schema relazionale:
ACQUISTI(CodUtente, Nickname, Password, CodProdotto, NomeProdotto, TipoProdotto, DataAcquisto, QuantitàAcquistata)
verificare se la relazione è in 3NF ed in caso contrario effettuarne un’opportuna decomposizione.
Ho individuato come chiave:
K={CodUtente, CodProdotto, QuantitàAcquistata}
Notando che la DataAcquisto si riferisce a un'istante (il formato date ha anche ora e minuto) e non un giorno generico, quindi non bisogna metterla nella chiave.
Ho trovato le seguenti dipendenze funzionali:
Cod. Utente -> Nickname, Password
Cod. Prodotto -> NomeProdotto, TipoProdotto
Quindi decompongo nelle seguenti relazioni:
Acquisti (CodUtente, CodProdotto, QuantitàAcquistata, DataAcquisto)
Utenti (CodUtente, Nickname, Password)
Prodotti (CodProdotto, NomeProdotto, TipoProdotto)
Che sono tutte e 3 in 2NF.
In particolare in quest'ultima parte non sono sicuro al massimo, ma ho proceduto così:
- Acquisti e Prodotti sono anche in 3NF.
-Per quanto riguarda Utenti, Password, "tramite" Nickname, dipende in maniera transitiva da CodUtente: quindi Utenti non è in 3NF.
Decompongo quindi in due relazioni:
Utenti(CodUtente, Nickname)
Nicknames(Nickname, Password)
Ed ora dovrei avere tutto in 3NF.
Se ho sbagliato qualcosa, potreste spiegarmene il motivo? Grazie in anticipo.

Rispondi quotando
)
