Basi di dati - fisica.campusnet.unito.it · Maurizio Lenzerini Basi di Dati Progettazione...

of 247/247
Basi di dati Maurizio Lenzerini Dipartimento di Informatica e Sistemistica “Antonio Ruberti” Università di Roma “La Sapienza” Anno Accademico 2004/2005 Canale A-L http://www.dis.uniroma1.it/lenzerini/didattica/basididati/
  • date post

    15-Feb-2019
  • Category

    Documents

  • view

    221
  • download

    1

Embed Size (px)

Transcript of Basi di dati - fisica.campusnet.unito.it · Maurizio Lenzerini Basi di Dati Progettazione...

Basi di dati

Maurizio LenzeriniDipartimento di Informatica e Sistemistica Antonio Ruberti

Universit di Roma La Sapienza

Anno Accademico 2004/2005Canale A-L

http://www.dis.uniroma1.it/ lenzerini/didattica/basididati/

Basi di Dati Progettazione concettuale - 2Maurizio Lenzerini

4. La progettazione concettuale4.1 introduzione alla progettazione di basi di dati

1. introduzione alla progettazione di basi di dati

2. modello ER3. metodologia per la

progettazione concettuale4. esempio

Basi di Dati Progettazione concettuale - 3Maurizio Lenzerini

Inquadramento del progetto di basi di dati

Il progetto di basi di dati ha lo scopo di produrre lo schema logico e lo schema fisico della basi di dati, secondo le indicazioni raccolte durante la fase di raccolta dei requisiti

Due possibilit di inquadramento:1. In questo scenario, il progetto di basi di dati viene

svolto nellambito della pi ampia attivit di progetto del sistema informatico

2. In questo scenario, il progetto di basi di dati viene svolto come un processo a s stante

Basi di Dati Progettazione concettuale - 4Maurizio Lenzerini

Ciclo di vita di unapplicazione software1. Studio di fattibilit e raccolta dei requisiti

valutare costi e benefici pianificare le attivit e le risorse del progetto raccogliere i requisiti

2. Analisi si occupa del cosa descrivere il dominio dellapplicazione e specificare le

funzioni delle varie componenti: lo schema concettuale3. Progetto e realizzazione

si occupa del come definire l'architettura del programma scrivere il codice del programma e produrre la

documentazione4. Verifica

Il programma svolge correttamente, completamente, efficientemente il compito per cui stato sviluppato?

5. Manutenzione Correzione e aggiornamento del programma

Basi di Dati Progettazione concettuale - 5Maurizio Lenzerini

Ciclo di vita (modello a spirale)

Raccolta dei requisitiRaccolta dei requisitiAnalisiAnalisi

Progetto e realizzazioneProgetto e realizzazione Verifica e manutenzioneVerifica e manutenzione

11 22 33 versioni delversioni delprogrammaprogramma

Basi di Dati Progettazione concettuale - 6Maurizio Lenzerini

Scenario 1: progetto complessivo del sistema informatico

Studio di fattibilit e raccolta dei requisiti

AnalisiParte di analisi relativa alla

base di dati

Progetto e realizzazioneParte di progetto e realizzazione

relativa alla base di dati

Verifica e manutenzione

Basi di Dati Progettazione concettuale - 7Maurizio Lenzerini

Schema fisico

Progettazionefisica / tuning

Schema concettuale

Requisiti della base di dati

Progettazioneconcettuale

Progettazionelogica

Schema logico

DBMS

DBMS Carico applicativo.

Scenario 2: Progetto della basi di dati

COSA(Analisi)

COME(Progetto e

realizzazione)

Basi di Dati Progettazione concettuale - 8Maurizio Lenzerini

Confronto tra i due scenari

In entrambi gli scenari, il processo di progettazione di basi didati si compone delle seguenti fasi:

1. Progettazione concettuale2. Progettazione logica3. Progettazione fisica / tuning

Le differenze tra i due scenari sono: Nel primo scenario la progettazione concettuale parte

della fase complessiva di analisi e si deve coordinare con gli altri aspetti, mentre nel secondo una fase autonoma

Nel primo scenario le fasi di progettazione logica e progettazione fisica / tuning sono parti della fase complessiva di progetto e realizzazione, e si devono coordinare con gli altri aspetti, mentre nel secondo sono fasi autonome

Basi di Dati Progettazione concettuale - 9Maurizio Lenzerini

Progettazione concettuale

Rappresentare i dati della realt dinteresse in termini di un modello (descrizione) formale, ad alto livello, indipendente dal DBMS

Input: Descrizione della realt dinteresse: (per sapere quali

dati rappresentare)

Output: Schema concettuale (rappresentazione dei dati in un

modello di dati concettuale, eventualmente con vincoli esterni)

Qualit: correttezza e completezza della rappresentazione

Basi di Dati Progettazione concettuale - 10Maurizio Lenzerini

Progettazione logica Rappresentare i dati della realt dinteresse in termini dei costrutti

logici di una classe di DBMS (quelli basati su un determinato modello logico)

Input: Schema concettuale (prodotto dalla progettazione concettuale) DBMS scelto (per sapere quale modello logico di dati adottare) Previsioni del carico applicativo (per ottimizzare la base di dati

rispetto ad esso)

Output: Schema logico (rappresentazione dei dati in un modello di dati logico,

eventualmente con vincoli complessi)

Qualit: Correttezza e completezza della rappresentazione Efficienza della manipolazione dei dati

Basi di Dati Progettazione concettuale - 11Maurizio Lenzerini

Progettazione fisica / tuning

Rappresentare i dati della realt di interesse attraverso le strutture dati di uno specifico DBMS

Input: Schema logico (prodotto della progettazione logica) DBMS scelto (per sapere quali strutture dati fisiche utilizzare) Previsioni del carico applicativo (per ottimizzare la base di dati rispetto

ad esso) Output:

Schema fisico (Tipicamente nei DBMS attuali consiste in uno schema logico + alcune scelte relative alleffettiva implementazione su DBMS di detto schema)

Qualit: Efficienza rispetto al carico applicativo

Basi di Dati Progettazione concettuale - 12Maurizio Lenzerini

Compromesso tra correttezza/completezza ed efficienza

Si noti che passando dallo schema concettuale allo schema logico e poi allo schema fisico, stiamo degradando la correttezza/completezza della rappresentazione strutturale, degrado eventualmente compensato da opportuni vincoli (qualit semantiche)

Daltra parte in questi passaggi poniamo sempre maggiore attenzione allefficienza (qualit computazionali)

Basi di Dati Progettazione concettuale - 13Maurizio Lenzerini

Correttezza e completezza del sistema

Si noti che la correttezza (adeguatezza ecompletezza rispetto alle specifiche) del sistema basi di dati + applicazioni irrinunciabile

Quindi, se la nostra rappresentazione dei dati non completa (come tipicamente il caso per lo schema logico e lo schema fisico) oppure non garantisce la correttezza in tutti i casi (come pu accadere per lo schema fisico), allora sar lo strato di applicazione(livello intermedio tra client e database server) agarantire di manipolare i dati in modo da preservare correttezza e completezza

Basi di Dati Progettazione concettuale - 14Maurizio Lenzerini

Modelli di dati

I prodotti della varie fasi sono schemi basati su specifici modelli di dati:

Schema concettuale modello concettuale

Schema logico modello logico (relazionale)

Schema fisico modello logico + parametri fisici

Basi di Dati Progettazione concettuale - 15Maurizio Lenzerini

Modelli dei dati adottati

Schema concettuale: Modello Entit-Relazione (ER)

Schema logico: Modello relazionale + vincoli dintegrit DDL: SQL-standard

Schema fisico: Modello relazionale + strutture fisiche DDL: SQL supportato dal DBMS scelto

Basi di Dati Progettazione concettuale - 16Maurizio Lenzerini

4. La progettazione concettuale4.2 modello ER

1. introduzione alla progettazione di basi di dati

2. modello ER3. metodologia per la

progettazione concettuale4. esempio

Basi di Dati Progettazione concettuale - 17Maurizio Lenzerini

Un modello (concettuale) di dati caratterizzato dai costrutti ammessi. Ogni costrutto ha un impatto sia a livello intensionale(schema concettuale), sia a livello estensionale (istanze dello schema). Per definire precisamente un modello di dati, occorre specificare per ogni costrutto

il suo significato intuitivo, che determina il modo con cui si utilizza (pragmatica)

la forma che assume a livello intensionale (sintassi) limpatto sul livello estensionale (semantica)

Nel modello ER la struttura dello schema concettuale descrittain forma grafica (diagramma dello schema)

Il modello Entit-Relazione (ER) un modello di dati

Basi di Dati Progettazione concettuale - 18Maurizio Lenzerini

Lo schema descrive la struttura, cio laspetto intensionale (ad esempio, nel modello relazionale, lintestazione delle tabelle)

Ad ogni schema corrispondono pi istanze (aspetto estensionale), anche se, istante per istante, solo una quella significativa (ad esempio, nel modello relazionale listanza corrente formata dalle tuple che popolano le tabelle)

Differenza tra schemi e istanze nei modelli di dati

Basi di Dati Progettazione concettuale - 19Maurizio Lenzerini

Entit

Attributi di entit

Relazioni

Ruoli

Attributi di relazione

IS-A e Generalizzazioni

Vincoli di identificazione

Vincoli di cardinalit

Altri vincoli

Costrutti fondamentali del modelloEntit-Relazione

Basi di Dati Progettazione concettuale - 20Maurizio Lenzerini

I costrutti del modello ER sono analoghi a quelli usati in altri modelli concettuali, ad esempio i diagrammi delle classi di UML

ERER Entit Relazioni Attributi Cardinalit

IS-A e Generalizzazioni

Identificatori

-----------

UMLUML Classi Associazioni/aggregazioni Attributi Cardinalit

IS-A e Generalizzazioni

----------- Operazioni

ER e UML

Il modello ER specializzato alla rappresentazione dei dati

Basi di Dati Progettazione concettuale - 21Maurizio Lenzerini

La nozione di entit

Una entit una classe di oggetti (fatti, persone, cose) che sono di interesse per lapplicazione, che hanno esistenza autonoma, e che hanno propriet comuni

Esempi:

vendita

ordine

studente

impiegato

dipartimento

citt

Basi di Dati Progettazione concettuale - 22Maurizio Lenzerini

Sintassi: rappresentazione grafica di entit

Impiegato Dipartimento

Citt Vendita

Ogni entit ha nome che la identifica in modo univoco nello schema, ed rappresentata da un rettangolo nel diagramma che descrive lo schema stesso

Esempi:

Basi di Dati Progettazione concettuale - 23Maurizio Lenzerini

Semantica delle entit

A livello estensionale unentit costituita da un insieme di oggetti, che sono chiamati le sue istanze

Ci significa che, se in uno schema S definita una entit E, in ogni istanza I dello schema S, alla entit E associato un insieme di oggetti (che viene denotato istanze(I,E) o semplicemente istanze(E))

