Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base...

83
Corso di Basi di Dati Progettazione Concettuale: Il Diagramma E-R Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Transcript of Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base...

Page 1: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Corso di Basi di Dati

!Progettazione Concettuale:

Il Diagramma E-R

!Home page del corso:

http://www.cs.unibo.it/~difelice/dbsi/

Page 2: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Studio/analisi dei requisiti

Progettazione concettuale

Progettazione logica

Progettazione fisica

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

Fasi della progettazioneRisultati

Analisi dei requisiti e progettazione in dettaglio …

Progettazione di DB

Page 3: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Sono disponibili molti modelli concettuali per la progettazione di basi di dati:

MODELLO ENTITA’ -RELAZIONE (ER)

UNIFIED MODELING LANGUAGE (UML)

Progettazione di DB

Page 4: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello Entita’-Relazione à Modello per la rappresentazione concettuale dei dati ad alto livello di astrazione proposto nel 1976. !E’ basato su rappresentazione grafica (diagramma). !➢ Utile per modellare i dati di interesse di un DB. ➢ Utile come documentazione di un DB. ➢ Indipendente dal modello logico in uso e dal

DBMS di riferimento.

Modello E-R

Page 5: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti e dei progetti. Ogni dipendente e’ identificato da un nome, ed ha una stipendio e data di assunzione. I dipendenti possono far parte di progetti software. E’ consentito ad un dipendente di partecipare a piu’ di un progetto, allocando mesi-uomo su ciascun progetto. Inoltre, ogni progetto ha un direttore unico tra i dipendenti che vi partecipano. Ogni progetto ha un titolo univoco, un budget, e puo’ disporre di diverse release. Ad ogni release di un progetto e’ associato un numero progressivo ed una data. Tra i dipendenti, si vogliono gestire i dati dei tecnici e degli sviluppatori. Di ogni sviluppatore, si vuole tenere traccia delle skill specifiche. Gli sviluppatori sono ulteriormente suddivisi in Programmatori ed Analisti.

ANALISI REQUISITI?

Page 6: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Page 7: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità ➢ Relazioni ➢ Attributi ➢ Cardinalità delle relazioni ➢ Cardinalità degli attributi ➢ Identificatori ➢ Generalizzazioni

Modello E-R

COMPONENTI DI UN DIAGRAMMA E-R

Page 8: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Page 9: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità à Classe di oggetti (fatti, persone, cose) della realtà di interesse con proprietà comuni e con esistenza autonoma.

Esempi: IMPIEGATO, STUDENTE, PROFESSORE …

Graficamente, un’entità viene rappresentata attraverso un rettangolo (con nome dell’entita’ al centro).

Impiegato Studente Professore

Modello E-R

Page 10: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

In prima approssimazione, un’entità puo’ essere tradotta in una relazione (del modello relazionale), di cui però non e’ ancora definito lo schema.

Attributo1 Attributo2 … AttributoN

STUDENTE

Studente

Modello E-R

Page 11: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Ad ogni entità è associato un nome, che identifica l’oggetto rappresentato. Per convenzione, si usano nomi al singolare per rappresentare entità. !L’istanza di un’entità e’ uno specifico oggetto appartenente a quell’entità (es. una specifica persona, uno specifico studente, uno specifico professore, etc).

Modello E-R

StudenteMario Rossi Michele Bianchi …

Page 12: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità ➢ Relazioni ➢ Attributi ➢ Cardinalità delle relazioni ➢ Cardinalità degli attributi ➢ Identificatori ➢ Generalizzazioni

COMPONENTI DI UN DIAGRAMMA E-R

Modello E-R

Page 13: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Page 14: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Relazione à Legame logico fra due o più entità, rilevante nel sistema che si sta modellando.

Graficamente, una relazione viene rappresentata attraverso un rombo collegato ad entità (anche >2).

LavoroImpiegato Dipartimento

Modello E-R

Page 15: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

In prima approssimazione, una relazione puo’ essere tradotta in una relazione (del modello relazionale), di cui però non e’ ancora definito lo schema.

