Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Normalizzazione Base di Dati

    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.

  2. #2
    perché hai diviso utenti e nicknames? un utente può avere più nicknames?

  3. #3
    Mmh no, in effetti no... la verità è che probabilmente non ho capito bene come individuare le dipendenze transitive, per verificare la 3NF... ho fatto quella divisione in modo un po' meccanico, suppongo che la dipendenza transitiva di Password da CodUtente sia sbagliata :\

    Dovevo rimanerlo così ed era anche in 3NF?

  4. #4
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Bhè qualche suggerimento ce l'avrei, ma sono in "warning" e quindi dico che va sicuramente bene.

  5. #5
    Che tipo di suggerimento allora? Non fa mai male sapere

    P.S.: ma quindi va bene evitando quell'ultima decomposizione?

  6. #6
    io non dividerei. attento che abbiamo tutti un guru alle spalle (franzauker2.0, guarda che firma )

  7. #7
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Inizierei a chiedermi perchè "dividere".
    Se scrivo come si fa poi vengo tacciato di saccentismo.
    (strano, quando insegnavo all'università, per la verità per un brevissimo periodo, nessuno me lo ha fatto notare. Si vede che ero più giovane)

  8. #8
    Originariamente inviato da franzauker2.0
    Se scrivo come si fa poi vengo tacciato di saccentismo.
    a fra', ma che problemi hai?

  9. #9
    Ahahah nono, se mi correggi ti assicuro che per questa volta te lo perdono! xD

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.