{e1, e2, e3, }che viene detto anche lestensione di E nella istanza I di S

Una istanza di entit non un valore che identifica un oggetto, ma loggetto stesso

Basi di Dati Progettazione concettuale - 24Maurizio Lenzerini

Entit e istanze dentit

Una entit (nello schema concettuale S) denota un insieme (o classe) di oggetti simili

Una istanza dellentit (in una istanza di S) denota un oggetto dellinsieme rappresentato dallentit

Nota: nello schema concettuale rappresentiamo le entit, non le singole istanze (astrazione)

Basi di Dati Progettazione concettuale - 25Maurizio Lenzerini

Un attributo di entit una propriet locale di unentit, di interesse ai fini dellapplicazione

Un attributo associa ad ogni istanza di entit un valore appartenente ad un insieme detto dominio dellattributo(tipicamente, interi, caratteri, stringhe, ecc.)

Si definisce un attributo per lentit E quando si vuole rappresentare una propriet locale delle istanze dellentit E. Una propriet di un oggetto si dice locale quando in ogni istanza dello schema il valore di tale propriet dipende solamente dalloggetto stesso, e non ha alcun rapporto con altri elementi dellistanza dello schema

La nozione di attributo di entit

Basi di Dati Progettazione concettuale - 26Maurizio Lenzerini

Sintassi: rappresentazione grafica di attributo

Cognome Et

Ogni attributo di entit ha un nome che lo identifica in modo univoco nellambito della entit, ed rappresentato da un cerchio collegato alla entit a cui appartiene.

Esempi:Stipendio

Impiegato

Basi di Dati Progettazione concettuale - 27Maurizio Lenzerini

Sintassi: rappresentazione grafica di dominio

Cognome/stringa

Il dominio associato ad un attributo viene generalmente tralasciato nella rappresentazione grafica (ma si indica nel dizionario dei dati si veda in seguito).

Se si indica nel diagramma, la notazione :

Stipendio/intero

Impiegato

Basi di Dati Progettazione concettuale - 28Maurizio Lenzerini

Semantica degli attributi di entit

Se I una istanza di uno schema S dove A un attributo dellentit E su un dominio D, istanze(I,A), o semplicemente istanze(A), un insieme di coppie (x,y) tali che x in istanze(E), y in D, ed esiste una ed una sola coppia in istanze(A) per ogni x in istanze(E). In altre parole, a livello estensionale lattributo A una funzione totale

A : istanze(E) D

cio, in ogni istanza I una istanza di S, lattributo A una funzione che associa ad ogni istanza di E un valore appartenente a D.

Basi di Dati Progettazione concettuale - 29Maurizio Lenzerini

Esercizio 1: attributi di entit

S1S2

S4S3

Impiegato

3729

34

interoEt

Et/interoImpiegatoDato lo schema:

La seguente una sua istanza ?

41

Basi di Dati Progettazione concettuale - 30Maurizio Lenzerini

Esercizio 1: soluzione

S1S2

S4S3

Impiegato

3729

34

interoEt

Et/interoImpiegatoDato lo schema:

La seguente una sua istanza ?

41SI!

Basi di Dati Progettazione concettuale - 31Maurizio Lenzerini

Esercizio 2: attributi di entit

S1S2

S4S3

Impiegato

3729

34

interoEt

Et/interoImpiegatoDato lo schema:

La seguente una sua istanza ?

41

Basi di Dati Progettazione concettuale - 32Maurizio Lenzerini

Esercizio 2: soluzione

S1S2

S4S3

Impiegato

3729

34

interoEt

Et/interoImpiegatoDato lo schema:

La seguente una sua istanza ?

41

No, lattributo Et associa due valori a S3! Ricordarsi che un attributo una funzione.

Basi di Dati Progettazione concettuale - 33Maurizio Lenzerini

Esercizio 3: attributi di entit

S1S2

S4S3

Impiegato

3729

34

interoEt

Et/interoImpiegatoDato lo schema:

La seguente una sua istanza ?

41

Basi di Dati Progettazione concettuale - 34Maurizio Lenzerini

Esercizio 3: soluzione

S1S2

S4S3

Impiegato

3729

34

interoEt

Et/interoImpiegatoDato lo schema:

La seguente una sua istanza ?

41

No, manca il valore di et per S2! Ricordarsi che un attributo una funzione totale

??

Basi di Dati Progettazione concettuale - 35Maurizio Lenzerini

Attributi composti Un attributo pu anche essere definito su un dominio

complesso. Di particolare interesse il caso di dominio di tipo record. Un attributo il cui dominio il tipo record si dice composto.

Notazione:Via

Numero

CAP

IndirizzoImpiegato

Indirizzo un attributo composto, e il suo dominio un tipo record con campi Via, Numero e CAP.

Basi di Dati Progettazione concettuale - 36Maurizio Lenzerini

La nozione di relazione

Una relazione (o associazione) si definisce su due o pi entit, e rappresenta un legame fra tali entit. Il numero di entit coinvolte in una relazione determina il suo grado

Esempi

Residenza (tra Persona e Citt)Afferenza (tra Impiegato e Dipartimento)

Basi di Dati Progettazione concettuale - 37Maurizio Lenzerini

Sintassi: rappresentazione grafica di relazione

Cognome Et Nome

EsameSuperatoStudente Corso

Crediti

Ogni relazione ha un nome che la identifica in modo univoco nello schema, ed rappresentata nel diagramma che descrive lo schema da un rombo collegato alle entit sulle quali definita la relazione

Esempio di relazione di grado 2 (relazione binaria):

Basi di Dati Progettazione concettuale - 38Maurizio Lenzerini

Semantica delle relazioni binarie (prima versione)

A livello estensionale una relazione R tra le entit E ed F costituita da un insieme di coppie (x,y), tali che x una istanza di E, ed y una istanza di F. Ogni coppia detta istanza della relazione R

Ci significa che, se in uno schema S definita una relazione R sulle entit E ed F, in ogni istanza I dello schema S, alla relazione R associato un insieme di coppie (denotato da istanze(I,R) o semplicemente istanze(R))

{(x1, y1), (x2, y2), (x3, y3), }che viene detto anche lestensione di R nella istanza I di S

In altre parole, una relazione nel modello ER , dal punto di vista della semantica, una relazione matematica. In ogni istanza dello schema si ha:

istanze(I,R) istanze(I,E) istanze(I,F)

Basi di Dati Progettazione concettuale - 39Maurizio Lenzerini

Relazione a livello estensionale

S1

S2

S4

S3

Studente

C1

C2

C3

Corso

(S2,C3)

(S1,C1)

(S2,C2)

(S3,C3)

EsameSuperato

C4

Basi di Dati Progettazione concettuale - 40Maurizio Lenzerini

Osservazione importanteDalla semantica delle relazioni segue immediatamente che non possono esistere due istanze della stessa relazione che coinvolgono le stesse istanze di entit.

S1

S2

S4

S3

C1

C2

C3

(S2,C3)

(S1,C1)

(S2,C2)

(S3,C3)

EsameSuperato

C4

(S2,C3)

Basi di Dati Progettazione concettuale - 41Maurizio Lenzerini

Due entit possono essere coinvolte in pi relazioni

Sede dilavoro

ResidenzaImpiegato Citt

Esempio:

Sede di Lavoro e Residenza rappresentano due legami diversi tra le stesse entit Impiegato e Citt

Basi di Dati Progettazione concettuale - 42Maurizio Lenzerini

Relazioni n-arie (grado maggiore di 2)

FornituraFornitore Prodotto

Dipartimento

Una relazione di grado maggiore di 2 si dice n-aria.

Esempio:

Basi di Dati Progettazione concettuale - 43Maurizio Lenzerini

Semantica delle relazioni n-arie (prima versione)

A livello estensionale una relazione R tra le entit E1,E2,,En costituita da un insieme di n-ple (o tuple) (x1,x2,,xn), tali che x1 una istanza di E1, x2 una istanza di E2,, xn una istanza di En. Ogni n-pla detta istanza della relazione R

Quindi, in ogni istanza I dello schema si ha:

istanze(I,R) istanze(I,E1) istanze(I,En)

Basi di Dati Progettazione concettuale - 44Maurizio Lenzerini

Relazione n-aria a livello estensionale

F1

F2

F4

F3

Fornitore

P1

P2

P3

Prodotto

D1

D2

D4

D3

Dipartimento

(F1,D1,P1)

(F3,D2,P3)

(F3,D4,P3)

Fornitura

Basi di Dati Progettazione concettuale - 45Maurizio Lenzerini

Un attributo di relazione una propriet locale di una relazione, di interesse ai fini dellapplicazione

Un attributo della relazione R tra le entita E1,E2,,En modella una propriet non di E1, non di E2,, non di En, ma del legame tra E1,E2,,En rappresentato da R

Un attributo associa ad ogni istanza di relazione un valore appartenente ad un insieme detto dominiodellattributo

La nozione di attributo di relazione

Basi di Dati Progettazione concettuale - 46Maurizio Lenzerini

Sintassi: rappresentazione grafica di attributo di relazione

Ogni attributo di relazione ha un nome che lo identifica in modo univoco nellambito della relazione, ed rappresentato da un cerchio collegato alla relazione a cui appartiene.

Esempio

Cognome Et Nome

EsameSuperatoStudente Corso

CreditiVoto

Basi di Dati Progettazione concettuale - 47Maurizio Lenzerini

Semantica degli attributi di relazione

Se I una istanza di uno schema S dove A un attributo della relazione R su un dominio D, istanze(I,A) un insieme di coppie (x,y) tali che x in istanze(I,R), y in D, ed esiste una ed una sola coppia in istanze(I,A) per ogni x in istanze(I,R). In altre parole, a livello estensionale lattributo A una funzione totale

A : istanze(R) Dcio, in ogni istanza I una istanza di S, lattributo A una funzione che associa ad ogniistanza di R un valore appartenente a D.

Basi di Dati Progettazione concettuale - 48Maurizio Lenzerini

S1

S2

S4

S3

C1

C2

C3

(S2,C3)

(S2,C2)

(S3,C3)

EsameSuperato

C4

Studente Corso

25

Attributi di relazione binaria: livello estensionale

25intero

Voto

19

Basi di Dati Progettazione concettuale - 49Maurizio Lenzerini

Relazioni n-arie con attributi

FornituraFornitore Prodotto

Dipartimento

Esempio di relazione n-aria con attributo

Quantit

Basi di Dati Progettazione concettuale - 50Maurizio Lenzerini

Attributi di relazione n-aria: livello estensionale

F1

F2

F4

F3

Fornitore

P1P2

P3Prodotto

D1

D2

D4

D3

Dipartimento

(F1,D1,P1)

(F3,D2,P3)

(F3,D4,P3)

Fornitura 89

intero

37

Quantit

Basi di Dati Progettazione concettuale - 51Maurizio Lenzerini

Descrivere lo schema concettuale della seguente realt:

