Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R...

90
Progettazione Logica 1 Progettazione logica I. Analisi delle prestazioni su schemi E-R II. Ristrutturazione di schemi E-R III.Traduzione verso il modello

Transcript of Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R...

Page 1: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 1

Progettazione logica

I. Analisi delle prestazioni su schemi E-R

II. Ristrutturazione di schemi E-R

III. Traduzione verso il modello relazionale

Page 2: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

requisiti delSistema informativo

progettazione concettuale

progettazione logica

progettazione fisica

SCHEMA LOGICO

SCHEMA CONCETTUALE

SCHEMA FISICO

Page 3: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 3

Obiettivo dellaprogettazione logica

“Tradurre" lo schema concettuale (schema E-R) in uno schema logico (modello relazionale) che rappresenti gli stessi dati in maniera corretta ed efficiente

Page 4: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 4

Dati di ingresso e uscita

Ingresso: schema concettuale informazioni sul carico applicativo modello logico

Uscita: schema logico documentazione associata

Page 5: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 5

Lo schema E-R va ristrutturato: Semplificazione della traduzione: alcuni

aspetti dello schema concettuale non sono direttamente rappresentabili nel modello logico

Ottimizzazione del progetto: è necessario considerare le prestazioni

Non si tratta di una pura e semplice traduzione

Page 6: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Schema E-Rristrutturato

Modellologico

Traduzione nelmodello logico

Schema logico

Fase 2

Ristrutturazione dello schema E-R

Schema E-RCarico

applicativo

Fase 1

Page 7: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 7

Fase 1: Ristrutturazione schema E-R

E' indipendente dal modello logico scelto e si basa sui due principi di: semplificazione ottimizzazione

Osservazione:

uno schema E-R ristrutturato non è (più) uno schema concettuale nel senso stretto del termine

Page 8: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 8

Le prestazioni non sono valutabili con precisione su uno schema concettuale, dato che dipendono anche da parametri fisici:

- dal sistema per la gestione di basi di dati utilizzato

- dalle strutture dati utilizzate per memorizzare le tabelle

- dai vari modi in cui si possono realizzare le operazioni in SQL

Per ottimizzare il risultato abbiamo bisogno di analizzare le prestazioni a questo livello

Analisi delle prestazioni su schemi E-R

Page 9: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 9

Consideriamo degli "indici di prestazione" dei parametri che regolano le prestazioni di uno schema E-R: occupazione di memoria (spazio): spazio di memoria

necessario per memorizzare i dati descritti dallo schema dipende dal numero di occorrenze di entità e relazioni previste

costo di una operazione (tempo): numero di occorrenze (di entità e relationship) visitate per rispondere a un’operazione sulla base di dati

Page 10: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 10

Informazioni necessarie per l’analisi delle prestazioni

Per studiare questi parametri abbiamo bisogno di conoscere, oltre allo schema, le seguenti informazioni volume dei dati:

numero di occorrenze di ogni entità dello schemanumero di occorrenze di ogni relationship dello schemadimensioni di ciascun attributo (di entità o relationship)

caratteristiche delle operazioni: tipo di operazione (interattiva o batch) frequenza dell’esecuzione dati coinvolti (entità e/o relationship)

Page 11: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

(1,1)(0,1)

(1,N)(0,1)

(0,1)

(1,1)

(1,N)

(0,N)

(1,N)

(1,N)

Codice

Schema di riferimento

Page 12: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

12

Tavola dei volumi

Concetto Tipo Volume Sede E 10

Dipartimento E 80 Impiegato E 2000 Progetto E 500

Composizione R 80 Afferenza R 1900 Direzione R 80

Partecipazione R 6000

vi sono riportati i concetti dello schema col volume previsto a regime

Page 13: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 13

Occorrenze di una relationship

Il numero delle occorrenze di una relationship dipende da: Numero di occorrenze delle entità coinvolte nella relationship Numero medio di partecipazioni di una occorrenza di entità

all’occorrenza della relationship Esempio:

Volume Composizione = Volume Dipartimento Volume Afferenza Volume Impiegato Volume Direzione = Volume Dipartimento Volume Partecipazione = 3 Volume Impiegato

