IL MODELLO ENTITÀ-RELAZIONE - Università di...

26
IL MODELLO ENTITÀ-RELAZIONE PROGETTAZIONE CONCETTUALE DI UNA BASE DI DATI FASI DELLA PROGETTAZIONE DI UNA BASE DI DATI

Transcript of IL MODELLO ENTITÀ-RELAZIONE - Università di...

IL MODELLOENTITÀ-RELAZIONE

PROGETTAZIONECONCETTUALE

DI UNA BASE DI DATI

FASI DELLA PROGETTAZIONEDI UNA BASE DI DATI

Giorgio Giacinto 2010 Basi di Dati 3

Introduzione alla progettazionedelle basi di dati

1. Analisi dei requisiti! Dati, applicazioni, operazioni più frequenti! Analisi informale con gli utenti

2. Progettazione concettuale! Descrizione ad alto livello dei dati da

memorizzare! Uso del modello ER

! produzione di uno “schema” di base di datirappresentato graficamente da un diagramma

Giorgio Giacinto 2010 Basi di Dati 4

Introduzione alla progettazionedelle basi di dati3. Progettazione logica

! Scelta di un DBMS per l’implementazione della base didati.

! Tradurre del diagramma ER nello schema logico delDBMS (noi considereremo il relazionale)

4. Raffinamento dello schema (normalizzazione)! controllo dello schema relazionale per trovare

ridondanze e relative anomalie.5. Progettazione fisica e ulteriore raffinamento dello

schema! si considerano il carico di lavoro e le prestazioni del

sistema per effettuare ulteriori modifiche sullo schema.

Giorgio Giacinto 2010 Basi di Dati 5

Introduzione alla progettazionedelle basi di dati

6. Progettazione delle applicazioni e dellasicurezza

• Ingegneria del software• Limiti d’uso della base di dati da parte di diversi

gruppi di utenti

• In tutti i momenti della progettazione si deveprevedere un feedback per le fasiprecedenti

IL MODELLOENTITÀ-RELAZIONE (ER)

Giorgio Giacinto 2010 Basi di Dati 7

Introduzione alla progettazionedelle basi di dati

! Progettazione concettuale(in questa fase si usa il modello ER)! Quali sono le entità e le relazioni

dell’organizzazione?! Quali informazioni su queste entità e relazioni

dovrebbero essere memorizzate nella base didati?

! Quali sono i vincoli di integrità o le regoleaziendali (business rules) in vigore?

Giorgio Giacinto 2010 Basi di Dati 8

Basi del modello ER

Entità: oggetto del mondoreale distinguibile da altrioggetti

! Una entità è descritta (nelDB) usando un insieme diattributi

! Insieme di entità: unacollezione di entità simili(es., tutti gli impiegati)

! Tutte le entità in uninsieme di entità hanno lostesso insieme di attributi

Impiegati

cfnome

pp

Ciascun insieme di entità hauna chiaveCiascun attributo ha undominio

Giorgio Giacinto 2010 Basi di Dati 9

Basi del modello ER (segue)Relazione: associazione tra 2 o più entità. Ad

esempio, Bianchi lavora nel reparto Farmacia! Insieme di relazioni: collezione di relazioni simili

! Ciascuna relazione è denotata da una n-tupla{(e1,…,en)|e1 ! E1,…,en ! En}che correla n insiemi di entità E1... En

! Le relazioni possono anche avere attributi descrittivi! Lo stesso insieme di entità può partecipare a diversi insiemi

di relazioni, o in “ruoli” differenti all’interno dello stessoinsieme

Giorgio Giacinto 2010 Basi di Dati 10

Basi del modello ER (segue)

ppnome

Impiegati

cf

Lavora_In

dal

rid

Reparti

rnomebudget

Dipende_da

subor-dinato

super-visore

pp

nome

Impiegati

cf

Località

capienzaIndirizzo

Giorgio Giacinto 2010 Basi di Dati 11

Relazioni

! Una relazione è univocamente identificatadalle entità che vi partecipano! Lavora_in (binaria) è identificata da cf e rid! Lavora_in (ternaria) è identificata da cf, rid e