I docenti hanno un codice fiscale ed una et. I docenti operano nei corsi di laurea (si dice che afferiscono ai corsi di laurea). Interessa la data di afferenza dei docenti ai corsi di laurea. I corsi di laurea hanno un codice ed un nome, ed appartengono alle facolt. Ogni facolt ha un nome.

Esercizio 4: un semplice schema concettuale

Basi di Dati Progettazione concettuale - 52Maurizio Lenzerini

Esercizio 4: soluzione

CodiceFiscale Et Nome

AfferenzaDocente CorsoDiLaurea

CodiceData

Appartenenza

FacoltNome

Basi di Dati Progettazione concettuale - 53Maurizio Lenzerini

Una relazione pu coinvolgere due o pi volte la stessa entit

Successione

Sovrano

Problema: in una istanza di questo schema, data una coppia che istanza di Successione, non si pu individuare chi il sovrano predecessore e chi il sovrano successore.

Basi di Dati Progettazione concettuale - 54Maurizio Lenzerini

Relazioni sulla stessa entit

Successore Predecessore

Nelle relazioni dove una stessa entit coinvolta pi volte necessario aggiungere la specifica dei ruoli

Successione

Sovrano

Basi di Dati Progettazione concettuale - 55Maurizio Lenzerini

possibile aggiungere ad una relazione linformazione che specifica il ruolo che una entit gioca nella relazione

Se per una relazione R che coinvolge lentit E (e altre entit) si stabilisce che il ruolo giocato da Ein R U, questo significa che in ogni istanza dello schema, per ogni tupla istanza della relazione R che coinvolge listanza e di E, il ruolo giocato da e nella tupla U

La nozione di ruolo

Basi di Dati Progettazione concettuale - 56Maurizio Lenzerini

Sintassi: rappresentazione grafica di ruolo La specifica del ruolo necessaria nel caso di relazioni che

coinvolgono la stessa entit pi volte, mentre non sarebbe necessaria negli altri casi. Tuttavia, per uniformit, noi richiediamo che, per ogni relazione R dello schema, per ogni entit E coinvolta in R (e, se E coinvolta in R pi di una volta, per ogni volta in cui coinvolta), si specifichi il ruolo giocato da E in R

Graficamente, per ogni collegamento tra una relazione ed una entit coinvolta in essa, noi specificheremo il nome del ruolo vicino al collegamento stesso

Se lesplicita specifica del nome del ruolo manca per un collegamento tra R ed E, allora si assume che il nome del ruolo coincida con il nome della entit E

Ovviamente, ogni collegamento tra R ed una entit coinvolta in R deve essere identificata univocamente dal nome di ruolo

Basi di Dati Progettazione concettuale - 57Maurizio Lenzerini

Semantica dei ruoli e delle relazioni (versione finale)

Limpatto dei ruoli sul livello estensionale tale da modificare la semantica delle relazioni

A livello estensionale una relazione R tra le entit E1,E2,,En (non necessariamente tutte distinte) con rispettivi ruoli U1,U2,,Un (tutti distinti) costituita da un insieme di n-ple (o tuple) etichettate

(U1:x1, U2:x2, , Un:xn)tali che x1 una istanza di E1, x2 una istanza di E2,, xn una istanza di En. Ogni n-pla etichettata detta istanza della relazione R

Nelle slide, quando ci non genera ambiguit, ometteremo, per ragioni di spazio, le etichette nelle tuple etichettate

Basi di Dati Progettazione concettuale - 58Maurizio Lenzerini

Semantica dei ruoli: esempio

Istanza dello schema

istanze(Sovrano) = { romolo,numa,tullo,anco }istanze(Successione) = { (Precedessore:romolo,Successore:numa),

(Precedessore:numa,Successore:tullo), (Precedessore:tullo,Successore:anco)

}

Successione

SovranoPredecessoreSuccessore

Schema

Basi di Dati Progettazione concettuale - 59Maurizio Lenzerini

Descrivere lo schema concettuale della seguente realt:

I docenti hanno un codice fiscale ed una et. I corsi hanno un codice identificativo, un nome, ed il numero di crediti. Sfruttando i moduli di valutazione dei corsi e dei docenti da parte degli studenti, si vuole rappresentare nella base di dati linformazione se un docente migliore di un altro nellinsegnare un corso.

Esercizio 5: schema concettuale

Basi di Dati Progettazione concettuale - 60Maurizio Lenzerini

Confronto

Docente

Corso

Esercizio 5: soluzione 1Codice Nome Crediti

CodiceFiscale Et

Questa soluzione giusta?Se no, perch ?

Basi di Dati Progettazione concettuale - 61Maurizio Lenzerini

Confronto

Docente

Corso

Esercizio 5: soluzione 1Codice Nome Crediti

CodiceFiscale Et

Questa soluzione giusta? NO,perch nella relazione Confronto sono definiti due ruoli uguali

Basi di Dati Progettazione concettuale - 62Maurizio Lenzerini

Confronto

Docente

Corso

Esercizio 5: soluzione 2

Migliore Peggiore

Codice Nome Crediti

CodiceFiscale Et

Questa soluzione giusta? Quanti e quali ruoli ci sono nello schema ?

Basi di Dati Progettazione concettuale - 63Maurizio Lenzerini

Confronto

Docente

Corso

Esercizio 5: soluzione 2

Migliore Peggiore

Codice Nome Crediti

CodiceFiscale Et

Questa soluzione giusta? SIQuanti e quali ruoli ci sono nello schema ? 3: Corso, Migliore,

Peggiore

Basi di Dati Progettazione concettuale - 64Maurizio Lenzerini

Descrivere listanza dello schema concettuale precedente (soluzione 2) corrispondente ai seguenti dati (si ignorino gli attributi):

Docenti: Paolo, Mario, GraziaCorsi: Basi di Dati, Logica, AlgebraGraduatorie:

Esercizio 6: livello estensionale

Basi di dati1. Mario2. Grazia3. Paolo

Logica1. Grazia2. Mario3. Paolo

Algebra1. Grazia2. Paolo

Basi di Dati Progettazione concettuale - 65Maurizio Lenzerini

Istanza I:

istanze(Docente): { Paolo, Mario, Grazia }

istanze(Corso): { BasiDiDati, Logica, Algebra }

istanze(Confronto): { (Corso:BasiDiDati, Migliore:Mario, Peggiore: Grazia),

(Corso:BasiDiDati, Migliore:Mario, Peggiore: Paolo),(Corso:BasiDiDati, Migliore:Grazia, Peggiore: Paolo),(Corso:Logica, Migliore:Grazia, Peggiore: Mario),(Corso:Logica, Migliore:Grazia, Peggiore: Paolo),(Corso:Logica, Migliore:Mario, Peggiore: Paolo),(Corso:Algebra, Migliore:Grazia, Peggiore: Paolo) }

Esercizio 6: soluzione

Basi di Dati Progettazione concettuale - 66Maurizio Lenzerini

Descrivere lo schema concettuale della seguente realt:

Degli impiegati interessa il codice fiscale, il nome, il cognome, i dipartimenti ai quali afferiscono (con la data di afferenza), ed i progetti ai quali partecipano. Dei progetti interessa il nome, il budget, e la citt in cui hanno luogo le corrispondenti attivit. Alcuni progetti sono parti di altri progetti, e sono detti loro sottoprogetti. Dei dipartimenti interessa il nome, il numero di telefono, gli impiegati che li dirigono, e la citt dove localizzata la sede. Delle citt interessa il nome e la regione.

Esercizio 7: schema concettuale

Basi di Dati Progettazione concettuale - 67Maurizio Lenzerini

Direzione

SedePartecipazione

CodiceFiscale

Cognome

Impiegato

Data

Afferenza

Tel

Dipartimento

NomeNomeBudget

Progetto LuogoProgetto

Regione

Citt

Esercizio 7: soluzioneNome

Parte

Nome

Sottoprogetto

Basi di Dati Progettazione concettuale - 68Maurizio Lenzerini

Direzione

SedePartecipazione

CodiceFiscale

Cognome

Impiegato

Data

Afferenza

Tel

Dipartimento

NomeNomeBudget

ProgettoProgetto

Regione

Citt

Esercizio 8: qual lerrore in questo schema?

Nome

Parte

Nome

Sottoprogetto

Citt

Basi di Dati Progettazione concettuale - 69Maurizio Lenzerini

Lerrore sta nellaver rappresentato il luogo di svolgimento di un progetto come un attributo. In realt il luogo di svolgimento una citt, e questo viene perso nello schema.

Infatti, il nome dellattributo (Citt) non ha nulla a che vedere con la semantica dello schema (che invece caratterizzata dalle istanze dello schema): ci che viene perso che, in ogni istanza dello schema, il luogo di svolgimento di un progetto una istanza dellentit Citt.

Detto in altro modo, nello schema il luogo di progetto rappresentato come una propriet locale di Progetto, perdendo cos il legame con lentit Citt.

Esercizio 8: soluzione

Basi di Dati Progettazione concettuale - 70Maurizio Lenzerini

Direzione

Partecipazione

CodiceFiscale

Cognome

Impiegato

Data

Afferenza

Tel

Dipartimento

NomeBudget

ProgettoProgetto

Citt

Esercizio 9: corretto questo schema?

Nome

Parte

Nome

Sottoprogetto

Citt

Supponendo che non interessila regione delle citt, ci sono errori in questo schema?

Basi di Dati Progettazione concettuale - 71Maurizio Lenzerini

Direzione

Partecipazione

CodiceFiscale

Cognome

Impiegato

Data

Afferenza

Tel

Dipartimento

NomeBudget

ProgettoProgetto

Citt

Esercizio 9: soluzioneNome

Parte

Nome

Sottoprogetto

Citt

La risposta dipende dal fatto seil concetto di citt importanteo no nellapplicazione. Deve essere chiaro che in questo schema il concetto di Citt non rappresentato.

Basi di Dati Progettazione concettuale - 72Maurizio Lenzerini

Scelta tra entit e attributo

Un concetto verr modellato come una entit

se le sue istanze sono concettualmente significative indipendentemente da altre istanze

se ha o potr avere delle propriet indipendenti dagli altri concetti

se il concetto importante nellapplicazione un attributo di una entit o relazione

se le sue istanze non sono concettualmente significative

se non ha senso considerare una sua istanza indipendentemente da altre istanze

se serve solo a rappresentare una propriet locale di un altro concetto

Basi di Dati Progettazione concettuale - 73Maurizio Lenzerini

Scelta tra entit e attributo

Le scelte possono cambiare durante lanalisi. Esempio:

Interessa anche la regione: Citt diventa una entit

Codice

Persona

Nome CittNascita

Nome

Persona

Codice Nome

CittNascita

Regione

Basi di Dati Progettazione concettuale - 74Maurizio Lenzerini

Scelta tra entit e attributoLe scelte possono cambiare durante lanalisi. Esempio:

Interessa anche la citt in cui ha sede un dipartimento

Codice

Persona

Cognome CittNascita

Cognome

Persona

Codice Nome

CittNascita

Budget

Dipartimento