Page 14: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 14

Esempio di valutazione di costo delle operazioni

Operazione:1. assegna un impiegato a un progetto2. trova tutti i dati di un impiegato, del dipartimento nel

quale lavora e dei progetti ai quali partecipa3. trova i dati di tutti gli impiegati di un certo

dipartimento4. per ogni sede trova i suoi dipartimenti con il cognome

del direttore e l’elenco degli impiegati del dipartimento

Page 15: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 15

Descrizione delle operazioni

L’analisi delle operazioni principali richiede la codifica di: tipo dell’operazione : Interattiva (I) o Batch (B) frequenza: numero medio di esecuzioni in un certo

periodo di tempo schema di navigazione: frammento dello schema E/R

interessato dall’operazione sul quale viene disegnato (con delle frecce) il “cammino logico” da percorrere per accedere alle informazioni di interesse

Page 16: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 16

Tavola delle operazioni

Operazione Tipo Frequenza Op.1 I 50 al giorno Op.2 I 100 al giorno Op.3 I 10 al giorno Op.4 B 2 a sett.

Page 17: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 17

Regola 80-20: l’80% del carico è generato dal 20% delle operazioniDunque il carico si può valutare accuratamente basandoci sulle principali operazioni previste

Per ogni operazione significativa si costruisce uno schema di navigazione (frammento di di schema E-R interessato all’operazione)

Regola 80-20

Page 18: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Telefono

Nome

Data

(1,N)(0,1)

(0,1)

(1,1)

(1,N)

Dipartimento

Afferenza

NomeBudget

(1,N)

Progetto

Partecipazione

Cognome

(0,N)Codice

Impiegato

schema di navigazione

Operazione 2: trova tutti i dati di un impiegato, del dipartimento nel quale lavora e dei progetti ai quali partecipa

Page 19: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 19

Tavola degli accessi

Per ogni operazione significativa si costruisce una tavola degli accessi basata sullo schema di navigazione il campo costrutto specifica il tipo di concetto (entità o

associazione) nel campo accessi si conta il numero degli accessi

necessario per eseguire una volta l’operazione il campo tipo è riferito al tipo di operazione: le operazioni di

scrittura (S) sono più onerose di quelle di lettura (L)il peso degli accessi in scrittura è in genere considerato doppio di quello delle letture

Page 20: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 20

Tavola degli accessi

Concetto Costrutto Accessi Tipo Impiegato Entità 1 L Afferenza Relazione 1 L

Dipartimento Entità 1 L Partecipazione Relazione 3 L

Progetto Entità 3 L

Un accesso può essere di tipo L (lettura) o S (scrittura)

Il numero delle istanze si ricava dalla tavola dei volumi mediante semplici operazioni

es: in media ogni impiegato partecipa a 6000/2000 = 3 progetti

Page 21: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 21

Attività della ristrutturazione

Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e

relationship Scelta degli identificatori primari

Page 22: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 22

1. Analisi delle ridondanze

Una ridondanza in uno schema E-R è una informazione significativa ma derivabile da altri dati

in questa fase si decide se eliminare le ridondanze eventualmente presenti o mantenerle

Page 23: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 23

Ridondanze

Vantaggi semplificazione delle interrogazioni riduzione del numero degli accessi necessari per

calcolare il dato derivato

Svantaggi appesantimento degli aggiornamenti maggiore occupazione di spazio

Page 24: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 24

Forme di ridondanza in uno schema E-R

attributi derivabili: da altri attributi della stessa entità (o

relazione) da attributi di altre entità (o relazioni)

relazioni derivabili dalla composizione di altre relazioni in presenza di cicli

Page 25: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 25

Attributo derivabile

Fattura

Importo netto

IVA

Importo lordo

Page 26: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 26

Attributo derivabile da altra entità

Importo totale

ComposizioneAcquisto Prodotto

Prezzo

(1,N) (1,N)

Importo totale è ottenibile con operazioni di aggregazione

Page 27: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Corso

Studente

Frequenza

(0,N)

(1,N)

Professore

Insegnamento

(1,1)

(1,1)

Docenza

(0,N)

