Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica...

36
Il modello Entità-Relazioni (entity-relationship)

Transcript of Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica...

Page 1: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

Il modello Entità-Relazioni(entity-relationship)

Page 2: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

3

Problema: progettare una base di dati a partire da requisiti sulla realtà di interesse

Progettare=definire

struttura

caratteristiche

contenuto

Introduzione alla progettazione

Page 3: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

9

Nell’ambito delle basi di dati: separare in maniera netta le decisioni relative a “cosa” rappresentare in una base di dati da quelle relative a “come” farlo

■ Cosa: prima fase (progettazione concettuale)

■ Come: seconda e terza fase (progettazione logica e fisica)

Metodologie di progettazione

Page 4: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

10

Progettazione concettuale

■ Fa riferimento a un modello concettuale dei dati

■ I modelli concettuali ci consentono di descrivere l’organizzazione dei dati a un alto livello di astrazione

Metodologie di progettazione

Page 5: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

11

Progettazione logica■ Traduzione dello schema concettuale nel modello di

rappresentazione dei dati

■ Fa riferimento a un modello logico dei dati

■ Modello logico: indipendente dai dettagli fisici, ma concreto (es. modello relazionale)

Progettazione fisica■ Fa riferimento a un modello fisico dei dati

Modello fisico: dipende dallo specifico DBMS scelto

Metodologie di progettazione

Page 6: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

12

GuyguyguyguyguHvvvuvuvuvFvvvuvuvuvuVvyuvuyvuvuVyuvuyvuyvuVyuvuyvuo

Progettazione concettuale

Progettazione logica

Progettazione fisica

Modello Entità-Relazionale

Relazioni/ tabelle

Livello fisico (memorizzazione)

Page 7: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

13

Il modello Entità-Relazione è un modello concettuale dei dati

Utilizzato per la progettazione concettuale

Fornisce una serie di strutture (costrutti, astrazioni) atte a descrivere la realtà di interesse, ovvero per la descrizione dell’organizzazione dei dati a un alto livello di astrazione

Modello Entità-Relazione

Page 8: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

14

Entità: rappresentano classi di oggetti che hanno proprietà comuni ed esistenza “autonoma” ai fini dell’applicazione di interesse

Es. Città, Dipartimento, Impiegato, Acquisto e Vendita (nel contesto di un’applicazione aziendale)

Occorrenza di un’entità=elemento dell’insieme che l’entità rappresenta

Esempio: Torino è un’occorrenza dell’entità Città

Modello Entità-Relazione

Page 9: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

15

Entità:

■ Ogni entità ha un nome che la identifica univocamente

Impiegato Dipartimento

Città

Modello Entità-Relazione

Page 10: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

16

Relazione (o associazione):

■ Rappresenta un legame logico tra due o più entità

■ Esempio:

⬥ Residenza: tra le entità Città e Impiegato

⬥ Esame: tra le entità Studente e Corso

■ Un’occorrenza di relazione è una n-upla costituita da occorrenze di entità

■ Esempio:

⬥ Esame={(Rossi, Informatica 1), (Bianchi, Informatica 1), (Bianchi, Informatica 2)}

Modello Entità-Relazione

Page 11: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

17

Relazione (o associazione):

■ Ogni relazione ha un nome che la identifica univocamente

■ Graficamente: un rombo, e linee che connettono la relazione con ciascuna delle sue componenti

Studente CorsoEsame

Modello Entità-Relazione

Page 12: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

18

Relazione (o associazione):

■ Possono esistere relazioni diverse che coinvolgono le stesse entità

Impiegato CittàResidenza

Sede di lavoro

Modello Entità-Relazione

Page 13: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

19

Relazione (o associazione):

■ È possibile avere relazione tra una entità e sé stessa (associazione ricorsiva)

■ possibilità di specificare il ruolo

Impiegato

Collega

Prodotto

Composizione

Componente Composto

Modello Entità-Relazione

Page 14: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

20

Relazione (o associazione):

■ È possibile avere relazioni che coinvolgono più di due entità

■ non così frequenti...

Dipartimento

Fornitura ProdottoFornitore

Modello Entità-Relazione

Page 15: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

21

Attributi:

■ Descrivono le proprietà elementari di entità o relazioni che sono di interesse ai fini dell’applicazione

■ Esempi:

⬥ Cognome, Stipendio e Età attributi dell’entità Impiegato

⬥ Data e Voto possibili attributi della relazione Esame tra Studente e Corso

Modello Entità-Relazione

Page 16: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

22

Attributi:

■ Un attributo associa a ciascuna occorrenza di entità o di relazione un valore appartenente al dominio dell’attributo

⬥ Dominio: i valori ammissibili per l’attributo

Modello Entità-Relazione

Page 17: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

23

Attributi:

Studente CorsoEsame

Anno di iscrizione

MatricolaVoto Data esame

Anno di corso

Nome

Modello Entità-Relazione

Page 18: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

26

Attributi composti:

■ Può risultare comodo raggruppare attributi che presentano affinità nel loro significato e uso

■ L’insieme di attributi che si ottiene in questa maniera viene detto attributo composto

Modello Entità-Relazione

Page 19: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

27

Attributi composti:

■ Esempio: raggruppare Via, Numero civico e CAP per formare l’attributo composto Indirizzo

PersonaVia

EtàNome

Sesso

Indirizzo

CAP

Numero civico

Modello Entità-Relazione

Page 20: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

28

Direzione

Partecipazione

Afferenza

Composizione

Impiegato

Progetto

Dipartimento

Sede