LAVORO

LavoroImpiegato Dipartimento

Modello E-R

Page 16: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Ad ogni relazione è associato un nome, che la identifica nello schema. Per convenzione, si usano nomi al singolare (non i verbi, se possibile) per rappresentare le relazioni. !L’istanza di una relazione è una combinazione di istanze dell’entità che prendono parte all’associazione. !Es. La coppia (c,d) è un’instanza della relazione Lavoro, dove c è un’istanza di Impiegato, e d è un’istanza di Dipartimento.

Modello E-R

Page 17: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

S1

S2

S4

S3

Impiegato

C1

C2

C3

Dipartimento

E2

E3

E4

Lavoro

Modello E-R

Page 18: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Esempi di relazioni binarie (2 entita’ coinvolte …)

LavoroImpiegato Dipartimento

CuraPaziente Medico

Modello E-R

Page 19: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

In generale, una relazione può coinvolgere un numero arbitrario di entità (relazioni n-arie).

Prodotto Produttore

Negozio

Fornitura

Modello E-R

Page 20: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Relazione ricorsiva à una relazione puo’ coinvolgere più istanze della stessa entità.

Incontro

Squadra

Modello E-R

Page 21: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

In caso di relazioni ricorsive, il modello E-R consente di definire un ruolo per ciascun ramo della relazione.

Incontro

SquadraCASA TRASFERTA

Modello E-R

Page 22: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

In caso di relazioni ricorsive, il modello E-R consente di definire un ruolo per ciascun ramo della relazione.

Supervisione

DipendenteSUPERVISIONA SUPERVISIONATO

Modello E-R

Page 23: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

ComposizionePartecipazione

Progetto Sede

Impiegato Dipartimento

Afferenza

Direzione

Modello E-R

Page 24: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità ➢ Relazioni ➢ Attributi ➢ Cardinalità delle relazioni ➢ Cardinalità degli attributi ➢ Identificatori ➢ Generalizzazioni

COMPONENTI DI UN DIAGRAMMA E-R

Modello E-R

Page 25: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Page 26: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Attributo à Proprietà elementare di un’entità o di una relazione del modello.

Ogni attributo è definito su un dominio specifico …

Nome

Impiegato

CognomeCodice

Componente

Codice

Modello E-R

Page 27: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Attributo à Proprietà elementare di un’entità o di una relazione del modello.

Ogni attributo è definito su un dominio specifico …

EsameStudente Corso

Matricola Nome

Cognome

Data VotoNome Crediti

Modello E-R

Page 28: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

E’ possibile definire attributi composti come unione di attributi affini di una certa entità/relazione. Sono rappresentati da un cerchio.

Cognome

Nome Via

Numero

Telefono

Recapito

Impiegato

Modello E-R

Page 29: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

E’ possibile definire attributi composti come unione di attributi affini di una certa entità/relazione. Sono rappresentati da un cerchio.

Cognome

Nome Via

Numero

Telefono

Recapito

Impiegato

Modello E-R

Page 30: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità ➢ Relazioni ➢ Attributi ➢ Cardinalità delle relazioni ➢ Cardinalità degli attributi ➢ Identificatori ➢ Generalizzazioni

COMPONENTI DI UN DIAGRAMMA E-R

Modello E-R

Page 31: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Page 32: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

◇ Quante volte uno studente può ripetere un determinato esame?

◇ Dato un corso, quanti appelli sono previsti?

EsameStudente Corso

Matricola Nome

Cognome

Data VotoNome Crediti

Modello E-R

X Y

Page 33: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

<Data, Voto, STUDENTE(Mario Rossi), Corso> <Data, Voto, STUDENTE(Mario Rossi), Corso> <Data, Voto, STUDENTE(Mario Rossi), Corso>

EsameStudente Corso

Matricola Nome

Cognome

Data VotoNome Crediti

Modello E-R

3 4

Page 34: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

<Data, Voto, Studente, CORSO (BASI di DATI)> <Data, Voto, Studente, CORSO (BASI di DATI)> <Data, Voto, Studente, CORSO (BASI di DATI)> <Data, Voto, Studente, CORSO (BASI di DATI)>