(1,N)

Ridondanza dovuta a ciclo

Page 28: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 28

Mantenere o meno la ridondanza?

La decisione di mantenere o eliminare una ridondanza va presa confrontando il costo di una esecuzione delle operazioni che coinvolgono il dato ridondante e l’occupazione di memoria, nei casi di presenza e assenza della ridondanza

Page 29: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 29

Analisi di una ridondanza

ResidenzaPersona Città

Numero abitanti

(1,1) (1,N)

L’attributo numero abitanti è derivabile da una operazione di conteggio delle istanze di persona residenti in una città

Page 30: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 30

Operazione 1: memorizza una nuova persona con la relativa città di residenza (500 volte al giorno)

Operazione 2: stampa tutti i dati di una città (incluso il numero di abitanti) (2 volte al giorno)

Concetto Tipo Volume Città E 200

Persona E 1000000 Residenza R 1000000

tavola dei volumi

Page 31: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 31

Presenza di ridondanza

Concetto Costrutto Accessi Tipo Persona Entità 1 S

Residenza Relazione 1 S Città Entità 1 L Città Entità 1 S

Concetto Costrutto Accessi TipoCittà Entità 1 L

Operazione 1

Operazione 2

Page 32: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 32

Assenza di ridondanza

Concetto Costrutto Accessi TipoPersona Entità 1 S

Residenza Relazione 1 S

Concetto Costrutto Accessi Tipo Città Entità 1 L

Residenza Relazione 5000 L

Operazione 1

Operazione 2

n.persone/n.città = media accessi per calcolare il numero di abitanti di una città

Page 33: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 33

Presenza di ridondanza

Costi: Operazione 1: 1500 accessi in scrittura e 500

accessi in lettura al giorno Operazione 2: trascurabile.

Contiamo doppi gli accessi in scrittura Totale di 3500 accessi al giorno

Page 34: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 34

Assenza di ridondanza

Costi: Operazione 1: 1000 accessi in scrittura Operazione 2: 10000 accessi in lettura al

giorno

Contiamo doppi gli accessi in scrittura Totale di 12000 accessi al giorno

Conviene dunque mantenere il dato ridondante

Page 35: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 35

Ristrutturazione dello schema E-R

Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e

relazioni Scelta degli identificatori primari

Page 36: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 36

2. Eliminazione delle gerarchie

il modello relazionale non può rappresentare direttamente le generalizzazioni

entità e relazioni sono invece direttamente rappresentabili

si eliminano perciò le gerarchie, sostituendole con entità e relazioni

Page 37: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 37

Tre possibilità

1. accorpamento delle figlie della generalizzazione nel genitore

2. accorpamento del genitore della generalizzazione nelle figlie

3. sostituzione della generalizzazione con relazioni

Page 38: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

E0 R1

A01 A02

E3

R2

E4

E2E1

A11 A21

Schema generale

Page 39: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 39

Accorpamento delle figlie della generalizzazione nel genitore

E1 e E2 sono eliminate e le loro proprietà vengono aggiunte al padre E0

A E0 viene aggiunto anche un nuovo attributo, TIPO, che serve a distinguere le occorrenze di E1 da quelle di E2

Gli attributi A11 e A21 possono assumere anche valori nulli su E0

Page 40: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

A11

A21

TIPO

(0,1)

(0,1)

(0,..)

E0

A01 A02

R1 E3

R2

E4

Collasso verso l’alto

Page 41: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Studente

Laureando Diplomando

Matr.Nome

Tit.StageTit.Tesi

MatrRelatore

Denom.Azienda

(1,1) (1,1)

(p,e)

(1,n)(1,n)

Dom(Tipo)= {L,D,N}

Denom.

StudenteMatr.Nome

Tit.Stage (0,1)

Tit.Tesi (0,1)

MatrRelatore Azienda

(0,1) (0,1)

Tipo

(1,n) (1,n)

Esempio

Page 42: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 42

Osservazioni

Conveniente quando le operazioni sulla base di dati non fanno molta distinzione tra le occorrenze e tra gli attributi di E0, E1, E2

Vantaggi: numero minore di accessi Svantaggi: spreco di memoria per la presenza

