Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
La Progettazione Logica
Traduzione Relazioni E-R
Mercorio
• A partire da uno schema E-R ristrutturato si
costruisce uno schema logico equivalente, in grado
cioè di rappresentare le medesime informazioni
• La metodologia di traduzione varia a seconda delle
entità e delle relazioni interessate
2
• Ogni entità è tradotta in una relazione con
gli stessi attributi
– La chiave è l’identificatore dell’entità stessa
• Ogni associazione è tradotta con una
relazione con gli stessi attributi cui si
aggiungono gli identificatori di tutte le
entità che essa collega
– La chiave è composta dalle chiavi delle entità
collegate
3
Codice
Descrizione
Offerta di
Professione
lavoro Numero posti
OFFERTA DI LAVORO (Codice, Professione, Descrizione, Numero posti)
(0..N)
(0..N)
SEDE DI LAVORO (Denominazione, Indirizzo, Telefono)
Denominazione Telefono
Sede di
Indirizzo lavoro
4
• La traduzione standard è sempre possibile
ed è l’unica possibilità per le associazioni
molti a molti
• Altre forme di traduzione (semplificate)
delle associazioni sono possibili per altri
casi di cardinalità o altre forme di
associazione
• Alcune forme di traduzione fondono in
una stessa relazione entità e associazioni
5
• Le altre forme di traduzione:
– Danno origine ad un minor numero di relazioni e
generano quindi uno schema più semplice
– Richiedono un minor numero di join per la
navigazione attraverso un’associazione, ovvero per
accedere alle istanze di entità connesse tramite
l’associazione
– Penalizzano le operazione che consultano soltanto gli
attributi di una entità che è stata fusa
6
• Sono possibili due casi distinti:
– Associazione uno a molti con partecipazione obbligatoria
(1,1)
• Soluzione a 2 relazioni
– Associazione uno a molti con partecipazione opzionale
(0,1)
• Soluzione a 2 o a 3 relazioni
7
• Se l’entità partecipa con cardinalità (1,1) può essere
fusa con l’associazione, ottenendo una soluzione a
due relazioni
• Questa soluzione è favorevole poiché genera un
numero minore di relazioni rispetto al caso standard
8
Denominazione Telefono
Sede
Indirizzo
operativa
(1,1) SEDE OPERATIVA (Denominazione, Indirizzo, Telefono,
ID Impresa, Data di registrazione)
Data di
appartiene
registrazione
IMPRESA (P. IVA, Denominazione, Settore)
(0..N)
P. IVA Settore
Impresa
Denominazione
9
• Se l’entità partecipa con cardinalità (0,1) può
comunque essere fusa con l’associazione, ottenendo
una soluzione a due relazioni, oppure può seguire il
caso standard, ottenendo una soluzione a tre
relazioni
• La prima soluzione presenta un numero minore di
relazione ma può avere al loro interno valori nulli
(segnalati in figura con *)
• La seconda soluzione elimina il problema dei valori
nulli ma genera una relazione in più
10
Codice
Descrizione
OFFERTA DI LAVORO (Codice, Professione, Descrizione, Numero posti)
Offerta di
Professione
lavoro Numero posti PUBBLICA (Codice, P.IVA, Periodo di validità)
(0..1)
oppure:
(0..N)
P. IVA Settore
OFFERTA DI LAVORO (Codice, Professione, Descrizione, Numero posti,
Impresa ID Impresa*, Data di validità*)
Denominazione
11
Traduzione standard
id_x id_y
a1
x1 Y1
(1,N) (1,N)
x2
x3
X Y
Y2
Associazione
12
Traduzione 1:N
id_x id_y
a1
x1 Y1
(1,1) (1,N)
x2
x3
X Y
Y2
Associazione
X(id_x, x1, x2, x3, id_y, a1) #id_y funge da chiave esterna
Y(id_Y, y1, y2)
13
Traduzione 1:N con partecipazione non obbligatoria
id_x id_y
a1
x1 Y1
(0,1) (1,N)
x2
x3
X Y
Y2
Associazione
14
• Traduzione con una relazione
– Se le cardinalità minime delle relazioni coinvolte E1 E2
sono entrambe 1 la chiave può essere
indifferentemente K1 o K2
– Se la cardinalità di E2 è (0,1) e quella di E1 è (1,1) la
chiave sarà K2; E2 è l’entità con maggior numero di
istanze alcune delle quali non si associano, ci saranno
quindi valori nulli in corrispondenza di K1; K1 in questi
casi non potrebbe essere scelta
15
• Se la cardinalità è (0,1) da entrambe le parti allora le
relazioni saranno tre per l’impossibilità di assegnare
la chiave all’unica relazione a causa della presenza di
valori nulli sia su K1 sia su K2
• La soluzione con una relazione, sebbene ottimale in
termini di relazioni generate, è sconsigliata poiché
va ricordato che lo schema originale è il frutto di
una fase di ristrutturazione in cui sono state
effettuate scelte precise riguardo l’accorpamento e
il partizionamento di entità
16
• La traduzione 1 a 1 è un caso particolare della 1
a N, pertanto è possibile tradurre anche con:
• Traduzione con due relazioni
– L’associazione può essere compattata con l’entità
che partecipa obbligatoriamente (una delle due se
la partecipazione è obbligatoria per entrambe)
– La chiave viene scelta con gli stessi criteri utilizzati
per la traduzione con una relazione
17
Denominazione Telefono
Sede
Indirizzo
Legale
(1,1) SEDE LEGALE (Denominazione, Indirizzo, Telefono,
ID Impresa)
appartiene
Impresa
Denominazione
18
– Le entità con identificatori esterni danno
luogo a relazioni con chiavi che includono gli
identificatori delle entità “identificanti”
– Infatti le entità identificate esternamente
partecipano sempre all’associazione con una
cardinalità minima e massima pari a 1
– Questo tipo di traduzione è valido
indipendentemente dalla cardinalità con cui
l’altra entità partecipa all’associazione
19
Descrizione
Professione Offerta di
Codice lavoro Numero posti
Impresa
Denominazione
20
• Autoassociazione molti a molti
– Viene tradotta con:
• Una relazione per l’entità
• Una relazione per l’associazione
– Quest’ultima contiene due volte la chiave dell’entità
• E’ necessario però modificare i nomi degli attributi per non
avere omonimia
21
richiede
(0..N) (0..N)
Denominazione
Descrizione
22
• Autoassociazione 1 a N
– E’ traducibile con una sola relazione che contiene due volte
l’attributo chiave, una volta come chiave ed una come riferimento
all’istanza connessa, con nome diverso per specificare il ruolo
• Autoassociazione 1 a 1
– Su entrambi i rami è bene specificare il ruolo
– Conviene la soluzione con due relazioni per evitare ridondanze,
vincoli ed eccesso di valori nulli
23
• Segue la traduzione standard
• Talvolta, nella relazione che traduce l’associazione, la
chiave ottenuta componendo le chiavi di tutte le
entità partecipanti è una superchiave, cioè una
chiave composta il cui set di componenti non è
minimale (la chiave vera è un sottoinsieme)
24
Codice
Descrizione
Offerta di
Professione
lavoro Numero posti
(0..N)
Denominazione
pubblica
Periodo di (0..N)
validità
Sede Indirizzo
Telefono
(0..N)
P. IVA Settore
Impresa
Denominazione
26
OFFERTA DI LAVORO
IMPRESA
PUBBLICA
SEDE
27
• Il formalismo
– mantiene traccia delle associazioni E-R dello schema
originale
– Individua in maniera immediata i cammini di join, ovvero
le operazioni di join necessarie per ricostruire
l’informazione rappresentata dalle associazioni originarie
28
• La fase di progettazione logica viene supportata da
tutti gli strumenti CASE di ausilio allo sviluppo di basi
di dati
• La fase di traduzione verso il modello relazionale
viene eseguita in modo pressoché automatica
• Alcuni sistemi forniscono strumenti anche per la
procedura inversa
29
30
• La fase finale del processo di progettazione di una base dati, la
progettazione fisica, riceve in ingresso lo schema logico, le
caratteristiche del sistema scelto e le previsioni sul carico
applicativo e produce in uscita lo schema fisico della base di dati,
costituito dalle effettive definizioni delle relazioni e dalle
strutture fisiche di accesso utilizzate.
31
• Vanno considerate:
– Le scelte relative alle strutture fisiche
– Le dimensioni iniziali dei file
– Le possibilità di espansione
– La contiguità delle allocazioni dei dati
– La quantità e la dimensione delle aree di transito per lo
scambio di informazioni
32
• Un aspetto fondamentale è l’individuazione degli
indici
• Gli indici sono speciali strutture di accesso a relazioni
che vengono definiti sugli attributi delle relazioni
stesse e garantiscono l’accesso diretto, e quindi
efficiente, ai dati quando l’interrogazione si basa su
tali attributi
33
• Le operazioni più delicate all’interno di una base di
dati relazionale sono quelle di selezione e di join
• Ciascuna di esse può essere eseguita in modo più
efficiente se sui campi interessati è definito un indice
34
• L’attività di scelta degli indici è svolta spesso in modo
empirico, con un approccio per tentativi
• L’attività di regolazione (tuning) del progetto fisico
consente spesso, attraverso una corretta scelta degli
indici, di migliorare le prestazioni della base di dati
35