Progettazione di basi di dati (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 2 2007 Politecnico di Torino 1
(2/2) Traduzione nel modello relazionale: relazioni uno a uno Traduzione nel modello relazionale: entità con identificatore esterno Traduzione nel modello relazionale: relazioni ternarie 3 2007 Politecnico di Torino 2
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 5 Passi della progettazione logica Schema ER 6 2007 Politecnico di Torino 3
Passi della progettazione logica Schema ER Ristrutturazione dello schema Schema ER semplificato 7 Passi della progettazione logica Schema ER Ristrutturazione dello schema Schema ER semplificato Traduzione Schema logico relazionale 8 2007 Politecnico di Torino 4
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 10 2007 Politecnico di Torino 5
Attività di ristrutturazione Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento e accorpamento di entità e relazioni Scelta degli identificatori primari 11 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 12 2007 Politecnico di Torino 6
Esempio di attributo ridondante Matricola Codice Studente Esame superato 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 13 2007 Politecnico di Torino 7
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 15 Esempio Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario Reparto Lavora in (t,e) Personale CodFisc 16 2007 Politecnico di Torino 8
Accorpamento nel padre Reparto Lavora in Personale CodFisc 17 Attributi delle entità figlie Specializzazione Reparto Lavora in Associazione Personale CodFisc 18 2007 Politecnico di Torino 9
Relazioni con le entità figlie Esame specialistico Effettuato da Specializzazione Reparto Lavora in Associazione Personale CodFisc 19 Relazioni con le entità figlie Esame specialistico Effettuato da Specializzazione Reparto Lavora in Associazione Personale CodFisc 20 2007 Politecnico di Torino 10
Attributo discriminante Esame specialistico Effettuato da Specializzazione Reparto Lavora in Associazione Personale CodFisc Tipo permette di distinguere a quale entità figlia appartiene ogni occorrenza Tipo 21 Accorpamento nel padre Esame specialistico Effettuato da Specializzazione Reparto Lavora in Tipo Associazione Personale CodFisc Applicabile per qualsiasi copertura se sovrapposta, sono possibili molte combinazioni come valori di Tipo 22 2007 Politecnico di Torino 11
Schema di partenza Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario Reparto Lavora in (t,e) Personale CodFisc 23 Accorpamento nelle figlie Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario 24 2007 Politecnico di Torino 12
Attributi del padre Esame specialistico Specializzazione Effettuato da Medico CodFisc Associazione Volontario CodFisc 25 Relazioni con il padre Esame specialistico Specializzazione Effettuato da Medico CodFisc Associazione Volontario CodFisc Reparto Lavora in 1 Lavora in 2 Occorre sdoppiare le relazioni con l entità padre 26 2007 Politecnico di Torino 13
Cardinalità della relazione Lavora in Esame specialistico Specializzazione Effettuato da Medico CodFisc Associazione Volontario CodFisc Lavora in 1 Reparto Lavora in 2 Occorre sdoppiare le relazioni con l entità padre 27 Accorpamento nelle figlie Esame specialistico Specializzazione Effettuato da Medico CodFisc Associazione Volontario CodFisc Lavora in 1 Reparto Lavora in 2 Non adatta per copertura parziale o sovrapposta 28 2007 Politecnico di Torino 14
Schema di partenza Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario Reparto Lavora in (t,e) Personale CodFisc 29 Sostituzione con relazioni Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario Reparto Lavora in Personale CodFisc 30 2007 Politecnico di Torino 15
Relazioni tra padre e figlie Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario E un E un Reparto Lavora in Personale CodFisc 31 Identificazione delle entità figlie Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario E un E un Reparto Lavora in Personale CodFisc 32 2007 Politecnico di Torino 16
Cardinalità della relazione E un Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario E un E un Reparto Lavora in Personale CodFisc 33 Cardinalità della relazione E un Esame specialistico Specializzazione Effettuato da Medico Associazione Volontario E un E un Reparto Lavora in Personale CodFisc 34 2007 Politecnico di Torino 17
Sostituzione con relazioni Esame specialistico Reparto Specializzazione Effettuato da Medico Lavora in Personale Associazione Volontario E un E un Soluzione più generale e sempre applicabile può essere dispendiosa per ricostruire l informazione di partenza CodFisc 35 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) 36 2007 Politecnico di Torino 18
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) 37 Valutazione delle alternative Sono possibili anche soluzioni miste le operazioni d accesso distinguono tra occorrenze di alcune entità figlie (accesso più efficiente) 38 2007 Politecnico di Torino 19
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 39 2007 Politecnico di Torino 20
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 41 Partizionamento di entità Codice Impiegato Stipendio Livello Ritenute 42 2007 Politecnico di Torino 21
Partizionamento di entità Codice Impiegato Livello Stipendio Ritenute Codice Dati anagrafici Dati impiegato Dati lavorativi Livello Stipendio Ritenute 43 Cardinalità della relazione Dati impiegato Codice Impiegato Livello Stipendio Ritenute Codice Dati anagrafici Dati impiegato Dati lavorativi Stipendio Livello Ritenute 44 2007 Politecnico di Torino 22
Cardinalità della relazione Dati impiegato Codice Impiegato Livello Stipendio Ritenute Codice Dati anagrafici Dati impiegato Dati lavorativi Livello Stipendio Ritenute 45 Partizionamento di relazioni CodiceFiscale Cliente DataFine Occupa Locale dell albergo Numero Descrizione Tempo DataInizio 46 2007 Politecnico di Torino 23
Partizionamento di relazioni CodiceFiscale Cliente DataFine Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente DataFine Locale dell albergo Ha occupato Numero Descrizione Tempo DataInizio 47 Cardinalità della relazione Ha occupato CodiceFiscale Cliente DataFine Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente DataFine Locale dell albergo Ha occupato Numero Descrizione Tempo DataInizio 48 2007 Politecnico di Torino 24
Cardinalità della relazione Ha occupato CodiceFiscale Cliente DataFine Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente DataFine Locale dell albergo Ha occupato Numero Descrizione Tempo DataInizio 49 Cardinalità della relazione Ha occupato CodiceFiscale Cliente DataFine Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente DataFine Locale dell albergo Ha occupato Numero Descrizione Tempo DataInizio 50 2007 Politecnico di Torino 25
Cardinalità della relazione Occupa attualmente CodiceFiscale Cliente DataFine Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente DataFine Locale dell albergo Ha occupato Numero Descrizione Tempo DataInizio 51 Cardinalità della relazione Occupa attualmente CodiceFiscale Cliente DataFine Occupa Locale dell albergo Numero Descrizione Tempo DataInizio DataInizio DataFine CodiceFiscale Occupa attualmente Cliente DataFine Locale dell albergo Ha occupato Numero Descrizione Tempo DataInizio 52 2007 Politecnico di Torino 26
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 54 2007 Politecnico di Torino 27
Eliminazione degli attributi multivalore Codice fiscale Persona Professione Titolo di studio 55 Eliminazione degli attributi multivalore Codice fiscale Persona Titolo di studio Professione Codice fiscale Persona Professione Ha conseguito Titolo di studio Titolo 56 2007 Politecnico di Torino 28
Cardinalità della relazione Ha conseguito Codice fiscale Persona Titolo di studio Professione Codice fiscale Persona Professione Ha conseguito Titolo di studio Titolo 57 Cardinalità della relazione Ha conseguito Codice fiscale Persona Professione Titolo di studio Codice fiscale Persona Professione Titolo di studio Ha conseguito Titolo 58 2007 Politecnico di Torino 29
Eliminazione degli attributi multivalore Codice fiscale Persona Professione Telefono 59 Eliminazione degli attributi multivalore Codice fiscale Persona Telefono Professione Codice fiscale Persona Professione Ha telefono Telefono Numero 60 2007 Politecnico di Torino 30
Cardinalità della relazione Ha telefono Codice fiscale Persona Telefono Professione Codice fiscale Persona Professione Ha telefono Telefono Numero 61 Cardinalità della relazione Ha telefono Codice fiscale Persona Professione Telefono Codice fiscale Persona Professione Ha telefono Telefono Numero 62 2007 Politecnico di Torino 31
Eliminazione degli attributi composti Non sono rappresentabili nel modello relazionale Due alternative 64 2007 Politecnico di Torino 32
Eliminazione degli attributi composti Non sono rappresentabili nel modello relazionale Due alternative si rappresentano in modo separato gli attributi componenti adatto se è necessario accedere separatamente a ciascun attributo 65 Rappresentazione separata degli attributi Codice fiscale Persona Professione Via Numero civico CAP 66 2007 Politecnico di Torino 33
Rappresentazione separata degli attributi Codice fiscale Persona Professione Via Numero civico CAP Codice fiscale Persona Professione Via Numero civico CAP 67 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 68 2007 Politecnico di Torino 34
Rappresentazione con un attributo unico Codice fiscale Persona Professione Via Numero civico CAP 69 Rappresentazione con un attributo unico Codice fiscale Persona Professione Via Numero civico CAP Codice fiscale Persona Professione Indirizzo 70 2007 Politecnico di Torino 35
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 71 2007 Politecnico di Torino 36
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 73 Traduzione di entità Codice fiscale Persona Professione 74 2007 Politecnico di Torino 37
Traduzione di entità Codice fiscale Persona Professione Persona(CodiceFiscale,,, Professione*) Chiave primaria sottolineata Attributi opzionali indicati con asterisco 75 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) 76 2007 Politecnico di Torino 38
Relazione binaria molti a molti Matricola Studente Esame Corso CodCorso Voto 77 Relazione binaria molti a molti: entità Matricola Studente Esame Corso CodCorso Voto Studente(Matricola,, ) Corso(CodCorso, ) 78 2007 Politecnico di Torino 39
Relazione binaria molti a molti Matricola Studente Esame Corso CodCorso Voto Studente(Matricola,, ) Corso(CodCorso, ) Esame(Matricola, CodCorso, Voto) 79 Relazione binaria molti a molti ricorsiva CodP Costo Componente Prodotto Composto Composizione Quantità 80 2007 Politecnico di Torino 40
Relazione binaria molti a molti ricorsiva CodP Costo Componente Prodotto Composto Composizione Quantità Prodotto(CodP,, Costo) 81 Relazione binaria molti a molti ricorsiva CodP Costo Componente Prodotto Composto Composizione Quantità Prodotto(CodP,, Costo) Composizione(CodComposto, CodComponente, Quantità) 82 2007 Politecnico di Torino 41
Relazione binaria uno a molti Sono possibili due modalità di traduzione mediante attributi mediante una nuova tabella 84 2007 Politecnico di Torino 42
Relazione binaria uno a molti Codice fiscale Persona Residenza Comune Comune Provincia Data trasferimento 85 Relazione binaria uno a molti: entità Codice fiscale Persona Residenza Comune Comune Provincia Data trasferimento Persona(CodiceFiscale,, ) Comune(Comune, Provincia) 86 2007 Politecnico di Torino 43
Relazione binaria uno a molti Codice fiscale Persona Residenza Comune Comune Provincia Data trasferimento Persona(CodiceFiscale,,, Comune) Comune(Comune, Provincia) 87 Relazione binaria uno a molti Codice fiscale Persona Residenza Comune Comune Provincia Data trasferimento Persona(CodiceFiscale,,, Comune, DataTrasferimento) Comune(Comune, Provincia) 88 2007 Politecnico di Torino 44
Relazione binaria uno a molti Matricola Studente Laurea Facoltà Facoltà Città Data laurea 89 Relazione binaria uno a molti: alternativa n.1 Matricola Studente Laurea Facoltà Facoltà Città Data laurea Studente(Matricola,, ) Facoltà(Facoltà, Città) 90 2007 Politecnico di Torino 45
Relazione binaria uno a molti: alternativa n.1 Matricola Studente Laurea Facoltà Facoltà Città Data laurea Studente(Matricola,, ) Facoltà(Facoltà, Città) Laurea(Matricola, Facoltà, DataLaurea) 91 Relazione binaria uno a molti: alternativa n.2 Matricola Studente Laurea Facoltà Facoltà Città Data laurea Studente(Matricola,,, Facoltà*, DataLaurea*) Facoltà(Facoltà, Città) 92 2007 Politecnico di Torino 46
Relazione binaria uno a uno Sono possibili più traduzioni dipende dal valore della cardinalità minima 94 2007 Politecnico di Torino 47
Relazione binaria uno a uno: caso 1 Partecipazione obbligatoria da entrambi i lati Matricola Rettore E Rettore Università Università Città Data elezione 95 Relazione binaria uno a uno: alternativa n.1 Partecipazione obbligatoria da entrambi i lati Matricola Rettore E Rettore Università Università Città Data elezione Rettore(Matricola,, ) Università(Università, Città) 96 2007 Politecnico di Torino 48
Relazione binaria uno a uno: alternativa n.1 Partecipazione obbligatoria da entrambi i lati Matricola Rettore E Rettore Università Università Città Data elezione Rettore(Matricola,,, Università, DataElezione) Università(Università, Città) 97 Relazione binaria uno a uno: alternativa n.2 Partecipazione obbligatoria da entrambi i lati Matricola Rettore E Rettore Università Università Città Data elezione Rettore(Matricola,, ) Università(Università, Città) 98 2007 Politecnico di Torino 49
Relazione binaria uno a uno: alternativa n.2 Partecipazione obbligatoria da entrambi i lati Matricola Rettore E Rettore Università Università Città Data elezione Rettore(Matricola,, ) Università(Università, Città, Matricola, DataElezione) 99 Relazione binaria uno a uno: caso 2 Partecipazione opzionale da un lato Matricola Professore Rettore Università Università Città Data elezione 100 2007 Politecnico di Torino 50
Relazione binaria uno a uno: entità Partecipazione opzionale da un lato Matricola Professore Rettore Università Università Città Data elezione Professore(Matricola,, ) Università(Università, Città) 101 Relazione binaria uno a uno Partecipazione opzionale da un lato Matricola Professore Rettore Università Università Città Data elezione Professore(Matricola,, ) Università(Università, Città, Matricola, DataElezione) 102 2007 Politecnico di Torino 51
Relazione binaria uno a uno: caso 3 Partecipazione opzionale da entrambi i lati Matricola Professore Rettore Università Università Città Data elezione 103 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à) 104 2007 Politecnico di Torino 52
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) 105 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) 106 2007 Politecnico di Torino 53
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à) 107 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* ) 108 2007 Politecnico di Torino 54
Entità con identificatore esterno Matricola Studente Iscrizione Università Università Città 110 2007 Politecnico di Torino 55
Entità con identificatore esterno Matricola Studente Iscrizione Università Università Città Università(Università, Città) Matricola(Matricola, Università,, ) 111 Entità con identificatore esterno Matricola Studente Iscrizione Università Città Università(Università, Città) Matricola(Matricola, Università,, ) La relazione è rappresentata insieme all identificatore 112 2007 Politecnico di Torino 56
Relazione ternaria Matricola Esame Studente Corso Codice Voto Tempo Data 114 2007 Politecnico di Torino 57
Relazione ternaria: entità Matricola Esame Studente Corso Codice Voto Tempo Data Studente(Matricola,, ) Corso(Codice, ) Tempo(Data) 115 Relazione ternaria: identificatore Matricola Esame Studente Corso Codice Voto Tempo Data Studente(Matricola,, ) Corso(Codice, ) Tempo(Data) Esame(Matricola, Codice, Data 116 2007 Politecnico di Torino 58
Relazione ternaria: attributi Matricola Esame Studente Corso Codice Voto Tempo Data Studente(Matricola,, ) Corso(Codice, ) Tempo(Data) Esame(Matricola, Codice, Data, Voto) 117 2007 Politecnico di Torino 59