Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning Carlo Batini 2 Il modello Entita’ Relazione 2.5 Relazioni Is-A e Generalizzazioni Rielaborato da M. Lenzerini – Corso di Basi di dati
Relazione (o legame) IS-A tra entita’ Rielaborato da M. Lenzerini – Corso di Basi di dati
Relazione IS-A (o IS-A) tra entità Fino ad ora non abbiamo detto nulla sul fatto se due entità possano o no avere istanze in comune E’ facile verificare che, in molti contesti, può accadere che tra due classi rappresentate da due entità nello schema concettuale sussista la relazione IS-A (o relazione di sottoinsieme), e cioè che ogni istanza di una sia anche istanza dell’altra. (Es. Studente, Studente della laurea breve) La relazione IS-A nel modello ER si può definire tra due entità, che si dicono “entità padre” ed “entità figlia” (o sottoentità, cioè quella che rappresenta un sottoinsieme della entità padre) (Es Studente e’ entita’ padre di Studente della laurea breve) Rielaborato da M. Lenzerini – Corso di Basi di dati
Sintassi: rappresentazione grafica della relazione IS-A tra entità La relazione ISA si rappresenta nel diagramma dello schema concettuale mediante una freccia dalla sottoentità alla entità padre Esempio Persona Si dice che Studente è in relazione IS-A con Persona, o, in alternativa, che Studente IS-A Persona Studente Rielaborato da M. Lenzerini – Corso di Basi di dati
Ereditarietà su entità nel modello ER Principio di ereditarietà: ogni proprietà dell’entità padre (attributo, relazione, ecc.) è anche una proprietà della sottoentità, e non si riporta esplicitamente nel diagramma. L’entità figlia può avere ovviamente ulteriori proprietà Cognome Età Dal fatto che Ogni istanza di Persona ha una Età Ogni istanza di Studente è istanza di Persona segue logicamente che Ogni istanza di Studente ha una Età Cognome, Età ereditati da Persona, Matricola ulteriore proprietà Persona Studente Matricola Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Domanda 2.5.1 Considera lo schema sotto. Secondo te e’ corretto, rispetta cioe’ tutte le definizioni e proprieta’ definite in precedenza? Risposta Nome Cognome Codice Fiscale Persona No, perche’ sulla base della proprieta’ di ereditarieta’ l’attributo Codice Fiscale e’ gia’ associato anche a Pescatore Pescatore Codice Fiscale Numero Licenza pesca Rielaborato da M. Lenzerini – Corso di Basi di dati
Generalizzazione tra entita’ Rielaborato da M. Lenzerini – Corso di Basi di dati
Generalizzazione tra entità Finora, abbiamo considerato la relazione ISA che stabilisce che l’entità padre è più generale della sottoentità. Talvolta, però, l’entità padre può generalizzare diverse sottoentità rispetto ad un unico criterio. In questo caso si parla di generalizzazione. Rielaborato da M. Lenzerini – Corso di Basi di dati
Rappresentazione della generalizzazione La generalizzazione si indica collegando mediante un arco le sottoentità, e collegando con una freccia tale arco alla entità padre. Esempio Entità padre Persona Sottoentità Sottoentità Uomo Donna Rielaborato da M. Lenzerini – Corso di Basi di dati
Tipi di generalizzazione tra entità Una generalizzazione può essere di due tipi: Completa: l’unione delle istanze delle sottoentità è uguale all’insieme delle istanze dell’entità padre Non completa Rielaborato da M. Lenzerini – Corso di Basi di dati
Esempio di generalizzazione completa La generalizzazione si indica collegando mediante un arco le sottoentità, e collegando con una freccia tale arco alla entità padre. La freccia è annerita se la generalizzazione è completa. Esempio Entità padre Generalizzazione completa Persona Sottoentità Sottoentità Uomo Donna Rielaborato da M. Lenzerini – Corso di Basi di dati
Esempio di generalizzazione non completa La freccia non è annerita se la generalizzazione non è completa. Facciamo l’esempio delle persone che operano alla universita’. Esempio Entità padre Generalizzazione non completa, perche’ ci sono anche i non docenti Persona Sottoentità Sottoentità Studente Docente Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Domanda 2.5.2 La generalizzazione qui sotto e’ completa o non completa? Risposta Persona Persona Minorenne (sotto i 18 anni) Sposato Minorenne (sotto i 18 anni) Sposato Rielaborato da M. Lenzerini – Corso di Basi di dati
Generalizzazioni ed ereditarietà Il principio di ereditarietà vale anche per le generalizzazioni: ogni proprietà dell’entità padre è anche una proprietà della sottoentità, e non si riporta esplicitamente nel diagramma. L’entità figlia può avere ovviamente ulteriori proprietà. Cognome Età Nome Regione Sede Persona Città Codice Insegna Studente Docente Corso Matricola Rielaborato da M. Lenzerini – Corso di Basi di dati
Diverse generalizzazioni della stessa classe La stessa entità può essere padre in diverse generalizzazioni Persona Uomo Donna Impiegato Studente Concettualmente, non c’è alcuna correlazione tra due generalizzazioni diverse, perchè rispondono a due criteri diversi di classificare le istanze della entità padre Rielaborato da M. Lenzerini – Corso di Basi di dati
Differenza tra due is-a e una generalizzazione Persona Uomo Donna Impiegato Sportivo Le due sottoclassi derivano da uno stesso criterio di classificazione delle istanze della superclasse Le due sottoentità sono indipendenti, nel senso che il loro significato non deriva dallo stesso criterio di classificazione delle istanze della entità padre Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Esercizio 2.5.1 Svolgi l’esercizio 7.1 del libro di riferimento per il corso (P.Atzeni et al – Basi di Dati McGrawHill, 2006 Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Esercizio 2.5.2 Svolgi l’esercizio 7.10 del libro di riferimento per il corso (P.Atzeni et al – Basi di Dati McGrawHill, 2006 Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Approfondimenti Vi sono molte similitudini tra gli schemi Entita’ Relazione e i diagrammi delle classi in UML. Leggi e studia a tale proposito la sezione 7.4 del libro di riferimento. Ti dara’ delle regole precise per mettere in corrispondenza il modello Entita’ Relazione con i concetti UML utilizzati nei diagrammi delle classi, cosi’ potrai usare idue formalismi in modo intercambiabile. Rielaborato da M. Lenzerini – Corso di Basi di dati
Rielaborato da M. Lenzerini – Corso di Basi di dati Concetti introdotti Relazione IS-A Generalizzazione Generalizzazione completa Generalizzazione incompleta Rielaborato da M. Lenzerini – Corso di Basi di dati