Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: • Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati • Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA 2007-2008 1 Il modello Entità-Relazione Il modello Entità-Relazione (modello ER) è un modello concettuale che fornisce i costrutti per descrivere la realtà di interesse in maniera indipendente da come poi i relativi dati saranno organizzati logicamente e fisicamente nella Base di Dati, cioè indipendentemente dal modello logico e dal modello fisico. 2 I costrutti del modello E-R I costrutti del modello E-R (che vedremo) sono: Entità Attributo di Entità Relazione Attributo di Relazione Cardinalità di Relazione Identificatori 3 L’entità Il costrutto di entità permette di rappresentare una classe di oggetti (cioè fatti, persone, cose, etc.) che appartengono ad una realtà e che: hanno proprietà comuni hanno esistenza autonoma sono di interesse per l’applicazione Ad esempio si può scegliere di descrivere: un’azienda tramite le seguenti entità: Impiegato, Dipartimento, Città, etc. un’università tramite le seguenti entità: Studente, Corso, Docente, etc. 4 L’entità Un’istanza di entità (od occorrenza di entità) è un oggetto appartenente alla classe che l’entità rappresenta Ad esempio un’istanza dell’entità Impiegato è l’impiegato Mario Rossi, un’istanza dell’entità Studente è lo studente Luca Bianchi e una dell’entità Corso è il corso di Informatica per il corso di Laurea in Biotecnologie 5 L’entità La rappresentazione grafica di un’entità, in uno schema di descrizione della realtà di interesse, è un rettangolo con al centro il nome che la identifica univocamente l’entità. Ad esempio: Impiegato Città Studente Corso 6 Un esempio Vogliamo schematizzare tramite il modello E-R le seguenti entità coinvolte in una realtà universitaria: gli studenti della laurea breve e quelli della specialistica i professori (associati e ordinari) il personale tecnico e amministrativo Studente Laurea Breve Studente Laurea Specialistica Amministrativo Professore Associato Professore Ordinario Tecnico 7 L’attributo di Entità L’attributo di entità permette di descrivere una proprietà elementare di un’entità, il cui valore varia da istanza a istanza dell’entità. L’insieme dei valori ammissibili per un dato attributo prende il nome di dominio dell’attributo. Ad esempio, l’entità Impiegato può avere i seguenti attributi: Cognome, Nome, Stipendio, Età. L’entità Studente può avere i seguenti attributi: Matricola, Cognome, Nome, Data di nascita, Comune di Residenza. Il dominio dell’attributo Cognome delle entità Impiegato e Studente può essere l’insieme delle stringhe di 20 caratteri a-z e A-Z. Il dominio dell’attributo Età di Impiegato può essere l’insieme dei numeri interi compresi tra 18 e 65. Un particolare studente (un’istanza dell’entità Studente) può avere i seguenti valori dei suoi attributi: “1111”, “Rossi”, “Luca”, “13/06/1990”, “Milano”. 8 L’attributo di Entità La rappresentazione grafica di un attributo di entità, in uno schema di descrizione della realtà di interesse, è un cerchio collegato all’entità e identificato univocamente tramite un nome. Ad esempio: Cognome Nome Età Stipendio Impiegato 9 Un esempio Le due entità Studente Laurea Breve e Studente Laurea Specialistica, dell’esempio Precedente, possiedono gli attributi Matricola, Cognome, Nome, Data di nascita, Comune di Residenza. Studente Laurea Breve Matricola Cognome Nome Data di nascita Comune di Residenza Studente Laurea Specialistica Matricola Cognome Nome Data di nascita Comune di Residenza 10 L’esempio precedente... E se si volessero rappresentare tutti gli studenti tramite l’unica entità Studente, mantenendo però la distinzione tra i due tipi di laurea? Basta aggiungere un nuovo attributo che specifica il tipo di laurea Studente Matricola Cognome Nome Data di nascita Comune di Residenza Tipo di laurea 11 Il costrutto di Relazione Il costrutto di relazione permette di evidenziare un’associazione (o legame) tra n entità E1, E2,…, En. Se n=2, la relazione è binaria. Ad esempio, tra le due entità Studente e Corso Si può evidenziare una relazione di esame. La residenza è una relazione tra Impiegato e Città, e la sede di lavoro è una seconda relazione tra Impiegato e Città. Il grado di una relazione è definito come il numero di entità coinvolte. 12 Il costrutto di Relazione Un’occorrenza di relazione (o istanza di relazione) è una n-pla (coppia se n=2) costituita da n occorrenze di entità, una per ciascuna delle entità coinvolte. Ad esempio, si consideri un modello E-R di un’azienda composto dalle tre entità E1=Fornitore, E2=Prodotto, E3=Dipartimento. Tra di esse esiste la relazione Fornitura. Una possibile occorrenza della relazione Fornitura è la tripletta (“Rossi”, “Stampante”, “Ricerca”), dove “Rossi” è un’occorrenza dell’entità Fornitore, “Stampante” è un’occorrenza 13 Il costrutto di Relazione dell’entità Prodotto, e “Ricerca” è un’occorrenza dell’entità Dipartimento. In altre parole,il fornitore Rossi ha venduto una stampante al Dipartimento di Ricerca. Un secondo esempio: si consideri il modello E-R di un’università. Tra le entità Studente e Corso sussiste la relazione Esame. Quindi una possibile occorrenza della relazione Esame è data dalla coppia (“Luca Bianchi”, “Informatica”) dove “Luca Bianchi” è una occorrenza dell’entità Studente e “Informatica” è un’occorrenza dell’entità Corso. In altre parole lo Studente Luca Bianchi ha sostenuto l’esame 14 di Informatica. Il costrutto di Relazione La rappresentazione grafica di una relazione, in uno schema di descrizione della realtà di interesse, è un rombo contenente il nome che identifica univocamente la relazione, e collegato alle entità coinvolte. Ad esempio: Studente Esame Corso 15 L’attributo di Relazione L’attributo di relazione permette di descrivere una proprietà elementare di una relazione, il cui valore varia da istanza a istanza. L’insieme dei valori ammissibili per un attributo prende il nome di dominio dell’attributo. Ad esempio la relazione Esame può avere come possibili attributi Data e Voto. Il dominio dell’attributo Voto può essere l’insieme degli interi tra 18 e 30. Attenzione! L’attributo di una relazione NON è una proprietà delle entità coinvolte, ma è una proprietà del loro legame 16 Un esempio Le due entità Studente e Corso sono legate dalla relazione Esame che ha Data e Voto come attributi. Data Studente Voto Esame Corso Ad esempio l’istanza (“Luca Bianchi”, “Informatica”) di Esame, ha 30 come valore dell’attributo Voto e “25/02/2008” come valore dell’attributo Data. 17 La cardinalità delle relazioni Data un’entità E coinvolta in una relazione R (di grado n qualsiasi), la cardinalità permette di esprimere il numero minimo m (cardinalità minima) e il numero massimo M (cardinalità massima) di istanze di R a cui un’istanza di E può partecipare (è un vincolo!). Graficamente si ha: E (m,M) R ... 18 La cardinalità delle relazioni Ad esempio, nel seguente schema E-R di una certa azienda, l’entità Impiegato è legata all’entità Progetto tramite la relazione Assegnazione. Questo schema modellizza il fatto che in un’azienda ogni impiegato è coinvolto in qualche progetto. Un’istanza della relazione Assegnazione è una coppia (I, P), dove I è un’istanza dell’entità Impiegato e P un’istanza dell’entità Progetto. Impiegato (1,5) Assegnazione (0,50) Progetto 19 La cardinalità delle relazioni In altre parole, all’impiegato I è stato assegnato il progetto P. Il fatto che il vincolo di cardinalità per l’entità Impiegato coinvolto nella relazione Assegnazione sia (1,5), significa che un’istanza di Impiegato può partecipare da un minimo di 1 volta ad un massimo di 5 volte ad un’istanza di Assegnazione. Con tale schema si vuole cioè modellizzare il fatto che, nell’azienda in questione, ad un certo impiegato deve obbligatoriamente essere assegnato almeno un progetto ma non gli possono essere assegnati più di 5 progetti. 20 La cardinalità delle relazioni Allo stesso modo possiamo dire che un’istanza dell’entità Progetto può partecipare da un minimo di 0 volte ad un massimo di 50 volte ad un’istanza di Assegnazione. Quindi un progetto può anche non essere assegnato a nessun impiegato (ad esempio un progetto lanciato da poco tempo) e non può essere assegnato a più di 50 impiegati. 21 La cardinalità delle relazioni Valori interessanti di cardinalità minima m: 0, significa che la partecipazione è opzionale 1, significa che la partecipazione è obbligatoria Nello schema Impiegato (1,5) Assegnazione (0,50) Progetto la partecipazione dell’entità Impiegato alla relazione Assegnazione è perciò obbligatoria, cioè un impiegato deve obbligatoriamente essere coinvolto in un progetto. La partecipazione dell’entità Progetto alla relazione Assegnazione è invece opzionale, cioè un progetto può anche 22 non essere assegnato a nessun impiegato. La cardinalità delle relazioni Valori interessanti di cardinalità massima M: 1, significa che le occorrenze dell’entità partecipano al più 1 volta alle occorrenze della relazione N, significa che le occorrenze dell’entità partecipano un qualsivoglia numero di volte alle occorrenze della relazione 23 La cardinalità delle relazioni Nello schema Impiegato (1,1) Assegnazione (0,N) Progetto l’entità Progetto può partecipare ad un numero qualsiasi di istanze di Assegnazione (non più limitato a 50 come nello schema precedente), cioè un progetto può essere assegnato ad un qualsivoglia numero di impiegati. L’entità Impiegato può partecipare invece ad una sola istanza della relazione Assegnazione e quindi un impiegato dell’azienda deve essere coinvolto in un solo progetto. 24 La cardinalità delle relazioni NOTA BENE: la coppia (0, N) per la cardinalità minima e massima di un’entità in una relazione è equivalente all’assenza di vincolo di cardinalità. 25 Qualche esempio Il seguente schema E-R Persona (0,N) Residenza (0,N) Città potrebbe rappresentare uno schema concettuale compatibile con la realtà amministrativa italiana? NO, perché non è ammesso che una persona in Italia abbia più città di residenza. 26 Qualche esempio Il seguente schema E-R Persona (0,1) Residenza (0,N) Città potrebbe rappresentare uno schema concettuale compatibile con la realtà amministrativa italiana? SI’, se ammettiamo che non è necessario che la residenza di un impiegato sia nota. 27 Qualche esempio Il seguente schema E-R Persona (1,1) Residenza (0,N) Città potrebbe rappresentare uno schema concettuale compatibile con la realtà amministrativa italiana? SI’, perché in Italia la residenza deve essere nota e unica. Quindi questo schema modellizza meglio del Precedente la realtà amministrativa italiana. 28 Classificazione delle relazioni binarie Una relazione R tra due entità E1 ed E2 ,cioè binaria E1 (m1,M1) R (m2,M2) E2 viene classificata, sulla base dei valori delle cardinalità massime M1 e M2, in: relazione “uno a uno” se M1= M2=1 relazione “uno a molti” se M1=1 e M2=N relazione “molti a molti” se M1=N e M2=N 29 Classificazione delle relazioni binarie Esempi di relazioni binarie “uno a uno” Impiegato Professore (0,1) (1,1) Direzione Docenza (1,1) (1,1) Progetto Corso 30 Classificazione delle relazioni binarie Esempi di relazioni binarie “uno a molti” Studente Comune (1,1) (1,1) Nascita Ubicazione (0,N) (1,N) Città Provincia 31 Classificazione delle relazioni binarie Esempi di relazioni binarie “molti a molti” Studente Montagna (0,N) (0,N) Esame Scalata (0,N) (1,N) Corso Alpinista 32 Gli identificatori di entità Un identificatore di entità permette di specificare un insieme di proprietà che identificano univocamente le istanze dell’entità, in maniera tale che non possano esistere due istanze dell’entità che assumono lo stesso valore per l’insieme di proprietà che compongono l’identificatore. Nel seguito ci occuperemo solo di identificatori interni, cioè di identificatori composti da attributi di entità. Su ogni entità di uno schema E-R deve essere definito almeno un identificatore. 33 Gli identificatori di entità Si consideri il seguente schema in cui l’entità Persona ha i seguenti attributi: CodiceFiscale, Cognome, Nome, Residenza. CodiceFiscale Cognome Persona Nome Residenza L’identificatore per Persona può essere CodiceFiscale (un solo attributo) 34 Gli identificatori di entità Si consideri il seguente schema in cui l’entità Persona ha i seguenti attributi: Cognome, Nome, DataNascita, Residenza. Cognome Nome Persona DataNascita Residenza L’identificatore per Persona può essere (Cognome,Nome,Data di Nascita) (tre attributi) 35 Gli identificatori di entità Si consideri il seguente schema in cui l’entità Automobile ha i seguenti attributi: Targa, Modello, Colore. Targa Modello Colore Automobile L’identificatore per Automobile può essere Targa (un solo attributo) 36 Gli identificatori di entità NOTA BENE: per un’entità, l’insieme di tutti i suoi attributi costituisce banalmente un identificatore in quanto si suppone che non possano esistere due occorrenze completamente coincidenti. 37 Gli identificatori di entità La rapresentazione grafica di un identificatore composto da un solo attributo è l’annerimento del corrispondente pallino CodiceFiscale Cognome Persona Nome Residenza 38 Gli identificatori di entità La rapresentazione grafica di un identificatore composto da più attributi è una linea che unisce gli attributi e che termina con un pallino annerito Cognome Nome Persona Data di nascita Residenza 39