il modello entità-relazioni (entity-relationship) - dipartimento di informatica...
TRANSCRIPT
![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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081611/5f0ab69a7e708231d42cf995/html5/thumbnails/36.jpg)
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