di valori nulli

Page 43: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

E0 R1

A01 A02

E3

R2

E4

E2E1

A11 A21

totale

Page 44: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

44

Accorpamento del genitore della generalizzazione nelle figlie

E0 viene eliminato, i suoi attributi e identificatore vengono assegnati alle figlie

R11 e R12 sono le restrizioni di R1 alle occorrenze di E1 e E2

Nota Bene tale trasformazione è possibile solo se la generalizzazione è

totale, altrimenti le occorrenze di E0 - (E1 U E2) non sarebbero rappresentate

Conviene quando ci sono operazioni che si riferiscono solo a occorrenze di E1, o di E2 e fanno distinzioni tra tali entità

Page 45: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

E3

R2

E4

E2E1

A11 A21

R12

R11

A01 A02 A01 A02

Collasso verso il basso

Page 46: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Esempio

Dipendente

Impiegato Operaio

CFNome

macchinecapacità

(t,e)

Dirigenten_sottoposti

SindacatoContribuisce0,1 1,n

0,1

1,n

1,n1,n

Dirige

Impiegato Operaio

macchinecapacitàDirigente

n_sottoposti

SindacatoContr_I

0,1

0,n

0,1

1,n

1,n

CF Nome

0,n

Contr_D

0,1

Contr_O

0,10,1

0,n

0,n Dir_DDir_ODir_I

CF NomeCF Nome

0,n 0,n

Page 47: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 47

Quando conviene utilizzare questa alternativa? Quando ci sono operazioni che si riferiscono solo a

occorrenze di E1 oppure di E2, e fanno distinzioni tra le 2 entità

Gli attributi non assumono mai valori nulli

Page 48: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 48

Sostituzione della generalizzazione

con relationship La generalizzazione si trasforma in due associazioni uno a

uno che legano l’entità padre E0 con E1 e E2 Si pongono dei vincoli per impedire che una occorrenza di E0

partecipi sia a E1 che a E2Nota bene

-conviene se gli accessi alle entità figlie sono separati dagli accessi al padre-è sempre possibile indipendentemente dalla copertura e conserva tutte le entità-le entità vengono mantenute e sono identificate esternamente

Page 49: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

RG2RG1

(1,1)

(0,1)

(1,1)

(0,1)

E0

A01 A02

E2E1 R2

E4A11 A21

R1 E3

Page 50: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progetto

Prog_sw Prog_hw

CodDesc

N_schede

Mesiuomo

Comp_hw

usa

1,n

0,n

Esempio

Progetto

Prog_sw Prog_hw

CodDesc

N_schedeMesiuomo

Comp_hw

usa

1,n

0,n

0,1 0,1

1,11,1

Page 51: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 51

Quando conviene usare questa alternativa? quando la generalizzazione non è totale, quando ci sono operazioni che si riferiscono solo

a occorrenze di E1, E2 oppure E0, Risparmio di memoria rispetto alla scelta (1):

non si introducono valori nulli Aumento degli accessi per mantenere la

consistenza delle occorrenze

Page 52: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 52

Attività della ristrutturazione

Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e

relazioni Scelta degli identificatori primari

Page 53: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 53

entità e associazioni in uno schema E-R possono essere partizionati o accorpati per rendere più efficienti le operazioni, in base a un semplice principio:

gli accessi si riducono: separando attributi di un concetto che vengono

acceduti separatamente; raggruppando attributi di concetti diversi acceduti

insieme;

Page 54: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 54

Ristrutturazioni, casi principali

partizionamento orizzontale/verticale di entità

eliminazione di attributi multivalore

accorpamento di entità/ relationship

Page 55: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 55

Impiegato

Livello

Stipendio

Ritenute

Cognome

Indirizzo

Datanascita

Codice

Partizionamento verticale

di entità

Page 56: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 56

LivelloStipendio

Ritenute

Cognome

Indirizzo Datanascita

Codice

Dati ImpiegatoDati

anagraficiDati

lavorativi

(1,1) (1,1)

Si separano gli attributi in gruppi omogenei

Page 57: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 57

Agenzia

Indirizzo

Città

Telefono

