1 corso di informatica (basi di dati) lezione 3 (19 dicembre 2008) modello entità-relazione:...

38
1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni a: tzeni, Ceri, Paraboschi, Torlone - Basi di Dati ucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica AA 2007-2008

Upload: arrigo-sorrentino

Post on 01-May-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

1

Corso di Informatica

(Basi di Dati)Lezione 3 (19 dicembre 2008)

Modello Entità-Relazione:cardinalità delle relazioni, identificatori

e generalizzazioniDa:Atzeni, Ceri, Paraboschi, Torlone - Basi di DatiLucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica,

AA 2007-2008

Page 2: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

2

Il modello Entità-RelazioneIl modello Entità-Relazione (modello E-R) è un modello concettuale che fornisce una serie di costrutti per descrivere lo schema della realtà di interesse in maniera indipendente da come poi i relativi dati saranno organizzati sull’elaboratore, cioè indipendentemente dal modello logico e dal modello fisico.

Page 3: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

3

I costrutti del modello E-R

I costrutti del modello E-R sono:

Entità Attributi di Entità Relazione Attributi di Relazione Cardinalità di Relazione Identificatori Generalizzazioni

Page 4: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

4

La cardinalità delle relazioni

Data un’entità E coinvolta in una relazione R(di grado qualsiasi), il vincolo di cardinalitàesprime il numero minimo m (cardinalitàminima) e il numero massimo M (cardinalitàmassima) di occorrenze (istanze) di R a cuiun’occorrenza (istanza) di E può partecipare.Graficamente si ha:

E R ...(m,M)

Page 5: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

5

La cardinalità delle relazioni

Nel seguito si farà riferimento a relazioni digrado 2 (relazioni binarie) che coinvolgonoquindi due sole entità.Un esempio che meglio chiarisce il concetto inquestione è il seguente. Si consideri lo schema:

Assegnazione

Le entità Impiegato e Progetto sono legate dallarelazione Assegnazione. Si vuole infatti modellare,per la realtà azienda, il fatto che ogni impiegato sia...

Impiegato Progetto(1,5) (0,50)

Page 6: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

6

La cardinalità delle relazioni

…coinvolto in progetti. Un’occorrenza della relazioneAssegnazione è una coppia (I, P), dove I èun’occorrenza dell’entità Impiegato e Pun’occorrenza dell’entità Progetto. Cioèall’impiegato I è stato assegnato il progetto P. Il fattoche il vincolo di cardinalità per Impiegato inAssegnazione sia (1,5), significa che un’occorrenza diImpiegato può partecipare da un minimo di 1 volta adun massimo di 5 volte ad una occorrenza diAssegnazione. In altre parole nella realtà modellatadallo schema precedente, ad un impiegato deveobbligatoriamente essere assegnato almeno unprogetto ma non gli possono essere assegnati più...

Page 7: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

7

La cardinalità delle relazioni…di 5 progetti.

Allo stesso modo possiamo dire che un’occorrenzadell’entità Progetto può partecipare da un minimo di0 volte ad un massimo di 50 volte ad una occorrenzadi Assegnazione. Quindi un progetto può anche nonessere assegnato a nessun impiegato (ad esempio unprogetto lanciato da poco tempo) e non può essereassegnato a più di 50 impiegati. Si considerino leseguenti istanze di Impiegato, Progetto eAssegnazione:

Impiegato -> {I1, I2, I3}Progetto -> {P1, P2, P3, P4, P5}Assegnazione -> {(I1, P1),(I2, P4),(I3, P2),(I1, P4),(I1, P5),(I3, P5)}

Page 8: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

8

La cardinalità delle relazioni

…Si può notare che:

a tutti gli impiegati è assegnato almeno unprogetto e non più di 5 progetti tutti i progetti sono assegnati a non più di 50impiegati (il progetto P3 non è assegnato a nessuno)

In definitiva l’insieme delle occorenze della relazioneAssegnazione della slide precedente rispetta ilvincolo di cardinalità evidenziato nello schema.

Page 9: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

9

La cardinalità delle relazioni

I valori maggiormente utilizzati per la cardinalitàminima sono:

0, significa che la partecipazione è opzionale 1, significa che la partecipazione è obbligatoria

Nello schema:

AssegnazioneImpiegato Progetto(1,5) (0,50)

Page 10: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

10

La cardinalità delle relazioni

