Progettazione di basi di dati D B M G
Progettazione logica relazionale (1/2) Introduzione Ristrutturazione dello schema ER Eliminazione delle gerarchie Partizionamento di concetti Eliminazione degli attributi multivalore Eliminazione degli attributi composti e scelta degli identificatori primari Traduzione nel modello relazionale: entità e relazioni molti a molti Traduzione nel modello relazionale: relazioni uno a molti D B M G 2
Progettazione logica relazionale (2/2) Traduzione nel modello relazionale: relazioni uno a uno Traduzione nel modello relazionale: entità con identificatore esterno Traduzione nel modello relazionale: relazioni ternarie D B M G 3
Progettazione logica Richiede di scegliere il modello dei dati modello relazionale Obiettivo definizione di uno schema logico relazionale corrispondente allo schema ER di partenza Aspetti importanti semplificazione dello schema per renderlo rappresentabile mediante il modello relazionale ottimizzazione per aumentare l efficienza delle interrogazioni D B M G 4
Passi della progettazione logica Schema ER Ristrutturazione dello schema Schema ER semplificato Traduzione Schema logico relazionale D B M G 5
Ristrutturazione dello schema ER Lo schema ER ristrutturato tiene conto di aspetti realizzativi non è più uno schema concettuale Obiettivi eliminazione dei costrutti per cui non esiste una rappresentazione diretta nel modello relazionale trasformazioni volte ad aumentare l efficienza delle operazioni di accesso ai dati D B M G 6
Attività di ristrutturazione Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento e accorpamento di entità e relazioni Scelta degli identificatori primari D B M G 7
Analisi delle ridondanze Rappresentano informazioni significative, ma derivabili da altri concetti decisione se conservarle Effetti delle ridondanze sullo schema logico semplificazione e velocizzazione delle interrogazioni maggiore complessità e rallentamento degli aggiornamenti maggiore occupazione di spazio D B M G 8
Esempio di attributo ridondante Matricola Codice Studente (0,N) Esame superato (0,N) Corso MediaVoti Voto L attributo MediaVoti è ridondante utile per velocizzare le interrogazioni relative al calcolo della media dei voti degli studenti se conservato, occorre integrare lo schema relazionale con l indicazione di ridondanza dell attributo D B M G 9
Eliminazione delle gerarchie Non sono rappresentabili direttamente nel modello relazionale sono sostituite da entità e relazioni Metodi di ristrutturazione accorpamento delle entità figlie nell entità padre accorpamento dell entità padre nelle entità figlie sostituzione della gerarchia con relazioni D B M G 10
Esempio Esame specialistico Effettuato da (1,1) Specializzazione Medico Associazione Volontario Reparto Lavora in (1,1) (t,e) Personale Domicilio CodFisc D B M G 11
Accorpamento nel padre Reparto Lavora in (1,1) Personale Domicilio CodFisc D B M G 12
Attributi delle entità figlie Specializzazione (0,N) Reparto Lavora in (1,1) Personale Associazione Domicilio CodFisc D B M G 13
Relazioni con le entità figlie Esame specialistico Reparto Effettuato da (1,1) (0,N) Lavora in (1,1) Specializzazione (0,N) Personale Associazione Domicilio CodFisc D B M G 14
Attributo discriminante Esame specialistico Reparto Effettuato da (1,1) (0,N) Lavora in Tipo (1,1) Specializzazione (0,N) Personale Associazione Domicilio CodFisc Tipo permette di distinguere a quale entità figlia appartiene ogni occorrenza D B M G 15
Accorpamento nel padre Esame specialistico Reparto Effettuato da (1,1) (0,N) Lavora in Tipo (1,1) Applicabile per qualsiasi copertura Specializzazione (0,N) Personale Associazione Domicilio CodFisc se sovrapposta, sono possibili molte combinazioni come valori di Tipo D B M G 16
Accorpamento nelle figlie Esame specialistico Effettuato da (1,1) Specializzazione Medico Associazione Volontario D B M G 17
Attributi del padre Esame specialistico Effettuato da (1,1) Specializzazione Medico Domicilio Associazione Volontario Domicilio CodFisc CodFisc D B M G 18
Relazioni con il padre Esame specialistico Effettuato da (1,1) Specializzazione (1,1) Medico Domicilio CodFisc Associazione Volontario (1,1) Domicilio CodFisc Reparto Lavora in 1 Lavora in 2 Occorre sdoppiare le relazioni con l entità padre D B M G 19
Cardinalità della relazione Lavora in Esame specialistico Effettuato da (1,1) Specializzazione (1,1) Medico Domicilio CodFisc Associazione Volontario (1,1) Domicilio CodFisc (0,N) Reparto (0,N) Lavora in 1 Lavora in 2 Occorre sdoppiare le relazioni con l entità padre D B M G 20
Accorpamento nelle figlie Esame specialistico Effettuato da (1,1) Specializzazione (1,1) Medico Domicilio CodFisc Associazione Volontario (1,1) Domicilio CodFisc (0,N) Reparto (0,N) Lavora in 1 Lavora in 2 Non adatta per copertura parziale o sovrapposta D B M G 21
Sostituzione con relazioni Esame specialistico Effettuato da (1,1) Specializzazione Medico Associazione Volontario Reparto Lavora in (1,1) Personale Domicilio CodFisc D B M G 22
Relazioni tra padre e figlie Esame specialistico Effettuato da (1,1) Specializzazione Medico Associazione Volontario E un E un Reparto Lavora in (1,1) Personale Domicilio CodFisc D B M G 23
Identificazione delle entità figlie Esame specialistico Effettuato da (1,1) Specializzazione Medico Associazione Volontario E un E un Reparto Lavora in (1,1) Personale Domicilio CodFisc D B M G 24
Cardinalità della relazione E un Esame specialistico Effettuato da (1,1) Specializzazione Medico (1,1) (1,1) Associazione Volontario E un E un Reparto Lavora in (1,1) Personale Domicilio CodFisc D B M G 25
Sostituzione con relazioni Esame specialistico Effettuato da (1,1) Specializzazione Medico (1,1) (1,1) Associazione Volontario E un E un Reparto Lavora in (1,1) Personale Soluzione più generale e sempre applicabile può essere dispendiosa per ricostruire l informazione di partenza Domicilio CodFisc D B M G 26
Valutazione delle alternative L accorpamento delle entità figlie nell entità padre è appropriato quando le entità figlie introducono differenziazioni non sostanziali (pochi valori nulli) le operazioni d accesso non distinguono tra occorrenze dell entità padre e delle figlie (accesso più efficiente) D B M G 27
Valutazione delle alternative L accorpamento dell entità padre nelle entità figlie è appropriato quando la generalizzazione è totale le operazioni d accesso distinguono tra occorrenze delle diverse entità figlie (accesso più efficiente) D B M G 28
Valutazione delle alternative Sono possibili anche soluzioni miste le operazioni d accesso distinguono tra occorrenze di alcune entità figlie (accesso più efficiente) Per le generalizzazioni a più livelli, si procede nello stesso modo, partendo dal livello inferiore D B M G 29
Partizionamento di concetti Partizionamento di entità o relazioni rappresentazione migliore di concetti separati separazione di attributi di uno stesso concetto che sono utilizzati da operazioni diverse maggiore efficienza delle operazioni D B M G 30
Partizionamento di entità Codice Domicilio Impiegato Livello Stipendio Ritenute Domicilio Codice Dati anagrafici Dati impiegato Dati lavorativi Stipendio Livello Ritenute D B M G 31
Cardinalità della relazione Dati impiegato Codice Domicilio Impiegato Livello Stipendio Ritenute Domicilio Codice Dati anagrafici (1,1) Dati impiegato (1,1) Dati lavorativi Stipendio Livello Ritenute D B M G 32
Partizionamento di relazioni CodiceFiscale Cliente DataFine (0,N) Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente DataFine Locale dell albergo Ha occupato Numero Descrizione D M BG Tempo DataInizio 33
Cardinalità della relazione Ha occupato CodiceFiscale Cliente DataFine (0,N) Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente (0,N) DataFine (0,N) Locale dell albergo Ha occupato Numero Descrizione D M BG Tempo DataInizio 34
Cardinalità della relazione Occupa attualmente CodiceFiscale Cliente DataFine (0,N) Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Cliente (0,N) Occupa attualmente DataFine (0,N) (0,N) (0,N) Locale dell albergo Ha occupato Numero Descrizione D M BG Tempo DataInizio 35
Eliminazione degli attributi multivalore Non sono rappresentabili nel modello relazionale L attributo multivalore è rappresentato mediante una nuova entità collegata da una relazione all entità originale attenzione alla cardinalità della nuova relazione D B M G 36
Eliminazione degli attributi multivalore Codice fiscale Persona Titolo di studio Professione Codice fiscale Persona Professione Ha conseguito Titolo di studio Titolo D B M G 37
Cardinalità della relazione Ha conseguito Codice fiscale Persona Professione Titolo di studio Codice fiscale Persona Professione Titolo di studio Ha conseguito Titolo D B M G 38
Eliminazione degli attributi multivalore Codice fiscale Persona Telefono Professione Codice fiscale Persona Professione Ha telefono Telefono Numero D B M G 39
Cardinalità della relazione Ha telefono Codice fiscale Persona Telefono Professione Codice fiscale Persona Professione Ha telefono (1,1) Telefono Numero D B M G 40
Eliminazione degli attributi composti Non sono rappresentabili nel modello relazionale Due alternative si rappresentano in modo separato gli attributi componenti adatta se è necessario accedere separatamente a ciascun attributo si introduce un unico attributo che rappresenta la concatenazione degli attributi componenti adatta se è sufficiente l accesso all informazione complessiva D B M G 41
Rappresentazione separata degli attributi Codice fiscale Persona Professione Via Numero civico CAP Codice fiscale Persona Professione Via Numero civico CAP D B M G 42
Rappresentazione con un attributo unico Codice fiscale Persona Professione Via Numero civico CAP Codice fiscale Persona Professione Indirizzo D B M G 43
Scelta degli identificatori primari Necessaria per definire la chiave primaria delle tabelle Un buon identificatore non assume valore nullo è costituito da pochi attributi (meglio 1!) possibilmente è interno è utilizzato da molte operazioni d accesso Può essere opportuno introdurre codici identificativi D B M G 44
Traduzione nel modello relazionale Si esegue sullo schema ER ristrutturato senza gerarchie, attributi multivalore e composti Trasformazioni ad ogni entità corrisponde una tabella con gli stessi attributi per le relazioni occorre considerare la cardinalità massima D B M G 45
Traduzione di entità Codice fiscale Persona Professione Persona(CodiceFiscale,,, Professione*) Chiave primaria sottolineata Attributi opzionali indicati con asterisco D B M G 46
Traduzione di relazioni binarie molti a molti Ogni relazione molti a molti corrisponde a una tabella la chiave primaria è la combinazione degli identificatori delle due entità collegate è possibile ridenominare gli attributi della tabella che corrisponde alla relazione (necessario in caso di relazioni ricorsive) D B M G 47
Relazione binaria molti a molti Matricola Studente (0,N) Esame (0,N) Corso CodCorso Voto Studente(Matricola,, ) Corso(CodCorso, ) Esame(Matricola, CodCorso, Voto) D B M G 48
Relazione binaria molti a molti ricorsiva CodP Costo Componente (0,N) Prodotto Composto (0,N) Composizione Quantità Prodotto(CodP,, Costo) Composizione(CodComposto, CodComponente, Quantità) D B M G 49
Relazione binaria uno a molti Sono possibili due modalità di traduzione mediante attributi mediante una nuova tabella D B M G 50
Relazione binaria uno a molti: entità Codice fiscale Persona (1,1) Residenza Comune Comune Provincia Data trasferimento Persona(CodiceFiscale,, ) Comune(Comune, Provincia) D B M G 51
Relazione binaria uno a molti Codice fiscale Persona (1,1) Residenza Comune Comune Provincia Data trasferimento Persona(CodiceFiscale,,, Comune, DataTrasferimento) Comune(Comune, Provincia) D B M G 52
Relazione binaria uno a molti: alternativa n.1 Matricola Studente Laurea (0,N) Facoltà Facoltà Città Data laurea Studente(Matricola,, ) Facoltà(Facoltà, Città) Laurea(Matricola, Facoltà, DataLaurea) D B M G 53
Relazione binaria uno a molti: alternativa n.2 Matricola Studente Laurea (0,N) Facoltà Facoltà Città Data laurea Studente(Matricola,,, Facoltà*, DataLaurea*) Facoltà(Facoltà, Città) D B M G 54
Relazione binaria uno a uno Sono possibili più traduzioni dipende dal valore della cardinalità minima D B M G 55
Relazione binaria uno a uno: alternativa n.1 Partecipazione obbligatoria da entrambi i lati Matricola Rettore (1,1) E Rettore (1,1) Università Università Città Data elezione Rettore(Matricola,,, Università, DataElezione) Università(Università, Città) D B M G 56
Relazione binaria uno a uno: alternativa n.2 Partecipazione obbligatoria da entrambi i lati Matricola Rettore (1,1) E Rettore (1,1) Università Università Città Data elezione Rettore(Matricola,, ) Università(Università, Città, Matricola, DataElezione) D B M G 57
Relazione binaria uno a uno: caso 2 Partecipazione opzionale da un lato Matricola Professore Rettore (1,1) Università Università Città Data elezione D B M G 58
Relazione binaria uno a uno: entità Partecipazione opzionale da un lato Matricola Professore Rettore (1,1) Università Università Città Data elezione Professore(Matricola,, ) Università(Università, Città) D B M G 59
Relazione binaria uno a uno Partecipazione opzionale da un lato Matricola Professore Rettore (1,1) Università Università Città Data elezione Professore(Matricola,, ) Università(Università, Città, Matricola, DataElezione) D B M G 60
Relazione binaria uno a uno: caso 3 Partecipazione opzionale da entrambi i lati Matricola Professore Rettore Università Università Città Data elezione D B M G 61
Relazione binaria uno a uno: alternativa n.1 Partecipazione opzionale da entrambi i lati Matricola Professore Rettore Università Università Città Data elezione Professore(Matricola,, ) Università(Università, Città) Rettore(Matricola, Università, DataElezione) D B M G 62
Relazione binaria uno a uno: alternativa n.2 Partecipazione opzionale da entrambi i lati Matricola Professore Rettore Università Università Città Data elezione Professore(Matricola,, ) Università(Università, Città) Rettore(Matricola, Università, DataElezione) D B M G 63
Relazione binaria uno a uno: alternativa n.3 Partecipazione opzionale da entrambi i lati Matricola Professore Rettore Università Università Città Data elezione Professore(Matricola,, ) Università(, Città, Matricola*, DataElezione* ) D B M G 64
Entità con identificatore esterno Matricola Iscrizione Studente (1,1) (0,N) Università Città Università(Università, Città) Studente(Matricola, Università,, ) La relazione è rappresentata insieme all identificatore D B M G 65
Relazione ternaria: entità Matricola Esame Studente (0,N) (0,N) Corso Codice Voto Tempo Data Studente(Matricola,, ) Corso(Codice, ) Tempo(Data) D B M G 66
Relazione ternaria: identificatore Matricola Esame Studente (0,N) (0,N) Corso Codice Voto Tempo Data Studente(Matricola,, ) Corso(Codice, ) Tempo(Data) Esame(Matricola, Codice, Data D B M G 67
Relazione ternaria: attributi Matricola Esame Studente (0,N) (0,N) Corso Codice Voto Tempo Data Studente(Matricola,, ) Corso(Codice, ) Tempo(Data) Esame(Matricola, Codice, Data, Voto) D B M G 68
Vincoli d integrità referenziale Le relazioni rappresentano vincoli d integrità referenziale Matricola Studente (0,N) Esame (0,N) Corso CodCorso Voto D B M G 69
Integrità referenziale: relazione Esame Tabelle coinvolte Studente(Matricola,, ) Corso(CodCorso, ) Esame(Matricola, CodCorso, Voto) Vincoli d integrità referenziale Esame(Matricola) REFERENCES Studente(Matricola) D B M G 70
Integrità referenziale: relazione Esame Tabelle coinvolte Studente(Matricola,, ) Corso(CodCorso, ) Esame(Matricola, CodCorso, Voto) Vincoli d integrità referenziale Esame(Matricola) REFERENCES Studente(Matricola) Esame(CodCorso) REFERENCES Corso(CodCorso) D B M G 71