Nome

(1,N)

Eliminazione di attributi multivalore

Page 58: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 58

Numero

Indirizzo

Nome

UtenzaAgenzia Telefono

(1,N) (1,1)

Città

Si introduce una entità le cui istanze sono identificatedai valori dell’attributo

L’associazione può essere uno a molti o molti a molti

Page 59: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 59

Agenzia

Indirizzo

Città

Telefono

Nome

(1,3)

Se la cardinalità massima K è nota: è possibile prevedere K repliche degli attributi

Tel2Tel1 Tel3

Nome

Agenzia

Indirizzo Città

Eliminazione di attributi multivalore

Page 60: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 60

IndirizzoInternoCognome

Indirizzo Datanascita

Codicefiscale

IntestazionePersona Appartamento

(0,1) (1,1)

Accorpamento di Entità

Page 61: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 61

Persona

Interno

Indirizzo

Cognome

Indirizzo

Datanascita

Codicefiscale

(0,1)

(0,1)

Page 62: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

(0,1)

Cognome

ComposizioneGiocatore Squadra

(1,N) (1,N)

RuoloNomeCittà

Data acquisto Data cessione

Cognome

Comp.passata

Giocatore Squadra

(0,N) (1,N)

Ruolo Nome

CittàData acquisto Data cessione

Comp.attuale

Data acquisto(1,1) (1,N)

Partizionamento orizzontale di associazioni

Page 63: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 63

Attività della ristrutturazione

Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e

relationship Scelta degli identificatori primari

Page 64: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 64

Scelta degli identificatori principali

operazione indispensabile per la traduzione nel modello relazionale perché nel modello relazionale le chiavi vengono usate per

stabilire legami tra dati in relazioni diverse; i DBMS richiedono di specificare una chiave primaria;

si deve decidere quale degli identificatori utilizzare come chiave principale

Page 65: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 65

Criteri Gli attributi con valori nulli non possono essere

identificatori principali Gli identificatori con uno o pochi attributi sono preferibili

vantaggio in termini di risparmio di memoria nella realizzazione dei legami logici tra le varie relazioni

facilita le operazioni di join Un identificatore interno è preferibile Un identificatore utilizzato nelle operazioni più frequenti o

importanti è preferibile

Page 66: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 66

Se nessuno degli identificatori soddisfa i requisiti visti?

Si introducono nuovi attributi (codici) contenenti valori speciali generati appositamente per questo scopo

ES. Contatori, Sigle

Page 67: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

67

L’identificatore {Interno, Indirizzo} è opzionale, quindi non può essere scelto

Tra Codice fiscale e Codice SSN la scelta dipende da quale è più frequentemente usato per accedere a una persona

Interno

Indirizzo

Cognome

Indirizzo

Data nascita

Codice fiscale

(0,1)

(0,1)Codice SSN

Persona

Page 68: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 68

Fase 2: Traduzione verso il modello relazionale

Input: schema concettuale modello logico

Output: schema logico

Sono possibili altre fasi: Verifiche sulla qualità dello schema Normalizzazione dello schema prodotto

Page 69: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 69

Traduzione verso il relazionale

idea di base: le entità diventano relazioni sugli stessi attributi

e la chiave è l’identificatore principale le relationship (o associazioni) diventano

relazioni i cui attributi sono gli identificatori delle entità coinvolte e gli attributi propri dell’associazione

Page 70: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Ogni entità è tradotta con una relazione con gli stessi attributi La chiave primaria coincide con l’identificatore

principale dell’entità Gli attributi composti vengono ricorsivamente

suddivisi nelle loro componenti, oppure si mappano in un singolo attributo della relazione, il cui dominio va opportunamente definito

Per brevità, usiamo l’asterisco (*) per indicare la possibilità di valori nulli

Persona indirizzo

via

cittàn.civico (0,1)

CAP

nomecognome

cod_fiscale

Persona(CF, Cognome, Nome, Via, NCivico*,Città,CAP)

Page 71: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 71

Impiegato(Matricola, Cognome, Stipendio)

Progetto(Codice, Nome, Budget)

Partecipazione(Matricola, Codice, DataInizio)

