IL MODELLO ENTITÀ-RELAZIONE - Università di...
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