Indirizzo

Giorgio Giacinto 2010 Basi di Dati 12

rnome

budgetrid

dal

pp

nome

cf

DirigeImpiegati Reparti

Vincoli di chiave! Lavora_In

! un impiegatopuò lavorare inmolti reparti

! un reparto puòavere moltiimpiegati

! Di contro, ciascunReparto ha al piùun direttore

! Un repartocompare al piùin una relazionedi Dirige 1-a-1 1-a-Molti Molti-a-1 Molti-a-molti

Giorgio Giacinto 2010 Basi di Dati 13

Vincoli di partecipazione

! C’è un direttore per ogni reparto?! Se sì, questo è un vincolo di partecipazione: la

partecipazione di Reparti in Dirige viene dettatotale (piuttosto che parziale)! Ogni valore rid della tabella Reparti deve apparire in

almeno una riga della tabella Dirige! Il vincolo di chiave impone che il valore di rid compaia

in una sola riga di Dirige

Giorgio Giacinto 2010 Basi di Dati 14

Vincoli di partecipazione

pp budgetridnome rnome

budget

dal

Dirige

dal

RepartiImpiegati

cf

Lavora_In

Giorgio Giacinto 2010 Basi di Dati 15

Vive CittàPersona(1,1) (1,N)

Vincoli di cardinalità

! Vincoli di chiave e di partecipazioneconsiderati insieme sono anche detti vincolidi cardinalità (essi definiscono una cardinalitàmassima e minima, rispettivamente)

! I vincoli di cardinalità definiscono il minimo (v.di partecipazione) e il massimo (v. di chiave)numero di istanze della relazioni cuipartecipa una istanza dell’entità

! Es.

Giorgio Giacinto 2010 Basi di Dati 16

pp

nome

etàpnome

FamiliariImpiegati

cf

Polizza

costo

Entità deboli! Una entità debole può essere identificata univocamente

solo considerando la chiave primaria di un’altra entità(proprietario)

! L’insieme di entità proprietarie e l’insieme di entità debolidevono partecipare in un insieme di relazioni uno-a-molti(1 proprietario, molte entità deboli)

! L’insieme di entità deboli deve avere partecipazione totalein questo insieme di relazioni identificanti

Giorgio Giacinto 2010 Basi di Dati 17

Gerarchie ISA

Imp_A_Contratto

nomecf

Impiegati

pp

Paghe_orarieISA

Imp_A_Ore

idContratto

Ore_lavorate

Se dichiariamo A ISA B, ogni entità A è considerata anchecome entità B

le risposte alle interrogazioni dovrebbero riflettere questo fatto

Impiegati è specializzato in sottoclassiImpiegati_A_Ore e Impiegati_A_Contratto sonogeneralizzati in Impiegati

Come in C++, o altri linguaggi di programmazione, gli attributivengono ereditati.

Giorgio Giacinto 2010 Basi di Dati 18

Gerarchie ISAVincoli di disgiunzione• può Joe essere un Imp_A_Ore e anche una entità di

Imp_A_Contratto? (Permesso/non permesso)• default: non permesso. Altrimenti usiamo un’asserzione

Vincoli di copertura• deve, ogni entità di Impiegati, essere anche una entità di

Imp_A_Ore o una entità di Imp_A_Contratto? (Sì/No - Coperturatotale o parziale)

• default: copertura parziale. Altrimenti usiamo un’asserzione

Motivi per usare ISA• Aggiungere attributi descrittivi specifici a una sottoclasse• Identificare le entità che partecipano a una relazione

PROGETTAZIONECONCETTUALE

Giorgio Giacinto 2010 Basi di Dati 20

Progettazione concettualeusando il modello ER! Scelte di progetto

! Un concetto dovrebbe essere modellato comeuna entità o come un attributo?

! Un concetto dovrebbe essere modellato comeuna entità o come una relazione?

! Identificare le relazioni: binarie o ternarie?! Rappresentazione di vincoli nel modello ER

! molta della semantica dei dati può (e dovrebbe)essere catturata