…la partecipazione dell’entità Impiegato allarelazione Assegnazione è obbligatoria, ovvero unimpiegato deve obbligatoriamente esserecoinvolto in un progetto. La partecipazione dell’entitàProgetto alla relazione Assegnazione è inveceopzionale, ovvero un progetto può anchenon essere assegnato a nessun impiegato.

Page 11: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

11

La cardinalità delle relazioni

I valori maggiormente utilizzati per la cardinalitàmassima sono:

1, significa che le occorrenze dell’entitàpartecipano al più 1 volta alle occorrenze dellarelazione N, significa che le occorrenze dell’entitàpartecipano un qualsivoglia numero di volte alleoccorrenze della relazione

Page 12: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

12

La cardinalità delle relazioni

Si consideri ad esempio il nuovo schema:

AssegnazioneImpiegato Progetto(1,5) (0,N)

La differenza con lo schema precedente (in cui lacardinalità massima di Progetto era 50) è che oraun’occorrenza di Progetto può partecipare ad unnumero qualsiasi di occorrenze di Assegnazione (nonpiù limitato a 50).

Page 13: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

13

La cardinalità delle relazioni

Si consideri ora il nuovo schema:

AssegnazioneImpiegato Progetto(1,1) (0,N)

In questo caso, rispetto allo schema precedente,si è portata a 1 la cardinalità massima di Impiegatoin quanto si vuole modellare il fatto cheun’occorrenza di Impiegato può partecipare ad unasola occorrenza della relazione Assegnazione.In altre parole un impiegato deve essere coinvoltoobbligatoriamente in un solo progetto.

Page 14: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

14

La cardinalità delle relazioni

...Si noti che la coppia (0, N) per le cardinalitàminima e massima di un’entità in una relazioneè equivalente all’assenza del vincolo di cardinalità.Nello schema precedente, infatti un progetto puòessere assegnato a 0 o ad un qualsivoglia numero diimpiegati.

Page 15: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

15

Esempi di vincolo cardinalità

Si consideri il seguente schema:

ResidenzaPersona Città(0,N) (0,N)

Potrebbe essere compatibile con la realtàamministrativa italiana?NO, perché non è ammesso che una persona in Italiaabbia più città di residenza.

Page 16: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

16

Esempi di vincolo cardinalità

Si consideri quest’altro schema:

ResidenzaPersona Città(0,1) (0,N)

Potrebbe essere compatibile con la realtàamministrativa italiana?SI’, se ammettiamo che non è necessario che laresidenza di un impiegato sia nota (se però è notaquesta è unica)

Page 17: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

17

Esempi di vincolo cardinalità

Si consideri quest’altro schema:

ResidenzaPersona Città(1,1) (0,N)

Potrebbe essere compatibile con la realtàamministrativa italiana?SI’, se ammettiamo che è necessario che laresidenza di un impiegato sia nota è unica

Page 18: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

18

Classificazione delle relazioni binarie

Una relazione R tra due entità E1 ed E2 (grado 2)

RE1 E2(m1,M1) (m2,M2)

Viene classificata, sulla base dei valori dellecardinalità massime M1 e M2, in: relazione “uno a uno” se M1= M2=1 relazione “uno a molti” se M1=1 e M2=Nrelazione “molti a molti” se M1=N e M2=N

Page 19: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

19

Classificazione delle relazioni binarie

Esempi di relazioni binarie “uno a uno”

DirezioneImpiegato Progetto(0,1) (1,1)

DocenzaProfessore Corso(1,1) (1,1)

Page 20: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

20

Classificazione delle relazioni binarie

Esempi di relazioni binarie “uno a molti”

NascitaStudente Città(1,1) (0,N)

UbicazioneComune Provincia(1,1) (1,N)

Page 21: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

21

Classificazione delle relazioni binarie

Esempi di relazioni binarie “molti a molti”

EsameStudente Corso(0,N) (0,N)

ScalataMontagna Alpinista(0,N) (1,N)

Page 22: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

22

Gli identificatori di entità

Un identificatore di entità è un insieme diproprietà che identificano univocamente leistanze dell’entità. Cioè non possono esisteredue istanze dell’entità che assumono lostesso valore per tutte le proprietà cheformano l’identificatore.Nel seguito ci occuperemo solo diidentificatori interni (composti solo daattributi di entità).Su ogni entità deve essere definito almenoun identificatore.