Indirizzo ViaCAP

Numero civico

Città

Telefono

NomeData

afferenza

Codice

Cognome

Stipendio

Età

Data inizioNome

Budget

Data consegna

Modello Entità-Relazione(1,1)

(0,1)

Page 21: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

29

Cardinalità:

■ Vengono specificate per ciascuna partecipazione di entità a una relazione

■ Descrivono il numero minimo e massimo di occorrenze di relazione cui una occorrenza dell’entità può partecipare

⬥ Quante volte, in una relazione tra entità, un’occorrenza di una di queste entità può essere legata a occorrenze delle altre entità coinvolte

Altri costrutti: cardinalità

Page 22: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

30

Cardinalità:

■ Esempio: relazione Assegnamento tra le entità Impiegato e Incarico

■ Impiegato: cardinalità minima=1, massima=5

⬥ Un Impiegato può essere assegnato a un minimo di 1 Incarico e a un massimo di 5 Incarichi tramite la relazione Assegnamento

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

Altri costrutti: cardinalità

Page 23: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

30

Cardinalità:

■ Esempio: relazione Assegnamento tra le entità Impiegato e Incarico

■ Incarico: cardinalità minima=0, massima=50

⬥ Un certo Incarico può NON essere assegnato ad alcun impiegato o essere assegnato al massimo a 50 impiegati tramite la relazione Assegnamento

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

Altri costrutti: cardinalità

Page 24: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

32

Nella maggiore parte dei casi, è sufficiente utilizzare solo tre valori:

■ Zero

■ Uno

■ Il simbolo N: indica genericamente un intero maggiore di uno

Altri costrutti: cardinalità

Page 25: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

33

Cardinalità minima:

■ Zero: la partecipazione dell’entità relativa è opzionale

■ Uno: la partecipazione dell’entità relativa è obbligatoria

Altri costrutti: cardinalità

Page 26: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

34

Cardinalità massima:

■ Uno: la partecipazione dell’entità relativa associa a una occorrenza dell’entità una sola occorrenza (o nessuna) dell’altra entità che partecipa alla relazione

■ N: c’è una associazione con un numero arbitrario di occorrenze dell’altra entità

Altri costrutti: cardinalità

Page 27: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

35

Esempio 1:

■ Ogni persona può essere residente in una e una sola città (card. max = 1)

■ Ogni città può non avere residenti oppure ha molti residenti (card. max = N)

■ Relazione uno a molti

Persona CittàResidenza(1,1) (0,N)

Altri costrutti: cardinalità

Page 28: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

36

Esempio 2:

■ Cardinalità massima pari a uno per entrambe le entità coinvolte: definisce una corrispondenza uno a uno tra le occorrenze di tali entità

■ Relazione uno a uno

Ordine FatturaVendita(0,1) (1,1)

Altri costrutti: cardinalità

Page 29: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

37

Esempio 3:

■ Cardinalità massima pari a N per entrambe le entità coinvolte

■ Relazione molti a molti

Turista ViaggioVendita(1,N) (0,N)

Altri costrutti: cardinalità

Page 30: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

39

Cardinalità degli attributi:

■ Possono essere specificate per gli attributi di entità o relazioni

■ Descrivono il numero minimo e massimo di valori dell’attributo associati a ogni occorrenza di entità o relazione

■ Nella maggior parte dei casi, la cardinalità di un attributo è (1,1) (e viene omessa)

Altri costrutti: cardinalità

Page 31: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

40

Cardinalità degli attributi:

■ Il valore per un certo attributo può essere nullo: minimo della cardinalità=0

■ Possono esistere diversi valori di un certo attributo per una occorrenza: massimo della cardinalità=N

Persona

Targa automobile

Numero patente

Cognome

(0,N)

(0,1)

Altri costrutti: cardinalità

Page 32: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

41

Cardinalità degli attributi:

■ Cardinalità minima=0: l’attributo è opzionale (l’informazione potrebbe essere non disponibile)

■ Cardinalità minima=1: l’attributo è obbligatorio

■ Cardinalità massima=N: l’attributo è multivalore

Altri costrutti: cardinalità

Page 33: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

42

Identificatori delle entità:

■ Descrivono i concetti (attributi e/o entità) che permettono di identificare univocamente le occorrenza delle entità

■ In molti casi, uno o più attributi di una entità sono sufficienti a individuare un identificatore

Altri costrutti: identificatori delle entità

Page 34: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

43

Identificatori delle entità:

■ Per esempio: non possono esistere due automobili con la stessa targa

■ Targa può essere un identificatore interno per l’entità Automobile

Automobile

Targa

Colore

Modello

Altri costrutti: identificatori delle entità

Page 35: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

44

Identificatori delle entità:

■ possono essere costituiti dall’unione di più attributi

FilmTitolo

Anno

Regista

Produzione

Altri costrutti: identificatori delle entità

Page 36: Il modello Entità-Relazioni (entity-relationship) - Dipartimento di Informatica …pozzato/informatica/ER.pdf · 2019-10-03 · 9 Nell’ambito delle basi di dati: separare in maniera

51

Direzione

Partecipazione

Afferenza

Composizione

Impiegato

Progetto

Dipartimento

Sede

Indirizzo ViaCAP

Numero civico

Città

Telefono

Nome

Data afferenza

Codice

Cognome

Stipendio

Età

Data inizioNome

Budget

Data consegna

(0,1) (1,1)

(0,1) (1,N)

(1,N)

(1,1)(0,N)

(1,N) (1,N)

(0,1)

Cardinalità e identificatori