! però alcuni vincoli non possono essere catturatidai diagrammi ER

Giorgio Giacinto 2010 Basi di Dati 21

Progettazione concettualeusando il modello ER! Necessità di ulteriori raffinamenti dello

schema! lo schema relazionale ottenuto dai diagrammi ER

è un buon punto di partenza.Ma il progetto ER è soggettivo e non puòesprimere certi vincoliQuindi lo schema relazionale può aver bisogno diraffinamenti

Giorgio Giacinto 2010 Basi di Dati 22

Entità o Attributi ?! Indirizzo dovrebbe essere un attributo di Impiegati o

una entità (connessa a Impiegati da una relazione)?! Dipende dall’uso che vogliamo fare delle

informazioni sull’indirizzo, e dalla semantica dei dati! se abbiamo diversi indirizzi per impiegati, indirizzo deve

essere una entità (poiché gli attributi non possonoassumere più valori)

! se la struttura (città, via, etc) è importante, ad esempiovogliamo trovare gli impiegati in una data città, indirizzodeve essere modellato come una entità (poiché i valoridegli attributi sono atomici)

Giorgio Giacinto 2010 Basi di Dati 23

Entità o Attributi? (segue)

! Lavora_In2 nonpermette a unimpiegato di lavorarein un reparto per dueo più periodi

! Simile al problemadella registrazione diindirizzi multipli per unimpiegato: vogliamoregistrare diversivalori degli attributidescrittivi perciascuna istanza dellarelazione

nome

Impiegati

cf pp

Lavora_In2

dal alrnome

budgetrid

Reparti

rnomebudgetrid

nome

Reparti

cf pp

Impiegati Lavora_In3

Duratadal al

Giorgio Giacinto 2010 Basi di Dati 24

Entità o Relazioni?! Il diagramma ER a lato è

corretto nel caso in cui undirettore ha un budgetdiscrezionale separato perciascun reparto

! Che succede se undirettore ha un budgetdiscrezionale che copretutti i reparti da lui diretti?

! Ridondanza di rbudget,che è memorizzato perciascun reparto gestitodal direttore

! Ingannevole: suggerisceche rbudget sia legato alreparto

Gestisce2

nome rnomebudgetrid

Impiegati Reparti

cf pp

rbudgetdal

Impiegati

dalnome rnomebudgetrid

Reparti

cf pp

Direttore

Gestisce3

rbudgetISAparziale

Giorgio Giacinto 2010 Basi di Dati 25

etàpnome

FamiliariCopre

nome

Impiegati

cf pp

Polizze

polizzaID costo

Relazioni binarie o relazioniternarie?

! Vincoli aggiuntivi! Una polizza non può essere posseduta congiuntamente da

due o più impiegati! Ogni polizza deve essere posseduta da qualche impiegato! Familiari è un insieme di entità deboli

! Identificata da pnome e polizzaID! Un vincolo di chiave su Polizze significherebbe che

una polizza può coprire solo un familiare!

Giorgio Giacinto 2010 Basi di Dati 26

Relazioni binarie o relazioniternarie?

Beneficiario

etàpnome

Familiari

polizzaID costo

Polizze

Intestatario

nome

Impiegati

cf pp

Giorgio Giacinto 2010 Basi di Dati 27

Relazioni binarie o relazioniternarie? (segue)

! L’esempio precedente illustra un caso in cui duerelazioni binarie sono migliori di una relazioneternaria

! Un esempio nell’altra direzione: una relazioneternaria Contratti mette in relazione gli insiemiPezzi, Reparti e Fornitori, e ha l’attributo descrittivoquantità. Nessuna combinazione di relazionibinarie è un sostituto adeguato! F “può fornire” P, D “ha bisogno” di P, e D “tratta con” F

non implicano che D sia d’accordo sul comprare P da F! Come registreremo quantità?

Giorgio Giacinto 2010 Basi di Dati 28

Vincoli oltre il modello ER! Dipendenze funzionali

! ad esempio, un reparto può ordinare due pezzi distintidallo stesso fornitore! Non si può esprimere in termini della relazione ternaria