EsameStudente Corso

Matricola Nome

Cognome

Data VotoNome Crediti

Modello E-R

3 4

Page 35: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Cardinalità delle relazioni à Coppia di valori (min, max) che specificano il numero minimo/massimo di occorrenze delle relazione cui ogni occorrenza di entità può partecipare.

Modello E-R

EsameStudente Corso

Matricola Nome

Cognome

Data VotoNome Crediti

(0,50) (0,100)

Page 36: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

PartecipazioneInformatico Progetto

Codice NomeMesiUomo

Nome Budget

(1,30) (0,100)

➢ Ogni instanza di Informatico deve comparire almeno in un’istanza della relazione Partecipazione.

➢ La stessa instanza di Informatico può comparire al massimo in 30 istanze della relazione Partecipazione.

➢ La stessa instanza di Progetto può comparire al massimo in 100 istanze della relazione Partecipazione.

Page 37: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Nella pratica, si usano solo due valori per il minimo: !➢0 à Partecipazione opzionale dell’entità. !

➢1 à Partecipazione obbligatoria dell’entità

CuraPaziente Medico1,_

In pratica: Ogni paziente deve essere in cura presso (almeno) un medico.

Page 38: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Nella pratica, si usano solo due valori per il minimo: !➢0 à Partecipazione opzionale dell’entita’. !

➢1 à Partecipazione obbligatoria dell’entita’

CuraPaziente Medico0,_

In pratica: Possono esistere pazienti che non sono in cura presso alcun medico.

Page 39: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Nella pratica, si usano solo due valori per il massimo: !➢1 à Al massimo 1 istanza conivolta. !

➢N à Non esiste un limite massimo (N arbitrario)

CuraPaziente Medico_,1

In pratica: Ad ogni paziente corrisponde al massimo un medico (o nessuno, dipende dal valore minimo).

Page 40: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Nella pratica, si usano solo due valori per il massimo: !➢1 à Al massimo 1 istanza coinvolta. !

➢N à Non esiste un limite massimo (N>1, arbitrario)

CuraPaziente Medico_,N

In pratica: Ogni paziente puo’ essere in cura presso un numero arbitrario di medici …

Page 41: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

In base al valore della cardinalità massima delle entità E1 ed E2 (cardMax(E1), cardMax(E2)) coinvolte in una relazione R, si distinguono tre casi: !➢ Relazioni uno-ad-uno: cardMax(E1)=1,

cardMax(E2)=1. !➢ Relazioni uno-a-molti: cardMax(E1)=1,

cardMax(E2)=N oppure: cardMax(E1)=N, cardMax(E2)=1. !

➢ Relazioni molti-a-molti: cardMax(E1)=N, cardMax(E2)=N.

Page 42: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

SostegnoStudente Tutor0,1

ElezioneNazione Capitale1,1

0,1

1,1

ESEMPI RELAZIONI UNO-A-UNO

Page 43: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

RappresentanzaCittadini Sindaco1,N

DirezioneDipartimento PresideScuola0,N

1,1

1,1

ESEMPI RELAZIONI UNO-A-MOLTI

Page 44: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

CuraPaziente Medico1,N

PartecipazioneImpiegato Progetto0,N

0,N

1,N

ESEMPI RELAZIONI MOLTI-A-MOLTI

Page 45: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Q. Chi stabilisce se una relazione è molti-a-molti, uno-a-molti, uno-a-uno? !R. Dipende dalla realtà di interesse, dovrebbe emergere dal documento di specifica dei dati! !Q. A che serve sapere una relazione è molti-a-molti, uno-a-molti, uno-a-uno? !R. E’ fondamentale in fase di traduzione del modello!

Page 46: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

SostegnoStudente Tutor1,1 0,1

ESEMPI di TRADUZIONE NEL MODELLO RELAZIONALE

Matricola Codice Nome

Matricola CodiceTutor

STUDENTE

Codice Nome

TUTOR

Modello Relazionale

Page 47: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