Nome

Sede

Nome

Dipartimento

Budget

Basi di Dati Progettazione concettuale - 75Maurizio Lenzerini

Scelta tra entit e relazione

Un concetto verr modellato come una entit

se le sue istanze sono concettualmente significative indipendentemente da altre istanze

se ha o potr avere delle propriet indipendenti dagli altri concetti

se ha o potr avere relazioni con altri concetti una relazione

se le sue istanze non sono concettualmente significative indipendentemente da altre istanze, cio se le sue istanze rappresentano n-ple di altre istanze

se non ha senso pensare alla partecipazione delle sue instanze ad altre relazioni

Basi di Dati Progettazione concettuale - 76Maurizio Lenzerini

Esercizio 10: scelta tra entit e relazione

In un contesto in cui occorre rappresentare le persone e le loro propriet, questo schema chiaramente sbagliato. Perch?

Sequenzalettere/stringa

Cognome

Anni/intero

EtPersona

Citt

Nome/stringaRegione/stringa

Basi di Dati Progettazione concettuale - 77Maurizio Lenzerini

Esercizio 10: soluzione Nello schema, la classe delle persone non modellato, nel

senso che, a livello estensionale non esistono oggetti con significato autonomo che sono istanze di persone

A livello estensionale ogni persona sar quindi rappresentata da una tupla, che, per definizione, esiste solo perch esistono le sue componenti. E come dire che una persona esiste solo perch ha un cognome, una et, ed una citt di nascita

Modellando Cognome come entit, lo schema asserisce implicitamente che i cognomi sono oggetti la cui esistenza autonoma di interesse per la nostra applicazione, e questo chiaramente assurdo. Stessa considerazione vale per Et

Infine, per la semantica delle relazioni, lo schema asserisce implicitamente che non esistono due persone con lo stesso cognome, la stessa et e la stessa citt di nascita, e anche questo assurdo.

Basi di Dati Progettazione concettuale - 78Maurizio Lenzerini

La nozione di relazione ISA 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 ISA (o relazione di sottoinsieme), e cio che ogni istanza di una sia anche istanza dellaltra.

La relazione ISA 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)

Basi di Dati Progettazione concettuale - 79Maurizio Lenzerini

Sintassi: rappresentazione grafica della relazione ISA 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 ISA con Persona, o, in alternativa, che Studente ISA Persona

Studente

Basi di Dati Progettazione concettuale - 80Maurizio Lenzerini

Sintassi: regole sulla relazione ISA tra entit

ATTENZIONE: vige la regola che una entit pu avere al massimo una entit padre. In altre parole, il modello ER non ammette ereditariet multipla

Esempio

Studente

Questo schema scorretto

Lavoratore

StudenteLavoratore

Basi di Dati Progettazione concettuale - 81Maurizio Lenzerini

Semantica della relazione ISA tra entit

A livello estensionale la relazione ISA impone semplicemente che in ogni istanza I di uno schema in cui E1 ISA E2:

istanze(I,E1) istanze(I,E2)Si noti che dalla definizione segue che la relazione ISA riflessiva e transitiva.

Esempio

Persona Istanza I:

istanze(Persona) = { a,b,c,d } istanze(Studente) = { b,d }

Schema

Studente

Basi di Dati Progettazione concettuale - 82Maurizio Lenzerini

Relazione ISA a livello estensionale

Persona

Studente

Istanza I1:

istanze(Persona) = { a,b,c,d } istanze(Studente) = { b,d }

Istanza I2:

istanze(Persona) = { a,b,c,d } istanze(Studente) = {a,b,c,d }

Istanza I3:

istanze(Persona) = { a,b,c,d } istanze(Studente) = { }

Questa non unistanza:

istanze(Persona) = { a } istanze(Studente) = { a,b }

Schema

Basi di Dati Progettazione concettuale - 83Maurizio Lenzerini

Ereditariet su entit nel modello ERPrincipio di ereditariet: ogni propriet dellentit padre anche una propriet della sottoentit, e non si riporta esplicitamente nel diagramma. Lentit figlia pu avere ovviamente ulteriori propriet

Cognome, Et ereditati da Persona,

Matricolaulteriore propriet

Cognome, Et ereditati da Persona,

Matricolaulteriore propriet

Dal fatto che1. Ogni istanza di Persona

ha una Et2. Ogni istanza di Studente

istanza di Personasegue logicamente che3. Ogni istanza di Studente

ha una Et

Ragionamento sillogistico (cfr. opera di Aristotele pi di due millenni fa)

Persona

Cognome Et

Studente

Matricola

Basi di Dati Progettazione concettuale - 84Maurizio Lenzerini

Ereditariet: livello estensionale

Persona

Cognome Et

Studente

Matricola

S1S2

S4S3

3729

34

41istanze

istanze

P1

P2

Lentit Studente eredita lattributo Et dalla entit padre Persona. Ci significa che ogni studente ha una et: infatti, se esistesse una istanza di Studente che non ha un valore per lattributo Et, quella sarebbe una istanza di Persona senza un valore per Et, contraddicendo il significato dellattributo Et (funzione totale) per Persona

Basi di Dati Progettazione concettuale - 85Maurizio Lenzerini

Nome Tipo

Ereditariet delle relazioni

1. Ogni istanza di Persona pu essere coinvolta in un numero qualunque di istanze della relazione Pratica

2. Ogni istanza di Studente una istanza di Persona

quindi3. Ogni istanza di Studente pu essere

coinvolta in un numero qualunque di istanze della relazione Pratica

Persona

Cognome Et

Studente

Matricola

SportPratica

Basi di Dati Progettazione concettuale - 86Maurizio Lenzerini

Ereditariet della relazione ISA: transitivit

Principio di ereditariet: anche la relazione ISA si eredita. Questo conferma che la relazione ISA transitiva (oltre a essere rieflessiva)

Dal fatto che1. Ogni istanza di Studente

una istanza di Persona2. Ogni istanza diFuoriCorso

una istanza di Studentesegue logicamente che3. Ogni istanza di FuoriCorso

una istanza di Persona

Persona

Cognome Et

Studente

Matricola

FuoriCorso

AnnoFC

Basi di Dati Progettazione concettuale - 87Maurizio Lenzerini

Esercizio 11: I1 una istanza dello schema?

I1:

istanze(Persona) = { a,b,d } istanze(Studente) = { b,d }istanze(FuoriCorso) = { b,d }istanze(Cognome) =

{ (a,a), (b,b), (d,d) }istanze(Matricola) =

{ (b,12), (d,34), (a,89) }istanze(AnnoFC) = { (b,2) }

Schema

Persona

Studente

FuoriCorso

Cognome

Matricola

AnnoFC

Basi di Dati Progettazione concettuale - 88Maurizio Lenzerini

Esercizio 11: soluzione

I1:

istanze(Persona) = { a,b,d } istanze(Studente) = { b,d }istanze(FuoriCorso) = { b,d }istanze(Cognome) =

{ (a,a), (b,b), (d,d) }istanze(Matricola) =

{ (b,12), (d,34), (a,89) }istanze(AnnoFC) = { (b,2) }

Schema

Persona

Studente

FuoriCorso

Cognome

Matricola

AnnoFC

La risposta NO, perch: - (a,89) in Matricola- manca AnnoFC per d

Basi di Dati Progettazione concettuale - 89Maurizio Lenzerini

