Corso Di Basi Di Dati 04 Progettazione Logica

24
A.A. 2005/2006 Basi di Dati e Laboratorio 1 Corso di Basi di Dati e Laboratorio PROGETTAZIONE LOGICA Prof. 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)

Transcript of Corso Di Basi Di Dati 04 Progettazione Logica

Page 1: Corso Di  Basi Di  Dati 04  Progettazione Logica

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)

Page 2: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 3: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 4: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 5: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 6: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 7: Corso Di  Basi Di  Dati 04  Progettazione Logica

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)

Page 8: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 9: Corso Di  Basi Di  Dati 04  Progettazione Logica

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)

Page 10: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 11: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 12: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 13: Corso Di  Basi Di  Dati 04  Progettazione Logica

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à

Page 14: Corso Di  Basi Di  Dati 04  Progettazione Logica

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)

Page 15: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 16: Corso Di  Basi Di  Dati 04  Progettazione Logica

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’

Page 17: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 18: Corso Di  Basi Di  Dati 04  Progettazione Logica

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’

Page 19: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 20: Corso Di  Basi Di  Dati 04  Progettazione Logica

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’)

Page 21: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 22: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 23: Corso Di  Basi Di  Dati 04  Progettazione Logica

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

Page 24: Corso Di  Basi Di  Dati 04  Progettazione Logica

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