PartecipazioneImpiegato Progetto1,N 0,N

ESEMPI di TRADUZIONE NEL MODELLO RELAZIONALE

Codice Nome Durata

Codice Nome

IMPIEGATO

CodImpiegato NomeProgetto

PARTECIPAZIONE

Modello Relazionale

Nome

Nome Durata

CODICE

Page 48: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

La cardinalità puo’ essere specificata anche in presenza di relazioni ricorsive con ruoli.

Supervisione

DipendenteSUPERVISIONATO SUPERVISIONA

Modello E-R

0,1 0,N

Page 49: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità ➢ Relazioni ➢ Attributi ➢ Cardinalità delle relazioni ➢ Cardinalità degli attributi ➢ Identificatori ➢ Generalizzazioni

COMPONENTI DI UN DIAGRAMMA E-R

Modello E-R

Page 50: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Come per le relazioni, anche per gli attributi e’ possibile definire una cardinalità minima e massima.

Modello E-R

Matricola

Email

Telefono(0,N)

(0,N)Studente

Page 51: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Come per le relazioni, anche per gli attributi è possibile definire una cardinalità minima e massima.

Modello E-R

Nome Via

Numero

Telefono

Recapito

Impiegato

Codice

(1,N)(0,N)

Page 52: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità ➢ Relazioni ➢ Attributi ➢ Cardinalità delle relazioni ➢ Cardinalità degli attributi ➢ Identificatori ➢ Generalizzazioni

COMPONENTI DI UN DIAGRAMMA E-R

Modello E-R

Page 53: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Page 54: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Identificatore à Strumento per identificare in maniera univoca le istanze di una entità.

Modello E-R

Corrisponde al concetto di chiave nel modello relazionale (quindi deve godere del requisito di minimalità!) !Ogni entità deve avere un identificatore: !➢Interno à Composto da attributi dell’entità. !

➢Esterno à Composto da attributi dell’entità + entità esterne.

Page 55: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Identificatore Internoà Composto da uno o piu’ attributi dell’entità.

Modello E-R

Codice

Impiegato Nome

Cognome

Codice è l’identificatore interno àNon possono esistere due istanze di Impiegato con lo stesso codice!!

Identificatore composto da un solo attributo

Page 56: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Identificatore Internoà Composto da uno o piu’ attributi dell’entita’.

Modello E-R

Data Nascita e Cognome sono l’identificatore dell’Impiegato.

Identificatore composto da piu’ attributi.

Data Nascita

Cognome

Nome

Impiegato

Page 57: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Marca

Prodotto

Gli attributi che formano l’identificatore (interno) di un’entità devono avere cardinalita’ (1,1).

RFID(0,1)

Treno

Codice(1,N)

Modello

ERRORE!

ERRORE!

Gli esempi sopra riportati NON sono corretti …

Page 58: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Identificatore Esterno à Composto da altre entità, collegate attraverso relazioni.

Modello E-R

Cognome Matricola

Anno

Nome

Indirizzo

(1,1) (0,N)

IscrizioneStudente Università

Page 59: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Cognome Matricola

Anno

Nome

Indirizzo

(1,1) (0,N)

IscrizioneStudente Università

Uno studente è identificato dal suo numero di matricola e dall’università cui è iscritto …

Page 60: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

PROPRIETA’ DELL’IDENTIFICATORE ESTERNO

➢ Può comprendere anche attributi dell’entita’ corrente (es. Matricola) !➢ L’entità esterna deve essere in relazione (1,1) con l’entità corrente. !In pratica, gli identificatori esterni servono a modellare le situazioni in cui un’istanza di un’entità ha valori univoci solo all’interno di un certo contesto, definito dalle relazioni cui partecipa l’entità …

Page 61: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Autore Titolo Nome Anno

(1,N) (0,N)

EdizioniLibro Collana

ERRORE! Libro e’ coinvolto in una relazione (1,N) à Collana non puo’ essere un identificatore esterno di Libro …