Partecipazione

(0,N) (1,N)

Cognome

Stipendio

Matricola

Impiegato

NomeCodice

Budget

Progetto

Data inizio

Entità e relationship molti a molti

Page 72: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 72

Nomi più espressivi per gli attributi della chiave della relazione che rappresenta la

relationship

Impiegato(Matricola, Cognome, Stipendio)

Progetto(Codice, Nome, Budget)

Partecipazione(Matricola, Codice, DataInizio)

Page 73: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 73

Nomi più espressivi per gli attributi della chiave della relazione che rappresenta la

relationship

Impiegato(Matricola, Cognome, Stipendio)

Progetto(Codice, Nome, Budget)

Partecipazione(Impiegato, Progetto, DataInizio)

Page 74: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 74

Composizione

ProdottoComposto Componente

Costo Nome Codice

(0,N) (0,N)

Prodotto(Codice, Nome, Costo)

Composizione(Composto, Componente, Quantità)

Relationship ricorsive

Quantità

Page 75: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

75

Nome

Fornitore Prodotto

Dipartimento

Fornitura

Partita IVA Genere CodiceQuantità

Nome

Telefono

(0,N) (1,N)

(1,N)

Relationship n-arie

Fornitore(PartitaIVA, Nome)Prodotto(Codice, Genere)

Dipartimento(Nome, Telefono)Fornitura(Fornitore, Prodotto, Dipartimento, Quantità)

Page 76: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 76

Cognome

Giocatore SquadraContratto

Datanascita Città Nome

Ingaggio

(1,1) (0,N)

Ruolo Colori sociali

Relationship uno a molti

Giocatore(Cognome, DataNascita, Ruolo)Squadra(Nome, Città, ColoriSociali)

Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio)

Page 77: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 77

Soluzione più compatta

Giocatore(Cognome, DataNascita, Ruolo)Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio)

Squadra(Nome, Città, ColoriSociali)

Giocatore e Contratto hanno la stessa chiave: possiamo fonderle in un’unica relazione

Giocatore(Cognome, DataNasc, Ruolo, Squadra, Ingaggio)Squadra(Nome, Città, ColoriSociali)

con vincolo di integrità referenziale fra Squadra in Giocatore e la chiave di Squadra

Page 78: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 78

Cognome

Giocatore SquadraContratto

Datanascita Città Nome

Ingaggio

(0,1) (0,N)

Ruolo Colori sociali

Osservazione

se la cardinalità minima della relationship è 0, allora Squadra e Ingaggio in Giocatore devono ammettere valore nullo

Giocatore(Cognome, DataNasc, Ruolo, Squadra*, Ingaggio*)Squadra(Nome, Città, ColoriSociali)

Page 79: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

79

Associazioni ricorsive uno a molti

In questo caso è possibile operare una traduzione con 1 o 2 relazioni

1 relazione:

Impiegato(Codice, Nome, Qualifica, Responsabile*) FK: Responsabile REFERENCES Impiegato

2 relazioni:

Impiegato(Codice, Nome, Qualifica)Dipendenza(Dipendente, Responsabile)FK: Dipendente REFERENCES Impiegato FK: Responsabile REFERENCES Impiegato

Responsabile Dipendente

Qualifica Nome Codice

(0,N) (0,1)Dipendenza

Impiegato

Page 80: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

80

IscrizioneStudente Università

Cognome Matricola

AnnoDiCorso

Nome

Indirizzo

(1,1) (1,N)

Città

Entità con identificazione esterna

Studente(Matricola, Università, Cognome, AnnoDiCorso)

Università(Nome, Città, Indirizzo)

Nel caso di entità identificata esternamente, si “importa” l’identificatore della/e entità identificante/i.

L’associazione relativa risulta automaticamente tradotta

Page 81: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

81

Direttore DipartimentoDirezione

Cognome Codice Sede NomeData inizio

(1,1) (1,1)

Stipendio Telefono

Relationship uno a uno (1,1) – (1,1)

Direttore (Codice, Cognome, Stipendio)

Dipartimento (Nome, Sede, Telefono, Direttore, InizioD)