Page 23: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

23

Gli identificatori di entità

Si consideri il seguente schema in cui l’entitàPersona ha i seguenti attributi: Codicefiscale, Cognome, Nome, Residenza.

Persona

Cod.Fis. Cognome Nome

Residenza

L’identificatore per Persona può essereCodice Fiscale (unico attributo)

Page 24: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

24

Gli identificatori di entità

Oppure il seguente schema in cui l’entitàPersona ha i seguenti attributi: Cognome,Nome, Data di nascita, Residenza

L’identificatore per Persona può essere(Cognome,Nome,Data di Nascita) (treattributi)

Persona

CognomeNome Data di nascita

Residenza

Page 25: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

25

Gli identificatori di entità

Oppure il seguente schema in cui l’entitàAutomobile ha i seguenti attributi: Targa,Modello, Colore.

Automobile

Targa Modello Colore

L’identificatore per Automobile può essereTarga (unico attributo)

Page 26: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

26

Gli identificatori di entità

Oppure il seguente schema in cui l’entitàPersona ha i seguenti attributi: Cognome,Nome, Data di nascita, Residenza

L’identificatore per Persona può essere(Cognome,Nome,Data di Nascita) (treattributi)

Persona

CognomeNome Data di nascita

Residenza

Page 27: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

27

Gli identificatori di entità

Per un’entità, l’insieme di tutti i suoiattributi costituisce banalmente unidentificatore in quanto si suppone che nonpossano esistere due occorrenzecompletamente coincidenti.

Page 28: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

28

Gli identificatori di entità

La rapresentazione grafica di unidentificatore composto da un solo attributoè l’annerimento del corrispondente pallino

Persona

Cod.Fis. Cognome Nome

Residenza

Page 29: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

29

Gli identificatori di entità

La rapresentazione grafica di unidentificatore composto da più attributiè una linea che unisce gli attributi e chetermina con un pallino annerito

Persona

CognomeNome Data di nascita

Residenza

Page 30: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

30

Le generalizzazioniUn’entità E più generale, rispetto ad ununico criterio, di n entità E1, E2, …, En, è dettageneralizzazione di E1, E2, …, En. Len entità sono dunque specializzazioni di E.E è detta entità padre ed E1, E2, …, En sonodette entità figlie (o sottoentità).

Ad esempio le entità Uomo e Donna sonospecializzazioni dell’entità Persona che èa quindi una generalizzazione di Uomo eDonna.

Page 31: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

31

Le generalizzazioniLa rappresentazione grafica di unageneralizzazione è un arco che collega leentità figlie tra di loro e una freccia checollega l’arco all’entità padre

Persona

Uomo Donna

Page 32: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

32

Le generalizzazioniValgono le seguenti proprietà:

ogni occorrenza di un’entità figlia e ancheoccorrenza dell’entità padre ogni proprietà dell’entità padre (attributi,identificatori, relazioni e altregeneralizzazioni) è anche proprietà delleentità figlie -> ereditarietà

Page 33: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

33

Le generalizzazioni

Persona

Studente Docente

CognomeNome Data di nascita

Matricola

Ogni attributo di Persona è ereditato da Studentee in più Studente ha l’attributo Matricola

Page 34: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

34

Le generalizzazioniUna generalizzazione è:

totale se ogni occorrenza dell’entità padreè un’occorrenza di almeno una delle entitàfiglie, altrimenti è parziale esclusiva se ogni occorrenza dell’entità padreè al più un’occorrenza di una delle entitàfiglie, altrimenti è sovrapposta

Page 35: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

35

Le generalizzazioniEsempio di generalizzazione totaleed esclusiva:

Persona

Uomo Donna

Page 36: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

36

Le generalizzazioniEsempio di generalizzazione parzialeed esclusiva:

Persona

Studente Docente

Page 37: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

37

Le generalizzazioniEsempio di generalizzazione parzialee sovrapposta:

Persona

Studente Impiegato

Page 38: 1 Corso di Informatica (Basi di Dati) Lezione 3 (19 dicembre 2008) Modello Entità-Relazione: cardinalità delle relazioni, identificatori e generalizzazioni

38

Le generalizzazioniLa stessa entità può essere padre in distintegeneralizzazioni

Persona

Uomo Donna Studente Docente

Le due generalizzazioni corrispondono a due criteri diversidi classificazione dell’occorrenze dell’entità padre Persona