Page 62: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Entità ➢ Relazioni ➢ Attributi ➢ Cardinalità delle relazioni ➢ Cardinalità degli attributi ➢ Identificatori ➢ Generalizzazioni

COMPONENTI DI UN DIAGRAMMA E-R

Modello E-R

Page 63: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Dipendente

Tecnico Sviluppatore

Nome Anno Assunzione

Direzione

Partecipazione

Progetto

(0,1)

(0,N)

(1,N)

(1,1)

Mesi Uomo Versioni

ReleaseNumero

Data

(0,N)

(1,1)

Titolo

AnalistaProgrammatore

Skill

Budget

Page 64: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

➢ Generalizzazione à Definisce una gerarchia tra entità basata sul concetto di ereditarietà.

Modello E-R

Dipendente

Impiegato Funzionario Dirigente

SPECIALIZZAZIONI DELL’ENTITA’

ENTITA’ PADRE

Page 65: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

In generale, un’entità E e’ una generalizzazione di E1, E2, … En se ogni istanza di E1, E2, … En lo e’ anche di E. !E1, E2, … En sono specializzazioni di E.

!➢ Tutti gli attributi di E sono anche attributi di E1,

E2, … En !➢ E1, E2, … En partecipano a tutte le relazioni di E.

Page 66: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Nome

Età(1,1)

Stipendio

Persona

Lavoratore Studente

Codice Fiscale

NascitaCitta’(0,N)

Uno Studente dispone di Codice Fiscale, Nome, Eta’ …

Page 67: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Persona

Lavoratore Studente

Persona

Uomo Donna

GENERALIZZAZIONE PARZIALE GENERALIZZAZIONE TOTALE

Ogni occorrenza dell’entità padre e’ occorrenza di almeno una delle due figlie.

Esistono occorrenze dell’entità padre che non sono occorrenze delle entita’ figlie (es. PENSIONATI).

Page 68: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

E’ possibile definire generalizzazioni a cascata ..

Dipendente

Impiegato Tecnico Dirigente

TecnicoSemplice TecnicoLaureato

Page 69: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Entita’ !!Relazione !!Attributo !Cardinalita’ delle relazioni (0,1)…(1,N) !Cardinalita’ degli attributi (0,1)…(1,N) !Identificatori !Generalizzazioni

COMPONENTI DEL MODELLO E-R

Page 70: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Il dizionario dei dati e’ una tabella contentente la descrizione delle entita’/relazioni del modello E-R.

DIZIONARIO DELLE ENTITA’

Page 71: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Il dizionario dei dati e’ una tabella contentente la descrizione delle entita’/relazioni del modello E-R.

DIZIONARIO DELLE RELAZIONI

Relazioni Descrizione Componenti Attributi

Direzione Direzione di undipartimento

Impiegato,Dipartimento

Afferenza Afferenza a undipartimento

Impiegato,Dipartimento

Data

Partecipazione Partecipazionea un progetto

Impiegato,Progetto

Composizione Composizionedell'azienda

Dipartimento,Sede

Page 72: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

PROBLEMA: Il diagramma E-R è uno strumento di modellazione molto potente e completo, ma non tutti i vincoli sono esprimibili nel modello … !ESEMPI:

➢ Il salario di un impiegato non può essere maggiore del salario del proprio dirigente.

➢ Un laureando deve aver sostenuto tutti gli esami del suo corso di laurea.

➢ Il numero di impiegati di un dipartimento si ottiene contando gli impiegati (tecnici esclusi).

Page 73: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Per esprimere questi vincoli, si utilizzano delle business rules (regole aziendali): !➢ Descrizione di un concetto rilevante per

l’applicazione (es. entita’, relazioni, etc) à rappresentate nel glossario dei dati. !

➢ Vincolo di integrità sui dati dell’applicazione !

➢ Derivazione di concetti

Page 74: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

I vincoli di integrità possono essere espressi mediante asserzioni, ossia affermazioni che devono essere sempre verificate sulla base di dati. !Possono essere espresse nella forma: <concetto>  deve/non  deve  <concetti>  !Esempio.  Ogni  progetto  deve  avere  uno  ed  un  solo  supervisore.

