Laboratorio Di Basi Di Dati 02 Il D B M S My S Q L
Corso Di Basi Di Dati 04 Progettazione Logica
1. Corso di Basi di Dati e Laboratorio
PROGETTAZIONE LOGICA
Prof. Silvana Castano
A.A. 2005/2006 Basi di Dati e Laboratorio 1
PROGETTAZIONE LOGICA
SCHEMA CONCETTUALE (i.e., E-R)
SCHEMA LOGICO
(specifico del DBMS, i.e., relazionale)
A.A. 2005/2006 Basi di Dati e Laboratorio 2
2. ATTIVITA’
• Ristrutturazione dello schema concettuale
(generale, indipendente dallo specifico modello
logico)
• Traduzione nello schema logico
(si fa riferimento ad uno specifico modello logico,
per noi sarà il modello relazionale)
• Verifica di ‘normalizzazione’ sullo schema logico
ottenuto
A.A. 2005/2006 Basi di Dati e Laboratorio 3
RISTRUTTURAZIONE DI SCHEMI ER
• Modifiche apportate allo schema ER sulla
base di valutazioni legate ai parametri di
carico della BD
• Classi di modifiche:
• Analisi dei dati derivati (ridondanza)
• Eliminazione delle gerarchie di generalizzazione
• Scelta degli identificatori primari
A.A. 2005/2006 Basi di Dati e Laboratorio 4
3. INPUT
• Schema Concettuale (ER) dei dati
• Dati quantitativi sul carico applicativo della
BD
• Modello logico obiettivo (i.e., relazionale)
A.A. 2005/2006 Basi di Dati e Laboratorio 5
CARICO APPLICATIVO DELLA BD
• Carico: insieme di applicazioni che la BD dovrà
supportare
• Per valutare il carico operativo della BD è
necessario conoscere informazioni circa:
– Volume dei dati (nr. medio di occorrenze di ogni
entità/associazione, nr. medio di partecipazioni delle
entità alle associazioni)
– Operazioni più frequenti
• Tipologia: interattiva o batch
• Frequenza: nr. Medio di esecuzioni in un certo intervallo di
tempo
• Dati coinvolti negli accessi: entità e/o associazioni
A.A. 2005/2006 Basi di Dati e Laboratorio 6
4. ANALISI DEI DATI DERIVATI
• Presenza di attributi il cui valore è derivato (es., valore
aggregato) ovvero può essere calcolato mediante
algoritmi a partire da altri valori memorizzati nella BD
• VANTAGGIO: Efficienza, si evita di ricalcolare il
valore derivato ogni volta
• SVANTAGGI: Overhead di elaborazione ==>
necessità di mantenere la consistenza
tra i dati derivati ed i dati costituenti.
Occupazione di memoria
A.A. 2005/2006 Basi di Dati e Laboratorio 7
DATI DERIVATI
Attributi derivabili da altri attributi della stessa entità
netto
lordo Fattura
IVA
Attributi derivabili da altri attributi di altre entità
(1,N) (1,N)
Imp. totale Acquisto composizione Prodotto prezzo
A.A. 2005/2006 Basi di Dati e Laboratorio 8
5. DATI DERIVATI
(1,1) (1,N)
Persona residenza Città Nr. abitanti
Attributi derivabili da operazioni di conteggio di occorrenze
docenza Professore
(0,N) (1,N)
(1,1)
(0,N) (1,N) (1,1)
Studente frequenza Corso insegnamento
Associazioni derivabili dalla composizione di altre associazioni
(cicli)
A.A. 2005/2006 Basi di Dati e Laboratorio 9
ANALISI DEI DATI DERIVATI
• La convenienza del mantenimento degli dati
derivati va valutata confrontando:
– Nr. di operazioni necessarie per calcolare il dato
derivato
VS.
– Nr. di operazioni di aggiornamento extra necessarie
per mantenere la consistenza della BD in presenza
del dato derivato
– Memoria addizionale utilizzata
A.A. 2005/2006 Basi di Dati e Laboratorio 10
6. ELIMINAZIONE GERARCHIE DI
GENERALIZZAZIONE
• I modelli logici come il relazionale non rappresentano
esplicitamente le gerarchie di generalizzazione
• Occorre rappresentarle attraverso tipi di entità e
associazioni
• 3 opzioni:
– 1: Mantenimento della sola entità superclasse
– 2: Mantenimento delle sole entità sottoclassi
– 3: Mantenimento di tutti i tipi di entità
A.A. 2005/2006 Basi di Dati e Laboratorio 11
Opzione 1
• Si mantiene solo la superclasse e si eliminano le
sottoclassi
• Ristrutturazioni sullo schema
– Aggiunta di un nuovo attributo TIPO sull’entità generica per
mantenere la distinzione tra le varie occorrenze dell’entità
generica
– Revisione delle cardinalità di associazioni/attributi definiti sulle
entità sottoclasse (la cardinalità minima diventa zero)
• Applicabilità: tutti i tipi di gerarchie
A.A. 2005/2006 Basi di Dati e Laboratorio 12
7. ESEMPIO
CF (1,1) (0,N)
Impiegato afferisce Dipartimento
Nome
(t,e)
Segretario Ingegnere Direttore Nr. Subalterni
Skill
(0,N)
Specializzazione
Usa
(0,N)
WordProc.
A.A. 2005/2006 Basi di Dati e Laboratorio 13
ESEMPIO opzione 1
Tipo (S/I/D)
CF (1,1) (0,N)
Impiegato afferisce Dipartimento
Nome
Skill (0,1)
(0,1)
(0,1) Nr.Subalterni
Specializzazione
(0,N)
Usa
(0,N)
WordProc.
A.A. 2005/2006 Basi di Dati e Laboratorio 14
8. Opzione 2
• Si mantengono solo le sottoclassi e si elimina la
superclasse
• Ristrutturazioni sullo schema
– Ereditarietà esplicita di tutti gli attributi e associazioni della
superclasse sulle sottoclassi
– Non si alterano le cardinalità delle associazioni definite sulle
sottoclassi
• Applicabilità: gerarchie di tipo TE
A.A. 2005/2006 Basi di Dati e Laboratorio 15
ESEMPIO opzione 2
(0,N) (0,N)
Dipartimento
(0,N)
afferisce afferisce afferisce
(1,1) (1,1) (1,1)
CF CF
Skill Segretario Ingegnere Direttore Nr.Subalterni
Nome Nome
(0,N)
CF Nome
Usa
Specializzazione
(0,N)
WordProc.
A.A. 2005/2006 Basi di Dati e Laboratorio 16
9. Opzione 3
• Si mantengono sia la superclasse sia le sottoclassi
• Ristrutturazioni sullo schema
– Si definiscono associazioni ‘1:1’ esplicite tra la superclasse ed
ogni sottoclasse per la rappresentazione dei legami ‘is-a’ della
gerarchia.
– Le sottoclassi sono identificate esternamente dalla superclasse
– Non si alterano le cardinalità delle associazioni preesistenti
• Applicabilità: tutti i tipi di gerarchie
A.A. 2005/2006 Basi di Dati e Laboratorio 17
ESEMPIO opzione 3
CF (1,1) (0,N)
Impiegato afferisce Dipartimento
Nome
(0,1)
(0,1) (0,1)
è è è
(1,1) (1,1) (1,1)
Skill
Segretario Ingegnere Direttore
Nr.Subalterni
(0,N)
Specializzazione
Usa
(0,N)
WordProc.
A.A. 2005/2006 Basi di Dati e Laboratorio 18
10. MANTENIMENTO DI TUTTE LE ENTITA’
• Dopo gli aggiornamenti, occorre verificare che
per ogni istanza delle specializzazioni esista una
istanza dell’entità generica
• Per le generalizzazioni totali, occorre verificare
che ad ogni istanza della generalizzazione
corrisponda un’istanza di qualche
specializzazione
A.A. 2005/2006 Basi di Dati e Laboratorio 19
ANALISI DELLE GERARCHIE
• Le scelte tra le alternative sono guidate dalla
tipologia di operazioni che sono eseguite sulle
entità della gerarchia.
• La maggioranza delle operazioni usa attributi di
gerarchia, senza distinzione tra le istanze delle
specializzazioni
Alternativa 1 assicura un numero
minore di accessi rispetto alle altre due
alternative
A.A. 2005/2006 Basi di Dati e Laboratorio 20
11. ANALISI DELLE GERARCHIE
• La maggioranza delle operazioni usa
contemporaneamente attributi dell’entità
generica ed attributi di singole specializzazioni e
la gerarchia è di tipo ‘(t,e)’
Alternativa 2 assicura un risparmio di
memoria rispetto ad ‘1’, per assenza di
valori nulli e riduzione di accessi rispetto
a ‘3’ perché non si visita l’entità generica
per accedere ad alcuni attributi
A.A. 2005/2006 Basi di Dati e Laboratorio 21
ANALISI DELLE GERARCHIE
• La maggioranza delle operazioni usa attributi
dell’entità generica e di sue specializzazioni,
anche non contemporaneamente
Alternativa 3 assicura un risparmio di
memoria rispetto ad ‘1’, per assenza di
valori nulli e riduzione dei tempi di
accesso rispetto a ‘2’ per un numero
minore di attributi
• N.B. Gerarchie a più livelli sono trattate ricorsivamente,
partendo dal basso
A.A. 2005/2006 Basi di Dati e Laboratorio 22
12. SCELTA DEGLI
IDENTIFICATORI PRIMARI
• Identificazione della chiave primaria per il relazionale
CRITERI DI SCELTA IN ER
• Identificatori con possibili valori nulli non possono essere
scelti come primari
• Un identificatore semplice è da preferire ad identificatori
composti (e.g., uso di identificatori surrogati)
• Identificatore usato da molte operazioni è da preferire
A.A. 2005/2006 Basi di Dati e Laboratorio 23
ELIMINAZIONE DI
ATTRIBUTI MULTIVALORE
• Un attributo multivalore ‘a’ di un’entità E è rappresentato
mediante una nuova entità E’ e una associazione R tra E’
con E (caso particolare di partizionamento)
Card(E, R) = Card(a)
• Alcuni DBMS consentono la rappresentazione di attributi
multivalore
A.A. 2005/2006 Basi di Dati e Laboratorio 24
13. ESEMPIO
Nome
Indirizzo Agenzia Telefono
Città (1,N)
Nome
Numero
Indirizzo Agenzia (1,N) (1,1) Telefono
Città
Recapito
A.A. 2005/2006 Basi di Dati e Laboratorio 25
ELIMINAZIONE DI
ATTRIBUTI COMPOSTI
• Alternativa 1: si considerano tutti gli attributi
componenti come attributi dell’entità
CF CF
Nome Persona Persona Nome
Età Età
Indirizzo
CAP Città Via
Via Città CAP
A.A. 2005/2006 Basi di Dati e Laboratorio 26
14. ELIMINAZIONE DI
ATTRIBUTI COMPOSTI
• Alternativa 2: si considera l’attributo composto
come un unico attributo (con dominio stringa di
caratteri), unione di tutti i componenti.
CF CF
Nome Persona Persona Nome
Età Età
Indirizzo
Indirizzo
Via Città CAP
A.A. 2005/2006 Basi di Dati e Laboratorio 27
PROGETTAZIONE LOGICA DI
BD RELAZIONALI
• Generazione dello schema relazionale a
partire dallo schema dati ER (Regole di
Trasformazione)
• Verifica di Normalizzazione sullo schema
relazionale generato (verifiche di
normalizzazione possono essere svolte anche
sullo schema concettuale integrato)
A.A. 2005/2006 Basi di Dati e Laboratorio 28
15. TRADUZIONE DA ER A RELAZIONALE
• Traduzione di tipi di entità
Un tipo di entità E={K, W}, con
- K={a1, a2, …, at} identificatore di E
- W={a(t+1), …, am} attributi descrittivi di E
è tradotto in una relazione con schema
E(a1,a2, …, at, a(t+1), …, am) = E(K, W)
con chiave primaria K
A.A. 2005/2006 Basi di Dati e Laboratorio 29
ESEMPIO
CF
Nome Persona
Età
Indirizzo
Persona(CF, Nome, Indirizzo, Età)
• Si applica a tutte le entità dello schema (le
generalizzazioni sono già state ristrutturate)
A.A. 2005/2006 Basi di Dati e Laboratorio 30
16. GENERAZIONE DELLO SCHEMA
RELAZIONALE - ASSOCIAZIONI
• Per la trasformazione di associazioni
occorre considerare:
– Tipo di associazione (binaria, N-aria)
– Vincoli di integrità:
• cardinalità massime (‘1:1’, ‘1:N’, ‘N:M’)
• cardinalità minime
(partecipazione opzionale/obbligatoria)
A.A. 2005/2006 Basi di Dati e Laboratorio 31
ASSOCIAZIONI ‘N:M’
• R tra E1={K1, W} e E2={K2, X} e
Max-Card(E1, R)= n e
Max-Card(E2, R)= n, con
– K1 identificatore di E1
– W insieme di attributi descrittivi di E1
– K2 identificatore di E2
– X insieme di attributi descrittivi di E2
– C={c1, …, cq} attributi descrittivi di R (se definiti)
A.A. 2005/2006 Basi di Dati e Laboratorio 32
17. ASSOCIAZIONI ‘N:M’
• E’ trasformata in una relazione con schema:
R(K1, K2, C)
con chiave primaria K1 ∪ K2
• Valutare se C può diventare parte della chiave
primaria, (es.: Serie storiche)
• Se C = ∅, lo schema di relazione R possiede
solo gli attributi chiave delle entità partecipanti
A.A. 2005/2006 Basi di Dati e Laboratorio 33
ESEMPIO
Matricola (1, N) (1,N) Nome
Nome Studente Frequenza Corso
Indirizzo
Voto
Codice-Corso
Studente (Matricola, Nome, Indirizzo)
Corso (Codice-Corso, Nome)
Frequenza (Matricola, Codice-Corso, Voto)
A.A. 2005/2006 Basi di Dati e Laboratorio 34
18. ASSOCIAZIONI ‘1:1’
• R tra E1={K1, W} e E2={K2, X} e
Max-Card(E1, R)= 1 e
Max-Card(E2, R)= 1, con
– K1 identificatore di E1
– W insieme di attributi descrittivi di E1
– K2 identificatore di E2
– X insieme di attributi descrittivi di E2
– C attributi descrittivi di R (se definiti)
A.A. 2005/2006 Basi di Dati e Laboratorio 35
ASSOCIAZIONI ‘1:1’
• R è rappresentata mediante chiave esterna in
uno dei due schemi di relazione definiti per E1 ed
E2:
– E1(K1, W, K2, C)
E2(K2, X)
oppure
– E1(K1, W)
– E2(K2, X, K1, C)
A.A. 2005/2006 Basi di Dati e Laboratorio 36
19. ESEMPIO Partecipazione Obbligatoria
Codice-Cli Cod-Carta Tipo
(1, 1) (1,1)
Carta
Cliente Possiede
Credito
Nome Indirizzo Scadenza
Cliente (Codice-Cli, Nome, Indirizzo, Cod-Carta, Tipo)
CartaCredito (Cod-Carta, Tipo, Scadenza)
A.A. 2005/2006 Basi di Dati e Laboratorio 37
ESEMPIO Partecipazione Opzionale
Codice-Cli Cod-Carta Tipo
(0, 1) (1,1)
Carta
Cliente Possiede
Credito
Nome Indirizzo Scadenza
Cliente (Codice-Cli, Nome, Indirizzo)
CartaCredito (Cod-Carta, Tipo, Scadenza, Codice-Cli)
A.A. 2005/2006 Basi di Dati e Laboratorio 38
20. ASSOCIAZIONI ‘1:N’
• R tra E1={K1, W} e E2={K2, X} e
Max-Card(E1,R)=1 e Max-Card(E2,R)= N (o viceversa)
con
– K1 identificatore di E1
– W insieme di attributi descrittivi di E1
– K2 identificatore di E2
– X insieme di attributi descrittivi di E2
– C attributi descrittivi di R (se definiti)
A.A. 2005/2006 Basi di Dati e Laboratorio 39
ASSOCIAZIONI ‘1:N’ (‘N:1’)
• R è rappresentata aggiungendo la chiave
esterna K2 nello schema di relazione definito per
E1, dove si aggiunge anche l’insieme C
• E1(K1, W, K2, C)
• E2 (K2, X)
• Se C = ∅, si aggiunge solamente K2
A.A. 2005/2006 Basi di Dati e Laboratorio 40
21. ESEMPIO
Governatore
(1, 1) (1,N)
Nome Città Locazione Stato Nome
Nr.Abitanti
Popolazione
Città (Nome, Nr.Abitanti, NomeStato)
Stato (Nome, Governatore, Popolazione)
A.A. 2005/2006 Basi di Dati e Laboratorio 41
ESEMPIO - Partecipazione Opzionale
Data Nr.Ordine
Sconto
(0, 1) (1,N)
Ordine Emissione Venditore
Telefono Nome
Ordine (Nr.Ordine, Data)
Venditore (Nome, Telefono)
Emissione (Nr.Ordine, Nome, Sconto)
Soluzione consigliata in presenza di un numero elevato di ordini
emessi senza venditore
A.A. 2005/2006 Basi di Dati e Laboratorio 42
22. ENTITA’ CON IDENTIFICATORE ESTERNO
• E1={K1, W} entità debole E2={K2, X} entità forte, con R
tra E1 e E2, Max-Card(E1, R)= 1, con
• K1 ∪ K2 identificatore esterno di E1
• W insieme di attributi descrittivi di E1
• K2 identificatore di E2
• X insieme di attributi descrittivi di E2
• La chiave dell’entità debole contiene l’identificatore
dell’entità forte:
• E1={K1, K2, W}
• E2={K2, X}
A.A. 2005/2006 Basi di Dati e Laboratorio 43
GENERAZIONE SCHEMA RELAZIONALE
ESEMPIO Identificatore Esterno
Codice-Rep Codice-Imp
(0, N)
Reparto Afferenza Impiegato
Locazione Nome
(1,1)
Impiegato (Codice-Imp, Codice-Rep, Nome)
Reparto (Codice-Rep, Locazione)
A.A. 2005/2006 Basi di Dati e Laboratorio 44
23. ASSOCIAZIONI N-arie
• R associazione N-aria tra E1, E2, …, Ep con E1={K1,
W}, E2={K2, X}, …, Ep={Kp, Z}, con C (eventuale)
insieme di attributi descrittivi di R
• Si procede in maniera analoga alle associazioni binarie
‘N:M’
• R è trasformata in una relazione con schema:
E(K, C)
• con chiave primaria K = K1 ∪ K2 ∪ … ∪ Kp o un suo
sottoinsieme (necessaria verifica di minimalità)
• Se C = ∅, lo schema di relazione R possiede solo gli
attributi chiave delle entità partecipanti
A.A. 2005/2006 Basi di Dati e Laboratorio 45
GENERAZIONE SCHEMA RELAZIONALE
ASSOCIAZIONI RICORSIVE
• R ricorsiva su E={K, W}
‘N:M’
• R è di tipo ‘N:M’, è trasformata in una relazione
con schema:
R(K’, K’’)
dove K’ e K” coincidono con K, ma sono
opportunamente ridenominati per evidenziare il
ruolo di E nei due rami di R
A.A. 2005/2006 Basi di Dati e Laboratorio 46
24. GENERAZIONE SCHEMA RELAZIONALE
RELAZIONI RICORSIVE
‘1:N’
• R è di tipo ‘1:N’, due alternative:
• Come sopra
R(K’, K’’)
con chiave primaria K’, ridenominata da K per il
ramo con Max-Card = 1 in R
• Si segue la regola delle ‘1:N’
R(K, W, K’’)
con K’’ chiave ridenominata secondo il ramo con
Max-Card = N in R
A.A. 2005/2006 Basi di Dati e Laboratorio 47
ESEMPIO
Età Nome
Impiegato
Subalterno Direttore
Direzione
N:M Impiegato (Nome, Età)
Direzione (NomeDirettore, NomeSubalterno)
1:N Impiegato (Nome, Età, NomeDirettore)
A.A. 2005/2006 Basi di Dati e Laboratorio 48