Contratti! La normalizzazione raffina il progetto ER tenendo in

considerazione le DF! Dipendenze di inclusione

! caso speciale: chiavi esterne (si possono esprimere nelmodello ER)

! ad esempio, almeno una persona deve dipendere daciascun direttore. Chiave esterna? Esprimibile nelmodello ER?

Giorgio Giacinto 2010 Basi di Dati 29

Vincoli oltre il modello ER

! Vincoli generali! Ad esempio, budget discrezionale del direttore

minore del 10% dei budget combinati di tutti ireparti che gestisce

Giorgio Giacinto 2010 Basi di Dati 30

Riassunto dellaprogettazione concettuale! La progettazione concettuale segue l’analisi dei requisiti

! Porta a una descrizione ad alto livello dei dati che devonoessere memorizzati

! Il modello ER è molto usato per la progettazioneconcettuale! I costrutti sono espressivi, vicini al modo in cui la gente

pensa alle applicazioni! Costrutti di base: entità, relazioni e attributi (di entità e

relazioni)! Alcuni costrutti addizionali: entità deboli, gerarchie ISA e

aggregazione! Nota: ci sono molte varianti del modello ER

Giorgio Giacinto 2010 Basi di Dati 31

Riassunto della progettazioneconcettuale (segue)! Nel modello ER si possono esprimere diversi

tipi di vincoli di integrità! vincoli di chiave! vincoli di partecipazione e vincoli di

sovrapposizione/copertura per le gerarchie ISA.! Nella definizione di insieme di relazioni sono

anche impliciti alcuni vincoli di chiave esterna.! Alcuni di questi vincoli possono essere

espressi in SQL solo se usiamo vincoliCHECK o asserzioni generali.

Giorgio Giacinto 2010 Basi di Dati 32

Riassunto della progettazioneconcettuale (segue)

! Alcuni vincoli (in particolare le dipendenzefunzionali) non possono essere espressi nelmodello ER

! I vincoli giocano un ruolo importante neldeterminare il miglior progetto di base di datiper una organizzazione.

Giorgio Giacinto 2010 Basi di Dati 33

Riassunto della progettazioneconcettuale (segue)! Il progetto ER è soggettivo. Ci sono spesso

molti modi per modellare un dato scenario!Analizzare le alternative può esserecomplicato, specialmente per una grandeazienda. Scelte comuni includono! Entità o Attributo! Entità o Relazione! Relazione binaria o N-aria! Uso delle gerarchie ISA! Uso dell’aggregazione

Giorgio Giacinto 2010 Basi di Dati 34

Riassunto della progettazioneconcettuale (segue)

! Garantire un buon progetto della base di dati! lo schema relazionale risultante dovrebbe essere

analizzato e ulteriormente raffinato.! Le informazioni delle DF e le tecniche di

normalizzazione sono particolarmente utili.

METODOLOGIE DI PROGETTO

Giorgio Giacinto 2010 Basi di Dati 36

Metodologie di progetto! Le metodologie per la progettazione concettuale

sono basate su! raffinamento incrementale dello schema! astrazione come meccanismo di raffinamento! controllo della qualità dello schema concettuale! decomposizione in sottoschemi! analisi integrata di dati e funzioni

! Le principali metodologie sono! top-down! bottom-up! mista

Giorgio Giacinto 2010 Basi di Dati 37

ImpiegatiPersona Studente

Top-down! Implementa una serie di trasformazioni dello

schema iniziando con concetti molto astratti perandare verso concetti più concreti e dettagliati

! Il primo schema contiene (in una rappresentazionemolto astratta) tutto il contenuto di informazionedella realtà da rappresentare

! Meccanismo di trasformazione: raffinamento! Es.

Giorgio Giacinto 2010 Basi di Dati 38

nome

cf

pp

nome

Impiegati

cf pp

Problemi: conflitti tra le definizioni dei concetti,ridondanze, necessità di ristrutturazione (ma più naturale)

Bottom-up

! Parte dai requisiti dettagliati, raggruppandoliin concetti più astratti

! Meccanismo di trasformazione: astrazione! Es.