Page 75: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Una regola di derivazione specifica le operazioni (aritmetiche, logiche, etc) che consentono di ottenere un concetto derivato. !<concetto>  si  ottiene  <operazioni>  !Esempio.  Lo  stipendio  di  un  impiegato  per  l’anno  corrente  si  ottiene  moltiplicando  per  0.15  il  suo  stipendio  precedente.

Page 76: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Le business rules possono essere raccolte in tabelle, e devono essere allegate al diagramma E-R.

Page 77: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Ricapitolando: !➢ STEP 0: Analisi dei requisiti

!➢ STEP1: Progettazione Concettuale ◇ STEP 1.1: Diagramma E-R ◇ STEP 1.2: Dizionario delle entita’ ◇ STEP 1.2: Dizionario delle relazioni ◇ STEP 1.3: Tabella delle business rules

Page 78: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

PROGRAMMAZIONE CONCETTUALE:

UN ESEMPIO

Page 79: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Si vuole progettare la base di dati per un sistema on-line di condivisione di cliparti tra utenti registrati al sistema. Ogni clipart ha un codice (univoco), un titolo, una descrizione, e puo’ disporre di diverse versioni. Ogni versione dispone di un numero progressivo, una risoluzione ed un formato. Ogni clipart è associata al nickname del suo creatore, che deve essere un utente registrato del sistema. Ogni utente ha un nickname univoco, un nome, cognome, ed uno o piu’ indirizzi email. Sono previste due tipologie di utenti: utenti semplici ed utenti premium. Gli utenti semplici non possono creare piu’ di 50 clipart nel sistema. Per gli utenti premium è necessario registrare la data in cui l’abbonamento premium scade. Ogni utente può inserire commenti a ciascuna clipart del sistema. Un commento è composto da una nota (stringa di testo), una data associata ed un punteggio (un numero compreso tra 0 e 5). Inoltre, le clipart possono essere organizzate in collezioni tematiche. Ogni collezione dispone di un nome univoco, e del numero totale di files (versioni*clipart) associati.

Page 80: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Clipart

Codice Titolo Descrizione

Versione

Formato Risoluzione

Numero

Versioning

Partecipazione

Raccolta

Nome NrFilesUtente

Utente Semplici

Utente Premium

Data

Creazione

Commento

Nota Punti Data

Allegato

Nickname

Email

Nome

Cognome

Page 81: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

Entita’ Descrizione Attributi Identificatore

Clipart Clipart del sistema

Codice, Titolo, Descrizione

Codice

Versione Versione della clipart Numero, Formato, Risoluzione

Numero, Clipart

Raccolta Insieme di clipart Nome, NrFiles Nome

Commento Commento inserito dall’utente

Nome, Punti, Data Data, Utente, Clipart

Utente Utente del sistema Nome, Cognome, Nickname, Email

Nickname

Utente Semplici Utente generico Nickname

Utente Premium Utente con abbonamento

Data Nickname

DIZIONARIO DELLE ENTITA’

Page 82: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

DIZIONARIO DELLE RELAZIONI

Relazione Descrizione Componenti Attributi

Versioning Associa versioni ad una clipart

Clipart, Versione

Partecipazione Specifica il contenuto di una raccolta

Clipart, Raccolta

Creazione Associa una clipart al suo creatore

Clipart, Utente

Allegato Associa un commento scritto da un utente ad una clipart

Clipart, Utente, Commento

Page 83: Corso di Basi di Dati - Plone sitedifelice/dbsi/slides/pdf/6_3.pdf · Si vuole realizzare una base di dati di una Software House, di cui si vogliono rappresentare i dati dei dipendenti

Modello E-R

TABELLA DELLE BUSINESS RULES

Regole di vincolo

(1) Gli utenti semplici non possono creare piu’ di 50 clipart nel sistema.(2) Il punteggio deve essere compreso tra 0 e 5.

Regole di derivazione

(1) Il numero totale di files si ottiene moltiplicando il numero totale di clipart per il numero di versioni associate a ciascuna di esse.