corso di basi di dati 04 progettazione logica
Post on 23-Jun-2015
2.069 Views
Preview:
TRANSCRIPT
1
A.A. 2005/2006 Basi di Dati e Laboratorio 1
Corso di Basi di Dati e Laboratorio
PROGETTAZIONE LOGICAProf. Silvana Castano
A.A. 2005/2006 Basi di Dati e Laboratorio 2
PROGETTAZIONE LOGICA
SCHEMA CONCETTUALE (i.e., E-R)
SCHEMA LOGICO(specifico del DBMS, i.e., relazionale)
2
A.A. 2005/2006 Basi di Dati e Laboratorio 3
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 4
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
3
A.A. 2005/2006 Basi di Dati e Laboratorio 5
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 6
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
4
A.A. 2005/2006 Basi di Dati e Laboratorio 7
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 8
DATI DERIVATI
Attributi derivabili da altri attributi della stessa entità
Attributi derivabili da altri attributi di altre entità
Fattura netto
IVAlordo
composizione(1,N) (1,N)
Acquisto Imp. totale Prodotto prezzo
5
A.A. 2005/2006 Basi di Dati e Laboratorio 9
DATI DERIVATI
Attributi derivabili da operazioni di conteggio di occorrenze
Associazioni derivabili dalla composizione di altre associazioni(cicli)
Persona residenza(1,1) (1,N)
Città Nr. abitanti
Corso
Professore
insegnamento(1,1)
(1,1)
frequenzaStudente (1,N)(0,N)
docenza(0,N) (1,N)
A.A. 2005/2006 Basi di Dati e Laboratorio 10
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
6
A.A. 2005/2006 Basi di Dati e Laboratorio 11
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 12
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
7
A.A. 2005/2006 Basi di Dati e Laboratorio 13
ESEMPIO
WordProc.
Ingegnere
Usa
Specializzazione(0,N)
(0,N)
(t,e)
Direttore Nr. Subalterni
Dipartimentoafferisce(1,1) (0,N)
Impiegato CF
Nome
Segretario Skill
A.A. 2005/2006 Basi di Dati e Laboratorio 14
ESEMPIO opzione 1
WordProc.
Usa
Nr.SubalterniSpecializzazione
(0,N)
(0,N)
(0,1)(0,1)
Tipo (S/I/D)
CF
SkillNome Impiegato
(0,1)
Dipartimentoafferisce(1,1) (0,N)
8
A.A. 2005/2006 Basi di Dati e Laboratorio 15
• 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
Opzione 2
A.A. 2005/2006 Basi di Dati e Laboratorio 16
ESEMPIO opzione 2
Dipartimento
WordProc.
DirettoreIngegnere
afferisce
Usa
(0,N)
(1,1)
Nr.Subalterni
Specializzazione
(0,N)
(0,N)
CF
Nome
CF Nome
afferisce afferisce
(0,N)
(1,1)
(0,N)
(1,1)
SegretarioSkillCF
Nome
9
A.A. 2005/2006 Basi di Dati e Laboratorio 17
• 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
Opzione 3
A.A. 2005/2006 Basi di Dati e Laboratorio 18
Impiegato
WordProc.
DirettoreIngegnereSegretario
Usa
CF
Nome
Nr.Subalterni
Specializzazione
Skill
(0,N)
(0,N)
èèè(0,1)
(0,1)(0,1)
(1,1) (1,1) (1,1)
ESEMPIO opzione 3
Dipartimentoafferisce(1,1) (0,N)
10
A.A. 2005/2006 Basi di Dati e Laboratorio 19
• 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
MANTENIMENTO DI TUTTE LE ENTITA’
A.A. 2005/2006 Basi di Dati e Laboratorio 20
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
11
A.A. 2005/2006 Basi di Dati e Laboratorio 21
• La maggioranza delle operazioni usa contemporaneamente attributi dell’entità generica ed attributi di singole specializzazioni e la gerarchia è di tipo ‘(t,e)’
ANALISI DELLE GERARCHIE
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 22
• La maggioranza delle operazioni usa attributi dell’entità generica e di sue specializzazioni, anche non contemporaneamente
• N.B. Gerarchie a più livelli sono trattate ricorsivamente, partendo dal basso
ANALISI DELLE GERARCHIE
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
12
A.A. 2005/2006 Basi di Dati e Laboratorio 23
SCELTA DEGLIIDENTIFICATORI 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 24
ELIMINAZIONE DIATTRIBUTI 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
13
A.A. 2005/2006 Basi di Dati e Laboratorio 25
Recapito
(1,N) (1,1)
ESEMPIO
(1,N)Agenzia
Nome
IndirizzoCittà
Telefono
Agenzia
Nome
Indirizzo
Città
TelefonoNumero
A.A. 2005/2006 Basi di Dati e Laboratorio 26
• Alternativa 1: si considerano tutti gli attributi componenti come attributi dell’entità
ELIMINAZIONE DI ATTRIBUTI COMPOSTI
Via Città
Indirizzo
CAP
PersonaCF
NomeEtà
ViaCittàCAP
PersonaCFNomeEtà
14
A.A. 2005/2006 Basi di Dati e Laboratorio 27
• Alternativa 2: si considera l’attributo composto come un unico attributo (con dominio stringa di caratteri), unione di tutti i componenti.
ELIMINAZIONE DIATTRIBUTI COMPOSTI
Via Città
Indirizzo
CAP
PersonaCF
NomeEtà
PersonaCFNomeEtà
Indirizzo
A.A. 2005/2006 Basi di Dati e Laboratorio 28
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)
15
A.A. 2005/2006 Basi di Dati e Laboratorio 29
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 schemaE(a1,a2, …, at, a(t+1), …, am) = E(K, W)
con chiave primaria K
A.A. 2005/2006 Basi di Dati e Laboratorio 30
Persona(CF, Nome, Indirizzo, Età)
• Si applica a tutte le entità dello schema (le generalizzazioni sono già state ristrutturate)
ESEMPIO
PersonaCF
NomeEtà
Indirizzo
16
A.A. 2005/2006 Basi di Dati e Laboratorio 31
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 32
• 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)
ASSOCIAZIONI ‘N:M’
17
A.A. 2005/2006 Basi di Dati e Laboratorio 33
• 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
ASSOCIAZIONI ‘N:M’
A.A. 2005/2006 Basi di Dati e Laboratorio 34
Studente (Matricola, Nome, Indirizzo)Corso (Codice-Corso, Nome)Frequenza (Matricola, Codice-Corso, Voto)
ESEMPIO
Frequenza(1, N) (1,N)
StudenteMatricola
NomeIndirizzo
Corso
Codice-Corso
Nome
Voto
18
A.A. 2005/2006 Basi di Dati e Laboratorio 35
• 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)
ASSOCIAZIONI ‘1:1’
A.A. 2005/2006 Basi di Dati e Laboratorio 36
• 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)
ASSOCIAZIONI ‘1:1’
19
A.A. 2005/2006 Basi di Dati e Laboratorio 37
ESEMPIO Partecipazione Obbligatoria
Cliente (Codice-Cli, Nome, Indirizzo, Cod-Carta, Tipo)CartaCredito (Cod-Carta, Tipo, Scadenza)
Possiede(1, 1) (1,1)
Cliente
Codice-Cli
Nome Indirizzo Scadenza
CartaCredito
Cod-Carta Tipo
A.A. 2005/2006 Basi di Dati e Laboratorio 38
Cliente (Codice-Cli, Nome, Indirizzo)CartaCredito (Cod-Carta, Tipo, Scadenza, Codice-Cli)
Possiede(0, 1) (1,1)
Cliente
Codice-Cli
Nome Indirizzo Scadenza
CartaCredito
Cod-Carta Tipo
ESEMPIO Partecipazione Opzionale
20
A.A. 2005/2006 Basi di Dati e Laboratorio 39
• 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)
ASSOCIAZIONI ‘1:N’
A.A. 2005/2006 Basi di Dati e Laboratorio 40
• 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
ASSOCIAZIONI ‘1:N’ (‘N:1’)
21
A.A. 2005/2006 Basi di Dati e Laboratorio 41
Città (Nome, Nr.Abitanti, NomeStato)Stato (Nome, Governatore, Popolazione)
ESEMPIO
Locazione(1, 1) (1,N)
CittàNome
Nr.Abitanti
Stato Nome
Governatore
Popolazione
A.A. 2005/2006 Basi di Dati e Laboratorio 42
Emissione(0, 1) (1,N)
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
Ordine
Nr.OrdineDataSconto
ESEMPIO - Partecipazione Opzionale
Venditore
NomeTelefono
22
A.A. 2005/2006 Basi di Dati e Laboratorio 43
• 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’identificatoredell’entità forte:
• E1={K1, K2, W}• E2={K2, X}
ENTITA’ CON IDENTIFICATORE ESTERNO
A.A. 2005/2006 Basi di Dati e Laboratorio 44
Afferenza(0, N)
(1,1)Impiegato
Codice-Imp
Impiegato (Codice-Imp, Codice-Rep, Nome)Reparto (Codice-Rep, Locazione)
Nome
GENERAZIONE SCHEMA RELAZIONALE ESEMPIO Identificatore Esterno
Reparto
Codice-Rep
Locazione
23
A.A. 2005/2006 Basi di Dati e Laboratorio 45
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 46
• 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
GENERAZIONE SCHEMA RELAZIONALEASSOCIAZIONI RICORSIVE
24
A.A. 2005/2006 Basi di Dati e Laboratorio 47
‘1:N’• R è di tipo ‘1:N’, due alternative:
• Come sopraR(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
GENERAZIONE SCHEMA RELAZIONALERELAZIONI RICORSIVE
A.A. 2005/2006 Basi di Dati e Laboratorio 48
N:M Impiegato (Nome, Età)Direzione (NomeDirettore, NomeSubalterno)
1:N Impiegato (Nome, Età, NomeDirettore)
DirezioneSubalterno Direttore
Impiegato
NomeEtà
ESEMPIO
top related