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

    2NF e 3NF nello schema relazionale

    Salve ragazzi,
    sto cercando di capire se il mio schema relazionale verifichi tutte le forme normali ma mi sono imbattuto in un dubbio enorme!


    Premetto che per ottenere lo schema sono partito dallo schema EER ed ho effettuato la traduzione nel modello relazionale utilizzando rigorosamente i criteri di traduzione.

    Dove ho molti dubbi è sulle specializzazioni di questo tipo:
    http://users.dimi.uniud.it/~massimo..../spec-ER3.html

    Come potete vedere le classi figlie Studente e Lavoratore ereditano la chiave primaria Codice Fiscale della classe madre Persona. In particolare Studente quindi ha Codice Fiscale e Matricola!

    Tralasciando tutti i dettagli relativi alla traduzione del modello relazionale (utilizzo un partizionamento orizzontale) ottengo le seguenti relazioni:

    Studente(Codice Fiscale, Matricola, Nome, Cognome)
    Lavoratore(Codice Fiscale, Professione, Nome, Cognome)

    Ora il dubbio è .... la relazione Studente è in SECONDA e TERZA FORMA NORMALE?
    Mi spiego meglio.. faccio fatica a capire il ruolo dell' attributo Matricola perchè a pensarci Matricola può identificare univocamente uno Studente.... ma se così fosse Nome e Cognome potrebbero dipendere funzionalmente da Matricola e quindi non si rispetterebbe la terza forma normale che dice appunto che gli attributi non chiave non devono dipendere da attributi non chiave (in questo caso mi sembra proprio di si.. perchè matricola non è un attributo chiave ma è UNIVOCO e quindi potrebbe teoricamente determinare Nome e Cognome)....

    Grazie in anticipo per ogni vostro aiuto!

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    "...ereditano la chiave primaria Codice Fiscale della classe madre Persona."

    Questo è errato, ci sono migliaia di codici fiscali uguali in Italia relativi persone diverse

    http://it.wikipedia.org/wiki/Omocodia

  3. #3
    ciao,

    secondo me Nome e cognome non dipendono da matricola...
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  4. #4
    Innanzitutto grazie della risposta.

    Al di là di CodiceFiscale (non sapevo di questa cosa e grazie per la segnalazione)... supponiamo quindi che ci sia una CHIAVE UNIVOCA (tipo ID_Persona al posto di CodiceFiscale) giusto per....
    Quello che volevo sapere era appunto se nella tabella Studente ci siano delle anomalie di dipendenza (2NF e 3NF)

    Studente (ID_Persona, Matricola, Via, Citta, Cap, Civico, Fax, Sesso...)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    211
    allora mi pare evidente che la relazione studente sia in seconda forma normale in quanto la chiave è formata da un singolo attributo.
    una relazione per essere in 2nf tutti gli attributi devono dipendere dall'intera chiave e non da una parte di essa. poichè la chiave è formata da un solo attributo, direi che la 2nf è rispettata (da ciò che ricordo).
    per quanto riguarda la 3nf, direi che anche in questo caso sia fatto nel modo giusto: non ci sono attributi non chiave che dipendono da altri attributi non chiave.

  6. #6
    Ciao pietro,
    grazie mille per la tua risposta.

    Sono giunto anche io alle tue stesse conclusioni ed il dubbio sai dove lo ho? Su Matricola... è vero che non è chiave però è anche vero che una matricola identifica univocamente uno studente... quindi il mio dubbio immane è se gli altri attributi non chiave come (Via, Citta... ) etc possano dipendere da Matricola che in questo caso non è un attributo chiave....

    Dal punto di vista pratico le clausole che metterei sono:

    ID_Puntata: <PK>
    Matricola: UNIQUE NOT NULL

    Che ne pensi?

    Grazie mille!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    211
    allora potresti fare così:

    costruisci un'unica relazione con gli attributi della superclasse, gli attributi di studente, di lavoratore e studente-lavoratore, in più ci metti tre attributi booleani che indicano di quale sottoclasse si sta parlando se si prende in considerazione una tupla.

    ho avuto anche io questi problemi e ho cercato di risolvere dando un'occhiata a questo link:

    http://books.google.it/books?id=QnYJ...page&q&f=false

    a pagina 240-241. la tua è una specializzazione parziale-sovrapposta, in quanto una persona può non essere nè lavoratore nè studente e si possono avere studenti che sono anche lavoratori.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.