Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning Carlo Batini Il modello Entita’ Relazione 2.3 Vincoli di cardinalita’ Rielaborato da M. Lenzerini – Corso di Basi di dati
Criteri per scegliere le strutture giuste L’attivita’ di modellazione, cioe’ di rappresentazione di una realta’a osservata per mezzo di un modello, nel nostro caso il modello Entita’ Relazione, e’ molto creativa, e non sempre intuitiva. Le scelte possono essere aiutate se pensiamo alle definizioni che abbiamo dato dei concetti. Rielaborato da M. Lenzerini – Corso di Basi di dati
Scelta tra entità e attributo Un concetto verrà modellato come una entità se le sue istanze sono concettualmente significative indipendentemente da altre istanze se ha o potrà avere in futuro delle proprietà indipendenti dagli altri concetti se il concetto è importante nell’applicazione un attributo di una entità o relazione se le sue istanze non sono concettualmente significative se non ha senso considerare una sua istanza indipendentemente da altre istanze (Eta’ = 25 ha esistenza indipendente?) se serve solo a rappresentare una proprietà locale di un altro concetto Rielaborato da M. Lenzerini – Corso di Basi di dati
Scelta tra entità e attributo Le scelte possono cambiare durante l’analisi. Esempio: Nome Codice CittàNascita Persona Interessa anche la regione: Città diventa una entità Nome Persona Codice Città Nascita Regione Rielaborato da M. Lenzerini – Corso di Basi di dati
Scelta tra entità e attributo Le scelte possono cambiare durante l’analisi. Esempio: Cognome Codice CittàNascita Nome Budget Persona Dipartimento Interessa anche la città in cui ha sede un dipartimento Nome Città Nascita Sede Cognome Persona Codice Dipartimento Nome Budget Rielaborato da M. Lenzerini – Corso di Basi di dati
Scelta tra entità e relazione Un concetto verrà modellato come una entità se le sue istanze sono concettualmente significative indipendentemente da altre istanze se ha o potrà avere delle proprietà indipendenti dagli altri concetti se ha o potrà avere relazioni con altri concetti una relazione se le sue istanze non sono concettualmente significative indipendentemente da altre istanze, cioè se le sue istanze rappresentano insiemi di altre istanze se non ha senso pensare alla partecipazione delle sue instanze ad altre relazioni Rielaborato da M. Lenzerini – Corso di Basi di dati
Cardinalita’ delle entita’ nelle relazioni Rielaborato da M. Lenzerini – Corso di Basi di dati
Cardinalita’ nella vita di tutti i giorni Prendiamo uno qualunque di voi. Quanti indirizzi di residenza avete (come minimo e come massimo, analogamente per le altre domande)? Quanti libri avete nella vostra biblioteca? Quanti giornali comprati alla edicola leggete al giorno? Quanti piedi avete? Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Risposte possibili Quanti indirizzi di residenza avete (come minimo e come massimo, analogamente per le altre domande)? Minimo = 1, Massimo = 1 Quanti libri avete nella vostra biblioteca? Minimo = 0, Massimo = tanti, non li so contare Quanti giornali comprati alla edicola leggete al giorno? Minimo = 0, Massimo = 3 (ad esempio, la domenica) Quanti piedi avete? Minimo = 2, Massimo = 2 Rielaborato da M. Lenzerini – Corso di Basi di dati
Cardinalità (minima e massima): definizione Un vincolo di cardinalità tra una entita’ E e una relazione R esprime un limite minimo (cardinalita’ minima) ed un limite massimo (cardinalita’ massima) di istanze della relazione R a cui può partecipare ogni istanza dell’entità E. Serve a caratterizzare meglio il significato di una relazione. Vincolo di cardinalita’ E R e1 2 e2 1 Rielaborato da M. Lenzerini – Corso di Basi di dati
Esempio di vincolo di cardinalità Ad ogni impiegato sono assegnati da 1 a 5 progetti Ogni progetto è assegnato ad al più 50 impiegati Assegnazione Impiegato Progetto (1,5) (0,50) Istanza dello schema: Istanze(Impiegato) = { a,b,c } istanze(Progetto) = { x,y,v,w,z } istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) } Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Esempio di vincolo di cardinalità: cardinalita’ minima di Impiegato in Assegnazione Ad ogni impiegato sono assegnati da 1 a 5 progetti Ogni progetto è assegnato ad al più 50 impiegati Assegnazione Impiegato Progetto (1,5) (0,50) Istanza: istanze(Impiegato) = { a,b,c } istanze(Progetto) = { x,y,v,w,z } istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) } a,b,c compaionono in almeno una istanza di Assegnazione Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Esempio di vincolo di cardinalità: cardinalita’ minima di Progetto in Assegnazione Ad ogni impiegato sono assegnati da 1 a 5 progetti Ogni progetto è assegnato ad al più 50 impiegati Assegnazione Impiegato Progetto (1,5) (0,50) Istanza: istanze(Impiegato) = { a,b,c } istanze(Progetto) = { x,y,v,w,z } istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) } X non compare nelle istanze di Assegnazione Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Esempio di vincolo di cardinalità: cardinalita’ massima di Impiegato in Assegnazione Ad ogni impiegato sono assegnati da 1 a 5 progetti Ogni progetto è assegnato ad al più 50 impiegati Assegnazione Impiegato Progetto (1,5) (0,50) Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Esempio di vincolo di cardinalità: cardinalita’ massima di Progetto in Assegnazione Ad ogni impiegato sono assegnati da 1 a 5 incarichi Ogni incarico è assegnato al più a 50 impiegati Assegnazione Impiegato Progetto (1,5) (0,50) Inoltre, ci sono progetti (ad esempio lanciati da poco tempo) che possono non essere assegnati a nessun impiegato Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Domanda 2.3.1 Considera lo schema disegnato sotto. Esprimi le Cardinalita’ mimine e massime per la generalita’ degli Studenti, considerando tutti i casi possibili Cognome Età Nome Crediti EsameSuperato Studente Corso Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Soluzione Gli studenti in alcuni casi non hanno ancora superato Nessun esame, in genere ne superano fino d esaurirli, Diciamo 25 (dipende dal corso di laurea) Cognome Età Nome Crediti EsameSuperato (0,25) Studente Corso Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Soluzione I corsi nuovi potrebbero ancora non aver fatto nessun Appello, e quindi potrebbero non essere stati superati da nessuno studente, gli altri sono stati superati da un numero di studenti che puo’ essere anche molto grande, diciamo 300. Cognome Età Nome Crediti (0,300) EsameSuperato (0,25) Studente Corso Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Concetti introdotti Vincolo di cardinalita’ Cardinalita’ minima di entita’ in una relazione Cardinalita’ massima di entita’ in una relazione Rielaborato da M. Lenzerini – Corso di Basi di dati