Direttore (Codice, Cognome, Stipendio, InizioD, Dipartimento)

Dipartimento (Nome, Sede, Telefono)

Page 82: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 82

Impiegato DipartimentoDirezione

Cognome Codice Sede NomeData inizio

(0,1) (1,1)

Stipendio Telefono

Relationship uno a uno (0,1) – (1,1)

tradurre l’associazione Direzione inglobandola in Impiegatonon è in generale una buona scelta (dipende dai volumi dei dati in gioco): troppi valori nulli!

Page 83: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 83

Relationship uno a uno (0,1) – (1,1)

Impiegato(Codice, Cognome, Stipendio, Dipartimento*, DataInizio*)

Dipartimento(Nome, Sede, Telefono)

Impiegato DipartimentoDirezione

Cognome Codice Sede NomeData inizio

(0,1) (1,1)

Stipendio Telefono

Page 84: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 84

Soluzione:

Impiegato (Codice, Cognome, Stipendio)

Dipartimento (Nome, Sede, Telefono, Direttore, InizioD)

• con vincolo di integrità referenziale, senza valori nulli

Page 85: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

85

Impiegato DipartimentoDirezione

Cognome Codice Sede NomeData inizio

(0,1) (0,1)

Stipendio Telefono

Relationship uno a uno (0,1) – (0,1)

Per evitare la presenza di valori nulli nelle chiavi esterne:

Impiegato (Codice, Cognome, Stipendio)

Dipartimento (Nome, Sede, Telefono, Direttore)

Direzione (Direttore, Dipartimento, DataInizio)

Page 86: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 86

2 relazioni:Persona(CF, Nome)Matrimonio(Marito, Moglie)

Marito Moglie

Nome CF

(0,1) (0,1)Matrimonio

Persona

Un esempio particolare

Page 87: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

(1,1)(0,1)

(1,N)(0,1)

(0,1)

(1,1)

(1,N)

(0,N)

(1,N)

CittàIndirizzo

Telefono

Dipartimento

Composizione

Sede

Direzione

Afferenza

Impiegato

Progetto

Partecipazione

Nome

Nome

Cognome

Budget

Data

Via

CAP

Codice

Page 88: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Per le entità E che partecipano ad associazioni sempre con max-card(E,R) = n la traduzione è immediata:

Sede(Città, Via, CAP)

Progetto(Nome, Budget)

Anche l’associazione Partecipazione si traduce immediatamente:

Partecipazione(Impiegato, Progetto)

L’entità Dipartimento si traduce importando l’identificatore di Sede e inglobando l’associazione Direzione

Dipartimento(Nome, Città, Telefono, Direttore)

Per tradurre l’associazione Afferenza, assumendo che siano pochi gli impiegati che non afferiscono a nessun dipartimento, si opta per una rappresentazione compatta

Impiegato(Codice, Cognome, Dipart*,CittàDip* Data*)

Page 89: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica89

Esercizio 1

Corso_AA Docenteresponsabilitànomecognomedata_nascita

(0,n)(1,1)

cod_doc

AA ciclo

Corso

attivato

(1,1)

(0,n)cod_corso

nome

data

FA_VISITA

(1, 1)

(0, N)

IN_VISITA

(0, N)

(1, 1)

MEDICO

VISITA

PAZIENTE

esito

nomecognometelefonocod_med

nomecognomedata_nascitacod_paziente

Page 90: Progettazione Logica 1 Progettazione logica I.Analisi delle prestazioni su schemi E-R II.Ristrutturazione di schemi E-R III.Traduzione verso il modello.

Progettazione Logica 90

Esercizio 2

 GIOCATORI(n_giocatore, cognome, iniziali, data_nascita, sesso, iscritto_dal, indirizzo, numero, cap, citta, telefono, n_socio)SQUADRE(n_squadra, n_giocatore, categoria)PARTITE(n_partita, n_squadra, n_giocatore, vittorie, sconfitte)PENALITA(n_pagamento, n_giocatore, data_pagamento, importo)MEMBRI_COMMISSIONE(n_giocatore, data_inizio, data_fine, carica)

Trovare lo schema ER che dà luogo al seguente schema relazionale: