Progettazione di una base di dati Progettazione logica (modello relazionale)
studente corso esame (0,n) matricola cognome voto data indirizzo persona docente affidamento (1,n) modalità (1,n) nascita comune com prov data-nasc CF nome qualifica (1,1) (1,n) C# titolo
Eliminazione delle gerarchie Il modello relazionale non permette di rappresentare direttamente le gerarchie ISA E E3 R1 E4 R2 E2E1 KA A2A1
Eliminazione delle gerarchie metodo 1: quando le operazioni non fanno distinzione tra le occorrenze delle diverse entità E E3 R1 E4 R2 KA A2 A1
Eliminazione delle gerarchie metodo 2: quando la generalizzazione è totale (ogni occorrenza dell'entita` padre e` occorrenza di una delle entita` figlie) o ci sono operazioni che si riferiscono a occorrenze di una sola delle entità E3 R12 E4 R2 E2E1 K A A2A1 K A R12
Eliminazione delle gerarchie metodo 3: quando la generalizzazione non è totale e/o ci sono operazioni che si riferiscono a occorrenze di una sola delle entità figlie E E3 R1 E4 R2 E2E1 KA A2A1 R11R12
studente corso esame (0,n) matricola cognome voto data indirizzo persona docente affidamento (1,n) modalità (1,n) nascita comune com prov data-nasc CF nome qualifica (1,1) (1,n) C# titolo
studente corso esame (0,n) matricola cognome voto data indirizzo docente affidamento (1,n) modalità (1,n) nascita-s comune comprov data-nasc CF nome qualifica (1,1) (1,n) C# titolo cognome indirizzo nome nascita-d (1,n) (1,1) data-nasc CF
Entità Ad ogni entità corrisponde una relazione. Gli attributi semplici (a singolo valore) dell’entità diventano attributi della relazione. L’identificatore dell’entità diventa chiave primaria della relazione
Entità … Per gli attributi composti (multivalore): studente giorno-nasc mese-nasc anno-nasc studente giorno-nasc mese-nasc anno-nasc studente data-nasc
Entità … Per gli attributi composti (multivalore): impiegato codicefigli impiegato codice figlio nome ha ENTITA’ DEBOLE
Relazioni corrispondenti ad entità Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc) oppure Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc) Docente(CF,Qualifica,Cogn,Nome,Indir,Data-nasc) Corso(C#,Titolo) Comune(Com,Prov)
Associazioni binarie one-to-one se entrambe le entità hanno partecipazione totale E1 K1 E2R K2 (1) E1(K1, attributi di E1, attributi di E2, attibuti di R) (1,1) (2) E1(K1, attributi di E1) E2(K2, K1, attributi di E2, attributi di R)
esempio studente matr documentoriconosc numero (1)studente(matr, cognome, nome, tipo-doc, numero-doc, ente-ril) (1,1) (2) studente(matr, cognome, nome) documento(tipo, numero, matr, ente-ril) tipo ente-ril cognome nome
Associazioni binarie one-to-one se una sola delle entità ha partecipazione totale E1 K1 E2R K2 E1( K1, attributi di E1) E2(K2, K1, attributi di E2, attributi di R) (0,1)(1,1)
esempio studente matr tesiassegn argomento (0,1)(1,1) studente(matr, cognome, nome) tesi(titolo, matr, argomento, data) titolo data cognome nome
Associazioni binarie one-to-one se entrambe le entità hanno partecipazione parziale E1 K1 E2R K2 E1(K1, attributi di E1) E2(K2, attributi di E2) R(K1, K2, attributi di R) (0,1)
esempio studente matr tesi disponassegn argomento (0,1) studente(matr, cognome, nome) tesidispon(titolo, argomento) assegn(matr, titolo, data) titolo data cognome nome
Associazioni binarie one-to-many se l'entità dalla parte "many" ha partecipazione totale E1 K1 E2R K2 E1(K1, K2, attributi di E1, attributi di R) E2(K2, attributi di E2) (1,1)(min,n)
esempio studente matr cittànasc prov (1,1) (min,1) studente(matr, cognome, nome, città-nasc) città(nome, prov) nome cognome nome
Associazioni binarie one-to-many se l'entità dalla parte "many" ha partecipazione parziale E1 K1 E2R K2 (0,1)(min,n) E1(K1, attributi di E1) E2(K2, attributi di E2) R(K1, K2, attributi di R )
esempio studente matr docenterelatore cognome (0,1) (1,n) studente(matr, cognome, nome) relatore(matr, CF) docente(CF, cognome) CF cognome nome
Associazioni binarie many-to-many E1 K1 E2R K2 E1(K1, attributi di E1) E2(K2, attributi di E2) R(K1, K2, attributi di R ) (min,n)
esempio studente matr corsoesame nome (0,n) studente(matr, cognome, nome) corso(cod, nome) esame(matr, cod, data, voto) Cod cognome nome datavoto
Associazioni n-arie E1 K1 E2R K2 E1(K1, attributi di E1) E2(K2, attributi di E2) E3(K3, attributi di E3) R(K1,K2,K3, attributi di R) (min,n) E3 K3 (min,n)
esempio brano nome direttore esecuzione cognome orchestra(nome, num-comp) brano(nome, autore) direttore(cognome, nazionalità) esecuzione(nome-orch,nome-brano,cognome, luogo, data) (min,n) orchestra nome (min,n) autore num-comp nazionalità data luogo
Relazioni corrispondenti ad associazioni studentecorso esame (0,n) matricola cognome voto data indirizzo nome C# titolo data-nasc CF Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc,Com) Corso(C#,Titolo) Esame(Matr,C#,Data,Voto)
Relazioni corrispondenti ad associazioni corsodocente affidamento (1,n) modalità (1,n) data-nasc CF qualifica C# titolo cognome indirizzo nome Docente(CF,Qualifica,Cogn,Nome,Indir,Data-nasc,Com) Corso(C#,Titolo) Affidamento(CF,C#,Modalità)
Schema relazionale Studente(CF,Matr,Cogn,Nome,Indir,Data-nasc,Com) Docente(CF,Qualifica,Cogn,Nome,Indir,Data-nasc,Com) Corso(C#,Titolo) Comune(Com,Prov) Esame(Matr,C#,Data,Voto) Affidamento(CF,C#,Modalità)