Descrivere lo schema concettuale corrispondente ad un'applicazione riguardante voli aerei, per la quale valgono le seguenti specifiche.Dei voli interessa: codice, durata in minuti, compagnia aerea, aeroporto di partenza e aeroporto di arrivo. Degli aeroporti interessa: codice, nome, citt (con nome e numero di abitanti) enazione. Delle compagnie aeree interessa il nome, lanno di fondazione, e la citt in cui ha sede la direzione. I voli charter sono particolari voli, che possono prevedere tappe intermedie in aeroporti. Delle tappe intermedie di un volo charter interessa l'ordine con cui esse si susseguono (ad esempio, il volo 124, che parte da Milano Linate e arriva a Palermo Punta Raisi, prevede prima l'aeroporto di Bologna e poi quello di Napoli come tappe intermedie). Infine, dei voli charter interessa ancheil tipo di aereomobile utilizzato per il volo.

Esercizio 12: schema concettuale

Basi di Dati Progettazione concettuale - 90Maurizio Lenzerini

Esercizio 12: soluzione

Della

DurataOrdine

Partenza

Codice

Aeroporto

Anno

ProgettoCompagnia

Codice Nome

Nome

Luogo

NomeNazione

Sede

Arrivo

TipoAereo

Tappa

VoloCharter

NumAbit

Citt

Volo

Basi di Dati Progettazione concettuale - 91Maurizio Lenzerini

Esercizio 12: altra soluzione

Della

DurataOrdine

Codice

Aeroporto

Anno

ProgettoCompagnia

Codice Nome

Nome

Luogo

NomeNazione

Sede

ArrPart

TipoAereo

Tappa

VoloCharter

NumAbit

Citt

VoloArrivo

Partenza

Basi di Dati Progettazione concettuale - 92Maurizio Lenzerini

Diverse figlie di una entit

Una entit pu avere ovviamente diverse entit figlie Le istanze di due entit che sono figlie della stessa entit

possono avere istanze in comune Questo significa che, al contrario di UML, nel modello ER

uno stesso oggetto pu essere istanza di diverse classi pi specifiche

Esempio:

Persona

Studente Lavoratore

Persona

LavoratoreStudente

Basi di Dati Progettazione concettuale - 93Maurizio Lenzerini

La nozione di generalizzazione tra entit

Finora, abbiamo considerato la relazione ISA che stabilisce che lentit padre pi generale della sottoentit. Talvolta, per, lentit padre pu generalizzare diverse sottoentit rispetto ad un unico criterio. In questo caso si parla di generalizzazione.

Nella generalizzazione, le sottoentit hanno insiemi di istanze disgiunti a coppie (anche se in alcune varianti del modello ER, si pu specificare se due sottoentit della stessa entit padre sono disgiunte o no).

Una generalizzazione pu essere di due tipi: Completa: lunione delle istanze delle sottoentit

uguale allinsieme delle istanze dellentit padre Non completa

Basi di Dati Progettazione concettuale - 94Maurizio Lenzerini

Sintassi: rappresentazione della generalizzazioneLa 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.

Generalizzazionecompleta

Generalizzazionecompleta

SottoentitSottoentit

Entit padre

Entit padre

Persona

Uomo Donna

SottoentitSottoentit

Esempio

Basi di Dati Progettazione concettuale - 95Maurizio Lenzerini

Sintassi: rappresentazione della generalizzazione

La freccia non annerita se la generalizzazione non completa.

Generalizzazionenon completa

Generalizzazionenon completa

SottoentitSottoentit

Entit padre

Entit padre

Persona

Studente Docente

SottoentitSottoentit

Esempio

Basi di Dati Progettazione concettuale - 96Maurizio Lenzerini

Semantica della generalizzazioneSe in uno schema S definita una generalizzazione tra una entit padre F e le sottoentit E1, E2, , En, in ogni istanza I dello schema S si ha:

istanze(I,E1) istanze(I,F) istanze(I,E2) istanze(I,F) istanze(I,En) istanze(I,F) istanze(I,Ei) istanze(I,Ek) = , per ogni 1 i,k n, i k

In pi, se la generalizzazione completa, si ha che:

istanze(I,E1) . istanze(I,En) = istanze(I,F)

Si noti che ci implica che in una generalizzazione ogni Ei in relazione ISA con F, e che in una generalizzazione completa le sottoentit formano partizione dellentit padre.

Basi di Dati Progettazione concettuale - 97Maurizio Lenzerini

Generalizzazioni a livello estensionale

C

A B

C

A B

Livello intensionale Livello estensionale

C

A B

C

A B

non completa

completa

Basi di Dati Progettazione concettuale - 98Maurizio Lenzerini

Generalizzazioni ed ereditariet

Il principio di ereditariet vale anche per le generalizzazioni:ogni propriet dellentit padre anche una propriet della sottoentit, e non si riporta esplicitamente nel diagramma. Lentit figlia pu avere ovviamente ulteriori propriet.

Cognome Et

Matricola

Persona

Studente Docente

Sede

Insegna

Nome Regione

Citt

Codice

Corso

Basi di Dati Progettazione concettuale - 99Maurizio Lenzerini

Regole sulla generalizzazioneAttenzione: continua a valere la regola che una entit pu avere al massimo una entit padre (tenendo conto sia della relazione ISA sia delle generalizzazioni)

EsempioQuesto schema scorretto

C

A B

D

Dato uno schema S, si pu costruire un grafo che ha le entit di S come nodi ed ha un arco da una entit E ad una entit F se F padre di E secondo la relazione ISA o secondo la generalizzazione. Diremo che una entit G antenata di E in uno schema se esiste un cammino da E ad G nel grafo associato

Basi di Dati Progettazione concettuale - 100Maurizio Lenzerini

Esercizio 13: relazione ISA e generalizzazioni

Si pu ristrutturare lo schema in modo che lo schema risultante sia corretto, e colga sostanzialmente la stessa semantica?

Studente

Questo schema scorretto

Lavoratore

StudenteLavoratore

Matricola Salario

Esenzione

CodFisc CodFisc

Basi di Dati Progettazione concettuale - 101Maurizio Lenzerini

Esercizio 13: soluzione 1

StudenteOLavoratoreCodFisc

Matricola Matricola Esenzione SalarioSalario

Ogni eventuale sottoentit di Studente si spezzer in una sottoentit di StudenteNonLav ed una sottoentit di StudenteLavoratore. Analogamente, ogni sottoentit di Lavoratore si spezzer in una sottoentit diLavoratoreNonSt ed una sottoentit di StudenteLavoratore

StudenteNonLav LavoratoreNonStStudenteLavoratore

Basi di Dati Progettazione concettuale - 102Maurizio Lenzerini

Esercizio 13: soluzione 2

Studente LavoratoreNonSt

StudenteOLavoratoreCodFisc

StudenteLavoratore

Matricola

Esenzione

Salario

Salario

Ogni eventuale sottoentit di Lavoratore si spezzer in una sottoentit di LavoratoreNonSt ed una sottoentit di StudenteLavoratore

Basi di Dati Progettazione concettuale - 103Maurizio Lenzerini

Esercizio 13: soluzione 3

Lavoratore StudenteNonLav

StudenteOLavoratoreCodFisc

LavoratoreStudente

Salario

Esenzione

Matricola

Matricola

Ogni eventuale sottoentit di Studente si spezzer in una sottoentit di StudenteNonLav ed una sottoentit di LavoratoreStudente

Basi di Dati Progettazione concettuale - 104Maurizio Lenzerini

Diverse generalizzazioni della stessa classe

La stessa entit pu essere padre in diverse generalizzazioni

Concettualmente, non c alcuna correlazione tra due generalizzazioni diverse, perch rispondono a due criteri diversi di classificare le istanze della entit padre

Uomo Donna

Persona

Impiegato Studente

Basi di Dati Progettazione concettuale - 105Maurizio Lenzerini

Differenza tra due isa e una generalizzazione

Le due sottoclassi derivano dauno 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

Uomo Donna

Persona

Impiegato Sportivo

Basi di Dati Progettazione concettuale - 106Maurizio Lenzerini

Esercizio 14: generalizzazione

Descrivere lo schema concettuale corrispondente alle seguenti specifiche.Le persone hanno un codice fiscale ed una et.Gli uomini anche la posizione militare, e le donne anche il numero di maternit. Gli impiegati hanno lo stipendio e possono essere o segretari, o direttori o progettisti. Alcuni progettisti sono responsabili di progetto. Gli studenti (che non possono essere impiegati) hanno un numero di matricola. Esistono persone che non sono n impiegati n studenti.

Basi di Dati Progettazione concettuale - 107Maurizio Lenzerini

Responsabile

Militare

Uomo Donna

CodiceFiscale Et

Persona

Stipendio Matricola

Impiegato Studente

Progettista Direttore Segretario

Esercizio 14: soluzione

Maternit

Basi di Dati Progettazione concettuale - 108Maurizio Lenzerini

Entit disgiunte

Da quanto detto sinora, non ancora chiaro quando, date due entit di uno schema, esse sono disgiunte (cio non hanno istanze comuni in tutte le istanze dello schema). A questo proposito, valgono queste osservazioni:

In ogni schema si assume che le entit che non hanno padre nello schema siano in realt sottoentit di una generalizzazione completa la cui entit padre una entit speciale detta TOP (ne segue che tali entit sono disgiunte a coppie, e che in ogni istanza dello schema, TOP rappresenta tutti gli oggetti che sono istanze di qualche entit)

E facile verificare che due entit E ed F sono disgiunte in uno schema S se esistono due entit G ed H (non necessariamente diverse da E ed F) nello schema S tali che:

G ed H sono sottoentit della stessa entit padre in una generalizzazione

G antenata di E, ed H antenata di F

Basi di Dati Progettazione concettuale - 109Maurizio Lenzerini

Esercizio 15: elencare tutte le coppie di entit disgiunte in questo schema

UfficioOperaResponsabile

Militare

Uomo Donna

CodiceFiscale Et

Persona

Stipendio Matricola

Impiegato Studente

Progettista Direttore Segretario

Maternit

Basi di Dati Progettazione concettuale - 110Maurizio Lenzerini

Esercizio 15: soluzioneCoppie di entit disgiunte:

Ufficio e ognuna delle altre entit Uomo e Donna Impiegato e Studente Progettista e Studente Segretario e Studente Direttore e Studente Responsabile e Studente Progettista e Direttore Progettista e Segretario Direttore e Segretario Responsabile e Direttore Responsabile e Segretario

Basi di Dati Progettazione concettuale - 111Maurizio Lenzerini

Relazione ISA e generalizzazioni tra relazioni

La relazione ISA pu essere definita anche tra relazioni, ma con la seguente regola: si pu definire la relazione ISA tra la relazione R (relazione figlia) e la relazione Q (relazione padre) in uno schema S solo se R e Q hanno lo stesso grado hanno gli stessi ruoli per ogni ruolo U, lentit corrispondente ad U in R una

entit figlia dellentit corrispondente ad U in Q

La semantica non cambia rispetto al caso della relazione ISA tra entit: se in uno schema S, definita la relazione ISA tra R e Q (R ISA Q, dove R e Q sono due relazioni con lo stesso grado e gli stessi ruoli), allora in ogni istanza I dello schema S, istanze(I,R) istanze(I,Q)

Analogamente, si possono definire generalizzazioni tra relazioni

Basi di Dati Progettazione concettuale - 112Maurizio Lenzerini

Esempio di relazione ISA tra relazioni

LavoraPersona Dipartimento

Dirige

Il direttore di un dipartimento deve lavorare in quel dipartimento

Basi di Dati Progettazione concettuale - 113Maurizio Lenzerini

Esempio di relazione ISA tra relazioni

Il direttore di un dipartimento deve lavorare in quel dipartimento, ed ha propriet aggiuntive (ad esempio let) rispetto agli impiegati

LavoraPersona Dipartimento

DirigeDirettoreImpiegato

Impiegato

Et

Basi di Dati Progettazione concettuale - 114Maurizio Lenzerini

Esempi di schemi non corretti

LavoraPersona Dipartimento

Direttore Dirige

LavoraPersona Dipartimento

Direttore Dirige

Ruoli diversinelle duerelazioni

Impiegato

Ruoli uguali ma entit non in relazione ISA

Impiegato

Basi di Dati Progettazione concettuale - 115Maurizio Lenzerini

Relazioni disgiuntePer le relazioni valgono osservazioni analoghe a quelle che abbiamo fatto sulle entit. In ogni schema si assume che le relazioni dello stesso

grado k e con gli stessi ruoli U1,U2,, Uk che non hanno padre nello schema siano in realt sottoentit in una ISA la cui relazione padre una relazione speciale detta TOPU1,U2,,Uk (ne segue che, al contrario del caso delle entit, tali relazioni non sono disgiunte a coppie).

Due relazioni P ed R che hanno lo stesso grado e gli stessi ruoli sono disgiunte in uno schema S se esistono due relazioni Q e T (non necessariamente diverse da P ed R) nello schema S tali che:

Q e T sono relazioni figlie della stessa relazione padre in una generalizzazione

Q antenata di P, e T antenata di R

Basi di Dati Progettazione concettuale - 116Maurizio Lenzerini

Relazioni disgiunte

Da quanto detto segue che, al contrario del caso delle entit, due relazioni (dello stesso grado e con gli stessi ruoli) che non hanno padre nello schema non sono disgiunte.

Esempio: Residenza e Domicilio non sono disgiunte

ResidenzaPersona Citta

Domicilio

Basi di Dati Progettazione concettuale - 117Maurizio Lenzerini

Vincoli di integrit nel modello ER

Ricordiamo che un vincolo di integrit una regola che si esprime sullo schema (livello intensionale), ma che specifica una condizione che deve valere per ogni istanza dello schema (livello estensionale).

Classificazione dei vincoli di integrit nel modello ER:

- Vincoli di cardinalit sulle relazioni- Vincoli di cardinalit sugli attributi- Vincoli di identificazione dentit- Altri vincoli (esterni)

Basi di Dati Progettazione concettuale - 118Maurizio Lenzerini

Vincoli di cardinalit sulle relazioni

Un vincolo di cardinalit si associa ad un ruolo U (corrispondente ad una entit E) in una relazione R, ed impone un limite minimo ed un limite massimo di istanze della relazione a cui pu partecipare ogni istanza dellentit E nel ruolo U.

Serve a caratterizzare meglio il significato di una relazione.

Basi di Dati Progettazione concettuale - 119Maurizio Lenzerini

Sintassi dei vincoli di cardinalit

Un vincolo di cardinalit si esprime mediante una coppia (x,y) associata al ruolo U della relazione R, dove:

x la cardinalit minima, cio un intero 0 y la cardinalit massima, che

- n, oppure - un intero positivo x

REU (x,y)

Basi di Dati Progettazione concettuale - 120Maurizio Lenzerini

Semantica dei vincoli di cardinalit

Se in uno schema S definito un vincolo di cardinalit (x,y) associato ad un ruolo U (corrispondente ad una entit E) in una relazione R, allora in ogni istanza I dello schema S, per ogni e in istanze(I,E), il numero di istanze di R che hanno ecome componente nel ruolo U :

maggiore o uguale a x minore o uguale a y (se y diverso da n)

Attenzione: il vincolo di cardinalit si definisce su una relazione, ma in realt stabilisce una condizione che deve valere per tutte le istanze della entit a cui associato il vincolo stesso (tramite il ruolo)

Basi di Dati Progettazione concettuale - 121Maurizio Lenzerini

Esempio di vincolo di cardinalit

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

Ad ogni impiegato sono assegnati da 1 a 5 incarichi Ogni incarico assegnato ad al pi 50 impiegati

Istanza:

istanze(Impiegato) = { a,b,c }

istanze(Incarico) = { x,y,v,w,z }

istanze(Assegnazione) = { (a,w), (b,v), (b,w), (c,y), (c,w), (c,z) }

Basi di Dati Progettazione concettuale - 122Maurizio Lenzerini

Cardinalit maggiormente utilizzate Le cardinalit di interesse sono tipicamente tre: 0, 1, n.

Per la cardinalit minima: 0 significa partecipazione opzionale 1 significa partecipazione obbligatoria

Per la cardinalit massima: 1 significa: lentit partecipa al pi una volta sola alla

relazione n significa: lentit partecipa un numero qualsiasi di

volte alla relazione

La mancanza del vincolo di cardinalit equivalente alla coppia (0,n)

Basi di Dati Progettazione concettuale - 123Maurizio Lenzerini

Esempi di vincolo di cardinalit

ResidenzaStudente Citt

ResidenzaStudente Citt

(0,1) (0,n)

ResidenzaStudente Citt

(1,1) (0,n)

Basi di Dati Progettazione concettuale - 124Maurizio Lenzerini

Classificazione di relazioni binarie

Discutiamo la cardinalit massime sulle relazioni binarie

Con riferimento alle cardinalit massime, le relazioni binarie possono essere di tipo: uno a uno uno a molti molti a molti

Basi di Dati Progettazione concettuale - 125Maurizio Lenzerini

Relazioni binarie uno a uno

VenditaOrdine Fattura(0,1) (1,1)

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

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

Basi di Dati Progettazione concettuale - 126Maurizio Lenzerini

Relazioni binarie uno a molti

ImpiegoPersona Azienda(0,1) (1,n)

NascitaPersona Citt(1,1) (0,n)

UbicazioneComune Provincia(1,1) (1,n)

Basi di Dati Progettazione concettuale - 127Maurizio Lenzerini

Relazioni binarie molti a molti

EsameStudente Corso(0,n) (0,n)

ScalataMontagna Alpinista(0,n) (1,n)

AbilitazioneMacchinista Locomotore(1,n) (1,n)

Basi di Dati Progettazione concettuale - 128Maurizio Lenzerini

Esercizio 16: aggiungere le cardinalit

Della

DurataOrdine

Codice

Aeroporto

Anno

ProgettoCompagnia

Codice Nome

Nome

Luogo

NomeNazione

Sede

ArrPart

TipoAereo

Tappa

VoloCharter

NumAbit

Citt

VoloArrivo

Partenza

Basi di Dati Progettazione concettuale - 129Maurizio Lenzerini

Esercizio 16: soluzione

Della

DurataOrdine

Codice

Aeroporto

Anno

ProgettoCompagnia

Codice Nome

Nome

Luogo

NomeNazione

Sede

ArrPart

TipoAereo

Tappa

VoloCharter

NumAbit

Citt

VoloArrivo

Partenza(1,1)

(1,1)

(1,1)

(1,1)

Basi di Dati Progettazione concettuale - 130Maurizio Lenzerini

Vincoli di cardinalit ed ereditariet su entit

Della

DurataOrdine

Codice

Aeroporto

Anno

ProgettoCompagnia

CodiceNome

Nome

ArrPart

TipoAereo

Tappa

VoloCharter

VoloArrivo

Partenza(1,1)

(1,1)

Ogni vincolo di cardinalit definito sulla relazione R per il ruolo U associato allentit E viene ereditato da ogni sottoentit di E. In questo esempio, VoloCharter eredita le cardinalit (1,1) da Volo, e quindi ogni istanza di VoloCharter partecipa esattamente ad un istanza della relazione ArrPart e ad una istanza della relazione Della

Basi di Dati Progettazione concettuale - 131Maurizio Lenzerini

Vincoli di cardinalit ed ereditariet su relazioniSe Q ISA R, ogni vincolo di cardinalit massima definito sulla relazione R (per il ruolo U) viene ereditato dalla relazione Q (per lo stesso ruolo U), che pu per avere cardinalit massima pi stringente di quella ereditata, ovvero cardinalit massima minore.

LavoraPersona Dipartimento

Dirige

(0,10)

(1,1)

(1,n)

Cardinalit massima 10 ereditata da Lavora Cardinalit massima minore di

quella ereditata da Lavora

Basi di Dati Progettazione concettuale - 132Maurizio Lenzerini

Vincoli di cardinalit ed ereditariet su relazioni

La regola sulla ereditariet della cardinalit massima vale anche se lentit corrispondente al ruolo U nella relazione figlia diversa dalla (cio una sottoentit della) entit corrispondente al ruolo U nella relazione padre

LavoraPersona Dipartimento

Dirige

(0,10)

(1,1)

(1,n)

Cardinalit massima minore di quella ereditata da Lavora

Cardinalit massima minore di quella ereditata da Lavora

Direttore (1,1)Impiegato

Impiegato

Basi di Dati Progettazione concettuale - 133Maurizio Lenzerini

Vincoli di cardinalit ed ereditariet su relazioniSe Q ISA R, il rapporto tra i vincoli di cardinalit minima su Q ed R sono pi complessi rispetto al caso dei vincoli di cardinalit massima.

RA B

A1 Q

RA B

Q

x e z sono totalmente scorrelati

Se x minore di z, si pu sostituire x con z ed ottenere uno schema equivalente pi accurato

(x,y)

(z,w)

U

U

(x,y)

(z,w)

Basi di Dati Progettazione concettuale - 134Maurizio Lenzerini

Vincoli di cardinalit sugli attributi E possibile definire vincoli di cardinalit anche sugli attributi,

con due scopi: indicare opzionalit indicare attributi multivalore

La semantica di un attributo con cardinalit diverso da (1,1) diversa dal caso di cardinalit (1,1): Quando la cardinalit massima di un attributo non 1,

lattributo si dice multivalore, e non rappresenta pi una funzione ma una relazione; le cardinalit stabiliscono il numero minimo e massimo di valori che lattributo associa ad ogni istanza dellentit

Quando la cardinalit minima di un attributo 0, la relazione (o la funzione, se la cardinalit massima uguale a 1) rappresentata dallattributo non pi totale

Se la specifica del vincolo manca, si intende che la cardinalitdellattributo sia (1,1), e la semantica quella usuale

Basi di Dati Progettazione concettuale - 135Maurizio Lenzerini

Rappresentazione grafica dei vincoli di cardinalit sugli attributi

(0,1)

(0,n) NumeroTelefono

Nome

NumeroPatente

ImpiegatoManca la specifica del vincolo di cardinalit: vuol dire che la cardinalit (1,1)

TitoloStudio

(1,n)

Basi di Dati Progettazione concettuale - 136Maurizio Lenzerini

Osservazione sulla semantica degli attributiSe in uno schema S un attributo A definito in n entit E1,,En, rispettivamente con domini D1,,Dn, e con cardinalit (x1,y1),, (xn,yn), in ogni istanza I dello schema S, A una relazione (o una funzione se la cardinalit massima sempre 1) del tipo

istanze(I,A) (istanze(I,E1) istanze(I,En)) (D1 Dn)e tale che, per ogni i vale la seguente condizione: se a istanze(I,Ei), allora il numero di coppie (a,b) in istanze(I,A)

soggetto ai vincoli di cardinalit (xi,yi), e per ogni (a,b) istanze(I,A), si ha che b Di

Da ci segue che occorre porre attenzione ai nomi assegnati agli attributi: quando si assegna lo stesso nome a due attributi di entit diverse, si deve ricordare che questi, a livello estensionale, rappresenteranno ununica relazione (o funzione).Questa osservazione vale anche per uno stesso attributo definito su relazioni diverse.

Basi di Dati Progettazione concettuale - 137Maurizio Lenzerini

Esempio di attributo definito su pi entit

La condizione descritta in precedenza impone che lattributo NumFigli nelle due entit Lavoratore e StudenteStraniero rappresenti in realt la stessa funzione. Ne segue che, se uno stesso oggetto istanza sia di Lavoratore sia di StudenteStraniero, esso ha un unico valore per lattributo NumFigli

Persona

Studente Lavoratore

StudenteStraniero

NumFigli

NumFigli

Basi di Dati Progettazione concettuale - 138Maurizio Lenzerini

Attributo definito su pi entit disgiunte

La condizione descritta a pagina 135 impone che lattributo Citt nelle due entit Persona e Dipartimento rappresenti in realt la stessa funzione. Tuttavia, Persona e Dipartimento sono entit disgiunte, e quindi possibile considerare la funzione come due funzioni distinte, una definita sulle istanze di Persona ed una definita sulle istanze di Dipartimento.

LavoraPersona Dipartimento

Citt Citt

Basi di Dati Progettazione concettuale - 139Maurizio Lenzerini

Vincoli di identificazione di entit

Un identificatore di una entit un insieme di propriet (attributi o relazioni) che permettono di identificareunivocamente le istanze di unentit. In altre parole non esistono due istanze di una data entit che assumono lo stesso valore per tutte le propriet che formano lidentificatore.

Un vincolo di identificazione per una entit E definisce un identificatore per E

Su ogni entit si pu definire un numero qualunque di vincoli di identificazione (tipicamente almeno uno)

Basi di Dati Progettazione concettuale - 140Maurizio Lenzerini

Sintassi dei vincoli di identificazione di entit Un identificatore di una entit E pu essere

Interno, ossia formato solo da attributi di E Esterno, ossia formato da attributi di E e da ruoli di relazioni che

coinvolgono E, oppure solo da ruoli di relazioni che coinvolgono Econ la regola che tutti gli attributi e tutti i ruoli di relazione che concorrono ad un identificatore di entit devono avere cardinalit (1,1)

Notazione per gli identificatori interni: Se ldentificatore formato da un solo attributo, si annerisce il

corrispondente pallino. Se ldentificatore formato da pi attributi, si uniscono gli attributi

con una linea che termina con pallino annerito.

Notazione per gli identificatori esterni: Se lidentificatore formato da attributi e relazioni (o meglio ruoli),

si indica unendo gli attributi ed i ruoli con una linea che termina con pallino annerito.

Basi di Dati Progettazione concettuale - 141Maurizio Lenzerini

Semantica dei vincoli di identificazione di entit

Se in uno schema S definito un vincolo di identificazione che specifica un identificatore per lentit E formato

dagli attributi A1,A2,,Ak dalle relazioni R1 (ruolo U1), R2 (ruolo U2),,Rh

(ruolo Uh)allora in ogni istanza I dello schema S, prese due diverse istanze qualunque e1 ed e2 in istanze(I,E), esse differiscono per il valore di almeno un Ai o per la partecipazione con ruolo Ui in almeno una Ri

Basi di Dati Progettazione concettuale - 142Maurizio Lenzerini

Esempi di identificatori interni

Data Nascita

Cognome

Nome

Targa

Modello

Colore

Automobile

Persona

Reddito

Basi di Dati Progettazione concettuale - 143Maurizio Lenzerini

Esempio di identificatore esterno

Iscrizione

Cognome Matricola Nome

(1,1) (0,n)Studente Universit

Nota: Unentit che ha un identificatore esterno viene detta entit debole

Basi di Dati Progettazione concettuale - 144Maurizio Lenzerini

Identificatore esterno: livello estensionale

Cognome

Iscrizione

Matricola Nome

(1,1) (0,n)Studente Universit

Istanza I:

istanze(Studente) = { a,b,c } istanze(Universit) = { v,z }istanze(Matricola) = { (a,12), (b,24), (c,12) } istanze(Cognome) = { (a,Rossi), (b,Finzi), (c,Rossi) }istanze(Nome) = { (v,Viterbo), (z,Camerino) }istanze(Iscrizione) = { (a,v), (b,v), (c,z) }

Basi di Dati Progettazione concettuale - 145Maurizio Lenzerini

Esercizio 17: vincoli di identificazione

Della

Durata Codice

Aeroporto

ProgettoCompagnia

Codice Nome

ArrPartVoloArrivo

Partenza

Rappresentare mediante vincoli di identificazione che Ogni volo ha un codice unico nella

compagnia Due voli diversi della stessa compagnia

devono differire o nellaeroporto di arrivo o nellaeroporto di partenza

(1,1)

(1,1)

Basi di Dati Progettazione concettuale - 146Maurizio Lenzerini

Esercizio 17: soluzione

Rappresentare mediante vincoli di identificazione che Ogni volo ha un codice unico nella

compagnia Due voli diversi della stessa compagnia

devono differire o nellaeroporto di arrivo o nellaeroporto di partenza

Della

Durata Codice

Aeroporto

ProgettoCompagnia

Codice Nome

ArrPartVoloArrivo

Partenza

(1,1)

(1,1)

Basi di Dati Progettazione concettuale - 147Maurizio Lenzerini

Esempi di identificazione esterna

Lesempio mostra che un identificatore esterno pu anche non comprendere attributi, e pu coinvolgere una sola relazione attraverso un unico ruolo.

Studente CorsoVerbalizzazione

VotoDataEsame

(1,1)

Non esistono due esami diversi che riguardano la stessa coppia di studente e corso.

Basi di Dati Progettazione concettuale - 148Maurizio Lenzerini

Osservazione sull identificazione esternaUna entit che partecipa con ruolo U e con cardinalit (1,1) ad una relazione R nella quale almeno uno degli altri ruoli hanno cardinalit massima 1, implicitamente identificata esternamente da R tramite U (lidentificatore esterno pu essere esplicitamente indicato, ma non necessario).

Ad esempio:

(1,1)E FR

equivalente a

(0,1) (1,1)E FR

(0,1)

Infatti, se non valesse il vincolo di identificazione esterno, allora esisterebbero due istanze di E connesse con una stessa istanza f di F tramite R, e questo violerebbe il vincolo di cardinalit massima di F in R.

Basi di Dati Progettazione concettuale - 149Maurizio Lenzerini

(1,1)(0,1)

(1,N)(0,1)

(0,1)

(1,1)

(1,N)

(0,N)

(1,N)

(1,N)

Citt

Telefono

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Indirizzo

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Dipartimento

Esempio di vincoli di cardinalit e di identificaz.Stipendio

Anzianit

Basi di Dati Progettazione concettuale - 150Maurizio Lenzerini

Vincoli non esprimibili nel diagramma ER

Gli schemi ER permettono di cogliere la maggior parte delle interrelazioni tra i dati del dominio dinteresse

Tuttavia alcune interrelazioni non possono essere colte direttamente da uno schema ER

Tali interrelazioni vanno in ogni caso tenute presenti attraverso delle asserzioni aggiuntive dette vincoliesterni al diagramma, o semplicemente vincoli esterni

Basi di Dati Progettazione concettuale - 151Maurizio Lenzerini

Vincoli non esprimibili nel diagramma ER

Come rappresentiamo tali vincoli?

Attraverso formalismi opportuni (es, in logica matematica)

Attraverso delle asserzioni in linguaggio naturale (che devono essere il pi possibile precise e non ambigue)

Basi di Dati Progettazione concettuale - 152Maurizio Lenzerini

(1,1)(0,1)

(1,n)(0,1)

(0,1)

(1,1)

(1,n)

(0,n)

(1,n)

(1,n)

Citt

Telefono

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Indirizzo

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Dipartimento

Esempio di schema concettuale ...Stipendio

Anzianit

Basi di Dati Progettazione concettuale - 153Maurizio Lenzerini

con vincoli esterni

Vincoli di integrit esterni (1) Il direttore di un dipartimento deve afferire a tale

dipartimento da almeno 5 anni (2) Un impiegato non deve avere uno stipendio

maggiore del direttore del dipartimento al quale afferisce

(3) Un dipartimento con sede a Roma deve essere diretto da un impiegato con pi di dieci anni di anzianit

(4) Un impiegato non pu partecipare ad un numero di progetti maggiore di due volte il numero di dipartimenti ai quali afferisce

Basi di Dati Progettazione concettuale - 154Maurizio Lenzerini

Vincolo esterno sullo schema dellesercizio 12

Della

DurataOrdine

Codice

Aeroporto

Anno

ProgettoCompagnia

Codice Nome

Nome

Luogo

NomeNazione

Sede

ArrPart

TipoAereo

Tappa

VoloCharter

NumAbit

Citt

VoloArrivo

Partenza

Vincolo esterno: Per ogni v in VoloCharter, se (v,a1),,(v,an) sono tutte le coppie in Tappa alle quali partecipa v, e se o1,on, sono i valori assegnati a tali coppie dallattributo Ordine, allora per ogni i=1,,n, esiste un oj tale che oj = i.

(1,1)

(1,1)

(1,1)

(1,1)

Basi di Dati Progettazione concettuale - 155Maurizio Lenzerini

Esercizio 18: progettazione concettualeDescrivere lo schema concettuale corrispondente ad un'applicazione riguardante un insieme di officine, facendo riferimento alle seguenti specifiche.

Delle officine interessano: nome, indirizzo, numero di dipendenti (maggiore di 0), dipendenti (con l'informazione su quanti anni di servizio), e direttore. Si noti che ogni officina ha uno ed un solo direttore, ed un direttore dirige una ed una sola officina. Dei dipendenti e dei direttori interessano: codice fiscale, indirizzo, numeri di telefono, e anni di anzianit. Dei direttori interessa anche l'et. Si noti che un direttore non necessariamente un dipendente di officina (ma pu esserlo). Ogni riparazione effettuata da una ed una sola officina, e riguarda uno ed un solo veicolo. Di ogni riparazione interessano: codice (univoco nell'ambito dell'officina), ora e data di accettazione del veicolo, e, nel caso di riparazione terminata, ora e data di riconsegna del veicolo. Dei veicoli interessano: modello, tipo, targa, anno di immatricolazione, e proprietario. Ogni veicolo ha uno ed un soloproprietario. Dei proprietari di veicoli interessano: codice fiscale, indirizzo, e numeri di telefono.

Basi di Dati Progettazione concettuale - 156Maurizio Lenzerini

Esercizio 18: soluzione

(1,1) (1,1)

Dipendente

Dirige

Ripara

Relativa Terminata

PossiedeCodice

Riparazione OraAccettazioneDataAccettazione

OraRiconsegnaDataRiconsegna

Lavora

AnniServizio

Proprietario

(1,1)

(1,1)

(1,1) (1,n)(1,n) Et

Veicolo

Nome

IndirizzoOfficina

NumDip

Targa

Modello Tipo AnnoImm

Persona

CodFis Indirizzo NumTel(0,n)

DirettoreAnniAnz

Vincoli esterni: riconsegna dopo accettazione vincolo che lega NumDip alle istanze in Lavora

AnniAnz

Basi di Dati Progettazione concettuale - 157Maurizio Lenzerini

Documentazione associata agli schemi ER

Oltre al diagramma ER, lo schema concettuale descritto dal cosiddetto dizionario dei dati

Il dizionario dei dati costituito dalle tabelle di Entit Relazioni Attributi Vincoli esterni

Basi di Dati Progettazione concettuale - 158Maurizio Lenzerini

(1,1)(0,1)

(1,n)(0,1)

(0,1)

(1,1)

(1,n)

(0,n)

(1,n)

(1,n)

Citt

Telefono

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Indirizzo

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Dipartimento

Esempio di schema concettuale

Stipendio

Anzianit

Basi di Dati Progettazione concettuale - 159Maurizio Lenzerini

Dizionario dei dati: entit

{ Citt, Indirizzo }CittIndirizzo (Via, CAP)

Sede dellazienda

Sede

{ Nome, Sede }NomeTelefono

Struttura aziendale

Dipartimento

{ Nome }NomeBudget

Progetti aziendali

Progetto

{ Codice }CodiceCognomeStipendioAnzianit

Dipendente dellazienda

Impiegato

IdentificatoriAttributiDescrizioneEntit

Basi di Dati Progettazione concettuale - 160Maurizio Lenzerini

Dizionario dei dati: relazioni

Dipartimento, Sede

Composizione dellAzienda

Composizione

Impiegato, Progetto

Partecipazione ad un progetto

Partecipazione

DataImpiegato, Dipartimento

Afferenza ad un dipartimento

Afferenza

Impiegato, Dipartimento

Direzione di un dipartimento

Direzione

AttributiComponentiDescrizioneRelazione

Basi di Dati Progettazione concettuale - 161Maurizio Lenzerini

Dizionario dei dati: attributi

............

Nome del progettoStringaProgettoNome

Stipendio di impiegatoRealeImpiegatoStipendio

Cognome di impiegatoStringaImpiegatoCognome

Codice identificativo di impiegati

InteroImpiegatoCodice

DescrizioneDominioEntit/RelazioneAttributo

Basi di Dati Progettazione concettuale - 162Maurizio Lenzerini

Dizionario dei dati: vincoli esterni

Vincoli di integrit esterni (1) Il direttore di un dipartimento deve afferire a tale

dipartimento (2) Un impiegato non deve avere uno stipendio

maggiore del direttore del dipartimento al quale afferisce

(3) Un dipartimento con sede a Roma deve essere diretto da un impiegato con pi di dieci anni di anzianit

(4) Un impiegato che non afferisce ad alcun dipartimento non deve partecipare ad alcun progetto

Basi di Dati Progettazione concettuale - 163Maurizio Lenzerini

4. La progettazione concettuale4.3 metodologia per la progettazione concettuale

1. introduzione alla progettazione di basi di dati

2. modello Entit-Relazione3. metodologia per la

progettazione concettuale4. esempio

Basi di Dati Progettazione concettuale - 164Maurizio Lenzerini

Attivit nella progettazione concettuale

La progettazione concettuale preceduta dalla fase di raccolta (o acquisizione) dei requisiti

A partire dai requisiti raccolti, la progettazione concettuale comprende le seguenti attivit:

1. strutturazione e organizzazione dei requisiti raccolti2. costruzione del glossario (opzionale)3. costruzione dello schema concettuale (diagramma e

dizionario dei dati)4. controllo di qualit

Queste attivit sono tipicamente interconnesse

Basi di Dati Progettazione concettuale - 165Maurizio Lenzerini

Commenti sulla raccolta dei requisiti

Possibili fonti di requisiti: utenti, attraverso:

interviste documentazione apposita

documentazione esistente: normative (leggi, regolamenti di settore) regolamenti interni, procedure aziendali realizzazioni preesistenti

modulistica

La raccolta dei requisiti un'attivit difficile, per cui sono state studiate e proposte metodologie specifiche. Noi faremo solo alcune considerazioni di carattere generale.

Scopo della raccolta dei requisiti: produrre documentazione che descriva in modo corretto e completo i requisiti della base di dati.

Basi di Dati Progettazione concettuale - 166Maurizio Lenzerini

Raccolta attraverso interviste

Osservazioni: utenti diversi possono fornire informazioni diverse utenti a livello pi alto hanno spesso una visione pi ampia ma

meno dettagliata le interviste portano spesso ad una acquisizione dei requisiti

per raffinamenti successivi

Alcune regole per linterazione con gli utenti: effettuare spesso verifiche di comprensione e coerenza verificare anche per mezzo di esempi (generali e relativi a casi

limite) richiedere definizioni e classificazioni far evidenziare gli aspetti essenziali rispetto a quelli marginali

Basi di Dati Progettazione concettuale - 167Maurizio Lenzerini

Documentazione descrittiva dei requisiti

Alcune regole generali:

scegliere il corretto livello di astrazione

standardizzare la struttura delle frasi

suddividere le frasi articolate

separare le frasi sui dati da quelle sulle funzioni

Basi di Dati Progettazione concettuale - 168Maurizio Lenzerini

Fase 1: Strutturazione e organizzazione dei requisiti

I requisiti raccolti devono venire strutturati e organizzati pergli scopi dellanalisi.

Alcune regole generali per lorganizzazione di termini e concetti: costruire un glossario dei termini individuare omonimi e sinonimi e unificare i termini rendere esplicito il riferimento fra termini riorganizzare le frasi per concetti

Basi di Dati Progettazione concettuale - 169Maurizio Lenzerini

Esempio di raccolta dei requisiti:base di dati bibliografica

Si procede per raffinamenti successivi.

Primo raffinamento:

Si vogliono organizzare i dati di interesse per automatizzare la gestione dei riferimenti bibliografici.

Basi di Dati Progettazione concettuale - 170Maurizio Lenzerini

Raccolta requisiti: base di dati bibliografica (2)

Secondo raffinamento:

Si vogliono organizzare i dati di interesse per automatizzare la gestione dei riferimenti bibliografici, con tutte le informazioni da riportarsi in una bibliografia.Per ogni pubblicazione deve esistere un codice identificante costituito da sette caratteri, indicanti le iniziali degli autori, l'anno di pubblicazione e un carattere aggiuntivo per la discriminazione delle collisioni.

Basi di Dati Progettazione concettuale - 171Maurizio Lenzerini

Raccolta requisiti: base di dati bibliografica (3)Terzo raffinamento:

Si vogliono organizzare i dati di interesse per automatizzare la gestione dei riferimenti bibliografici, con tutte le informazioni da riportarsi in una bibliografia. Le pubblicazioni sono di due tipi, monografie (per le quali interessano editore, data e luogo di pubblicazione) e articoli su rivista (con nome della rivista, volume, numero, pagine e anno di pubblicazione); per entrambi i tipi si debbono ovviamente riportare i nomi degli autori.Per ogni pubblicazione deve esistere un codice identificante costituito da sette caratteri, indicanti le iniziali degli autori, l'anno di pubblicazione e un carattere aggiuntivo per la discriminazione delle collisioni.

Basi di Dati Progettazione concettuale - 172Maurizio Lenzerini

Esempio di organizzazione dei requisiti:societ di formazione

Si vuole realizzare una base di dati per una societ che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per gli studenti (circa 5000), identificati da un codice, si vuole memorizzare il codice fiscale, il cognome, l'et, il sesso, il luogo di nascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato in precedenza insieme al periodo, l'indirizzo e il numero di telefono, i corsi che hanno frequentato (i corsi sono in tutto circa 200) e il giudizio finale. Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno, i luoghi e le ore dove sono tenute le lezioni. I corsi hanno un codice, un titolo e possono avere varie edizioni con date di inizio e fine e numero di partecipanti. Se gli studenti sono liberi professionisti, vogliamo conoscere l'area di interesse e, se lo possiedono, il titolo. Per quelli che lavorano alle dipendenze di altri, vogliamo conoscere invece il loro livello e la posizione ricoperta. Per gli insegnanti (circa 300), rappresentiamo il cognome, l'et, il posto dove sono nati, il nome del corso che insegnano, quelli che hanno insegnato nel passato e quelli che possono insegnare. Rappresentiamo anche tutti i loro recapiti telefonici. I docenti possono essere dipendenti interni della societ o collaboratori esterni.

Basi di Dati Progettazione concettuale - 173Maurizio Lenzerini

Strutturazione dei requisitiin gruppi di frasi omogenee (1)

Frasi di carattere generale:Si vuole realizzare una base di dati per una societ che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti.

Frasi relative ai partecipanti:Per i partecipanti (circa 5000), identificati da un codice, rappresentiamo il codice fiscale, il cognome, l'et, il sesso, la citt di nascita, i nomi dei loro attuali datori di lavoro e di quelli precedenti (insieme alle date di inizio e fine rapporto),le edizioni dei corsi che stanno attualmente frequentando e quelli che hanno frequentato nel passato, con la relativa votazione finale in decimi.

Basi di Dati Progettazione concettuale - 174Maurizio Lenzerini

Strutturazione dei requisitiin gruppi di frasi omogenee (2)

Frasi relative ai datori di lavoro:Relativamente ai datori di lavoro presenti e passati dei partecipanti, rappresentiamo il nome, l'indirizzo e il numero di telefono.

Frasi relative ai corsi:Per i corsi (circa 200), rappresentiamo il titolo e il codice, le varie edizioni con date di inizio e fine e, per ogni edizione, rappresentiamo il numero di partecipanti e il giorno della settimana, le aule e le ore dove sono tenute le lezioni.

Basi di Dati Progettazione concettuale - 175Maurizio Lenzerini

Strutturazione dei requisitiin gruppi di frasi omogenee (3)

Frasi relative a tipi specifici di partecipanti:Per i partecipanti che sono liberi professionisti, rappresentiamo l'area di interesse e, se lo possiedono, il titolo professionale. Per i partecipanti che sono dipendenti, rappresentiamo invece il loro livello e la posizione ricoperta.

Frasi relative ai docenti:Per i docenti (circa 300), rappresentiamo il cognome, l'et, la citt di nascita, tutti i numeri di telefono, il titolo del corso che insegnano, di quelli che hanno insegnato nel passato e di quelli che possono insegnare. I docenti possono essere dipendenti interni della societ di formazione o collaboratori esterni.

Basi di Dati Progettazione concettuale - 176Maurizio Lenzerini

Fase 2: Costruzione del glossario (opzionale)

PartecipantePostiEnte presso cui i partecipanti lavorano o hanno lavorato

Societ

DocenteSeminarioCorso organizzato dalla societ. Pu avere pi edizioni.

Corso

CorsoInsegnanteDocente dei corsi. Pu essere esterno

Docente

Corso, SocietStudentePersona che partecipa ai corsi

Partecipante

CollegamentiSinonimiDescrizioneTermine

Basi di Dati Progettazione concettuale - 177Maurizio Lenzerini

Fase 3: Costruzione dello schema concettuale

Si parte dalla specifica dei requisiti raccolti, strutturati e organizzati, e dalleventuale glossario

Si fa uso del modello Entit-Relazione e si costruisce il diagramma e il dizionario dei dati

Si utilizzano opportune strategie per sviluppare lo schema concettuale

Nello sviluppare il progetto si tiene conto dei fattori di qualit che uno schema concettuale deve possedere

Basi di Dati Progettazione concettuale - 178Maurizio Lenzerini

Rappresentazione dei concetti della specifica

se il concetto ha propriet significative e descrive oggetti con esistenza autonoma:

entit se il concetto un valore semplice e non ha propriet:

attributo se il concetto correla due o pi concetti:

relazione se il concetto caso particolare di un altro:

is-a o generalizzazione

Quale costrutto ER va utilizzato per rappresentare un concetto presente nelle specifiche?Bisogna basarsi sulle significato dei costrutti del modello ER!

Basi di Dati Progettazione concettuale - 179Maurizio Lenzerini

Strategie di progetto

Si possono adottare diverse strategie di progetto: top-down bottom-up inside-out mista

Ciascuna strategia prevede opportune primitive di raffinamento che specificano in che modo sostituire o integrare una parte dello schema con una versione pi raffinata della stessa.

Basi di Dati Progettazione concettuale - 180Maurizio Lenzerini

Strategia top-down

SpecificheSchema inizialeSchema intermedioSchema intermedioSchema finale

Basi di Dati Progettazione concettuale - 181Maurizio Lenzerini

Primitive di raffinamento top-down

Si parte da uno schema scheletro (cio scarno e generale) e si procede per raffinamenti successivi:

introduzione di attributi di unentit o una relazione introduzione degli identificatori di unentit introduzione delle cardinalit di una relazione sostituzione di unentit con pi entit connesse da

una relazione sostituzione di unentit con una generalizzazione

o con pi entit connesse da legami is-a sostituzione di una relazione con pi relazioni

Basi di Dati Progettazione concettuale - 182Maurizio Lenzerini

Primitive di raffinamento top-down: introduzione di attributi

Cognome Et

Stipendio

Impiegato

Basi di Dati Progettazione concettuale - 183Maurizio Lenzerini