Giorgio Giacinto 2010 Basi di Dati 39

Mista

! Decomposizione “controllata” dei requisiti! Struttura globale dello schema! Generazione bottom-up dei sottoschemi! Integrazione dei sottoschemi guidata dalla

struttura

Giorgio Giacinto 2010 Basi di Dati 40

Qualità dello schemaconcettuale! Correttezza

! lo schema rappresenta correttamente (sintatticamente esemanticamente) i requisiti iniziali

! Completezza! lo schema rappresenta tutti i requisiti

! Minimalità! lo schema rappresenta solo i requisiti e ogni loro aspetto

appare solo una volta! Leggibilità

! lo schema è facile da interpretare ed esprime i requisiti inmodo naturale

Giorgio Giacinto 2010 Basi di Dati 41

Qualità dello schemaconcettuale (segue)

! Modificabilità! lo schema può essere facilmente modificato se i

requisiti cambiano! Auto-documentabilità

! lo schema non ha bisogno di materiale aggiuntivoesterno

Giorgio Giacinto 2010 Basi di Dati 42

Esempio di top-downRequisiti! Vogliamo rappresentare le informazioni sugli

impiegati. In particolare, i dati si riferiscono a! persone, con nome, data di nascita e sesso;! Località dove le persone sono nate e vivono attualmente.

! Ci sono due tipi di località: stati degli USA e paesi stranieri.Nel primo caso, vogliamo rappresentare anchel’ammontare della popolazione dello stato, mentre nelsecondo caso vogliamo rappresentare la capitale del paese

! impiegati con il loro salario! direttori con associato il nome del reparto che dirigono

Giorgio Giacinto 2010 Basi di Dati 43

Dati personali

Dati personali Dati dellelocalità

Dati dellepersone

Dati dellelocalità

Dati dellepersone

Riferiti a

Primi raffinamenti

Giorgio Giacinto 2010 Basi di Dati 44

Dati dellepersone

Persona

Impiegato Direttore

Dati dellelocalità

Località

Stato Paese

Riferiti a Nato Vive

Ulteriore raffinamento

Giorgio Giacinto 2010 Basi di Dati 45

PersonaPersona

nomesesso Data di nascita

ImpiegatoImpiegato

salario

Direttore

Stato Stato

popolazione

Paese Paese

capitale

Reparto

Direttore

Raffinamento finale

Giorgio Giacinto 2010 Basi di Dati 46

Impiegato

Località

stato

nome

Personasesso

Data di nascita

direttore

reparto

paese

capitale

popolazionesalario

Nato

Vive

nome

(1,1)

(1,1)

(1,N)

(1,N)

Schema finale

Giorgio Giacinto 2010 Basi di Dati 47

Bottom-upScelta degli attributi

! Nome dell’impiegato! Data di nascita

dell’impiegato! Sesso dell’impiegato! Salario dell’impiegato! Nome del direttore! Data di nascita del

direttore! Reparto del direttore! Sesso del direttore

! Nome del paese! Capitale del paese! Nome dello stato! Popolazione dello stato

Giorgio Giacinto 2010 Basi di Dati 48

nome

Impiegato

sesso Data di nascita

salario

nome

Direttore

sesso Data di nascita

reparto

nome

Paese

popolazione

nome

Stato

capitale

Scelta delle entità

Giorgio Giacinto 2010 Basi di Dati 49

ISA

nome

Impiegato

sessoData di nascita

salario

nome

Direttore

sesso Data di nascita

reparto

nome

Paese

popolazione

Persona

nome

Stato

capitale

Località

Giorgio Giacinto 2010 Basi di Dati 50

Località

stato Paese

capitale

popolazione

Impiegato

nome

Personasesso

Data di nascita

Direttore

reparto

salario

nome

Ristrutturazione degli attributi

Giorgio Giacinto 2010 Basi di Dati 51

Relazioni

Impiegato

località

stato

nome

Personasesso

Data di nascita

Direttore

reparto

paese

capitale

popolazionesalario

Nato

Vive

nome

(1,1)

(1,1)

(1,N)

(1,N)