Basi di Dati Relazionali -...

56
UNIVERSITA' DELLA CALABRIA Basi di Dati Relazionali Corso di Laurea in Informatica a.a. 2009-2010 Laboratorio Corso di Basi di Dati Relazionali – Progettazione Logica Laboratorio Ing. G. Laboccetta Ing. G. Laboccetta Dott.ssa. Dott.ssa. V. Policicchio V. Policicchio Coadiutore: Dott.ssa D. Nicotera Coadiutore: Dott.ssa D. Nicotera

Transcript of Basi di Dati Relazionali -...

Page 1: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

Basi di Dati Relazionali

Corso di Laurea in Informatica

a.a. 2009-2010

Laboratorio

Corso di Basi di Dati Relazionali – Progettazione Logica

LaboratorioIng. G. LaboccettaIng. G. Laboccetta

Dott.ssa.Dott.ssa. V. PolicicchioV. PolicicchioCoadiutore: Dott.ssa D. Nicotera Coadiutore: Dott.ssa D. Nicotera

Page 2: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

PROGETTAZIONE DI UNA BASE DI DATI

Schema concettuale

Progettazione concettuale

Raccolta e Analisi dei requisiti

Corso di Basi di Dati Relazionali – Progettazione Logica

Progettazione logica

Progettazione fisica

Schema logico

Schema fisico

Page 3: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

PROGETTAZIONE DELLA BASE DI DATI

Corso di Basi di Dati Relazionali – Progettazione Logica

Page 4: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

RICAPITOLANDO…

FASI E STEP DEL PROGETTO

1. Analisi dei requisiti e Progettazione

Concettuale

2. Progettazione logica della base di dati

Corso di Basi di Dati Relazionali – Progettazione Logica

3. Progettazione fisica ed implementazione

della base di dati

Page 5: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

STEP 1:

PROGETTAZIONE CONCETTUALE

1.Analisi e progettazione concettuale

1.1 Raccolta e Analisi dei requisiti

1.2 Progettazione dello schema Entità­Relazione (E­R)

1.3 Specifica delle funzioni per operare sui dati

Corso di Basi di Dati Relazionali – Progettazione Logica

1.3 Specifica delle funzioni per operare sui dati

1.4 Stima del carico applicativo del sistema informatico

� Il prodotto è lo Schema Concettuale.

Page 6: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

STEP 2:

PROGETTAZIONE LOGICA

2. Progettazione logica della base di dati

2.1 Ristrutturazione dello schema E­R in uno schema E­R

semplificato orientato al modello relazionale

Corso di Basi di Dati Relazionali – Progettazione Logica

2.2 Traduzione dello schema E­R ristrutturato in schema

relazionale.

� Il prodotto è lo Schema Logico.

Page 7: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

STEP 3:

PROGETTAZIONE FISICA

3. Progettazione fisica ed implementazione della base di dati

3.1 Realizzazione della base di dati sul DBMS

relazionale open­source MySQL 5.0

3.2 Popolamento delle tabelle

Corso di Basi di Dati Relazionali – Progettazione Logica

3.2 Popolamento delle tabelle

3.3 Realizzazione delle interrogazioni per operare sui dati

� Il prodotto è lo Schema Fisico.

Page 8: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

MODELLI DI DATI

I prodotti della varie fasi della progettazione sono schemi basati su specifici

modelli di datimodelli di dati:

� Schema concettuale � modello concettuale

� Schema logico � modello logico

Corso di Basi di Dati Relazionali – Progettazione Logica

� Schema logico � modello logico

� Schema fisico � modello logico + parametri fisici

Page 9: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

MODELLI DEI DATI ADOTTATI

– Schema concettuale:

• Modello Entità­Relazione (E­R)

– Schema logico:

Corso di Basi di Dati Relazionali – Progettazione Logica

• Modello Relazionale Modello Relazionale

• DDL: SQL­standard

– Schema fisico:

• Modello relazionale + strutture fisiche

• DDL: SQL supportato dal DBMS scelto (MySQL 5.0)

Page 10: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

PROGETTAZIONE

LOGICA

OBIETTIVO:

“Tradurre" lo schema concettuale in uno schema

logico che rappresenti gli stessi dati in maniera

corretta ed efficiente

Page 11: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

PROGETTAZIONE LOGICAObiettivo: Rappresentare i dati della realtà d’interesse in termini dei costrutti logici di una

classe di DBMS (quelli basati su un determinato modello logico)

• Input:

� Schema concettuale (output della progettazione concettuale)

� Modello logico

DBMS scelto (conforme al modello logico scelto)

Corso di Basi di Dati Relazionali – Progettazione Logica

� DBMS scelto (conforme al modello logico scelto)

� Previsioni del carico applicativo (per ottimizzare la base di dati rispetto ad esso)

• Output: Schema logico + Schema logico + documentazione associata

• Qualità:

� Correttezza e completezza della rappresentazione

� Efficienza della manipolazione dei dati

Page 12: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

Non si tratta di una pura e semplice traduzione:

� alcuni aspetti non sono direttamente rappresentabili

PROGETTAZIONE LOGICA

Corso di Basi di Dati Relazionali – Progettazione Logica

� è necessario considerare le prestazioni

Page 13: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

Ristrutturazione dello schema E-R

Schema E-RCaricoapplicativo

Progettazione logicaProgettazione logicaProgettazione logicaProgettazione logica

Corso di Basi di Dati Relazionali – Progettazione Logica

Traduzione nelmodello logico

Schema E-Rristrutturato

Modellologico

Schema logico

Page 14: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

RISTRUTTURAZIONE SCHEMA E-R

� Motivazioni:

� semplificare la traduzione

� "ottimizzare" le prestazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

� Osservazione:

� uno schema E­R ristrutturato non è (più) uno schema

concettuale nel senso stretto del termine

Page 15: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

Consideriamo “indicatori” dei parametri che regolano le prestazioni:

� Spazio (occupazione di memoria): numero di occorrenze previste

Analisi delle prestazioniAnalisi delle prestazioniAnalisi delle prestazioniAnalisi delle prestazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

previste

� Tempo (costo di una operazione): numero di occorrenze (di entità e relationship) visitate durante un’operazione

Page 16: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

Per lo studio di questi parametri servono le seguenti informazioni:

� Volume dei dati:

� numero di occorrenze di ogni entità e associazione

� dimensioni di ciascun attributo (di entità e associazione)

Analisi delle prestazioniAnalisi delle prestazioniAnalisi delle prestazioniAnalisi delle prestazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

� Caratteristiche delle operazioni:

� Tipo di operazione (interattiva o batch)

� Frequenza (numero medio di esecuzione in un certo intervallo di

tempo)

� Dati coinvolti (entità e/o associazioni)

Page 17: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ATTIVITÀ DELLA RISTRUTTURAZIONE

• Analisi delle ridondanze

• Eliminazione delle generalizzazioni

Partizionamento/accorpamento di entità e relazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

• Partizionamento/accorpamento di entità e relazioni

• Scelta degli identificatori primari

Page 18: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

� Presenza di un dato che può essere derivato (attraverso una

serie di operazioni) da altri dati.

� Vantaggi: riduzione degli accessi necessari per calcolare il dato

derivato

Analisi delle ridondanzeAnalisi delle ridondanzeAnalisi delle ridondanzeAnalisi delle ridondanze

Corso di Basi di Dati Relazionali – Progettazione Logica

derivato

� Svantaggi: maggiore occupazione di memoria e necessità di

effettuare operazioni aggiuntive per tenere aggiornato il dato

derivato.

Page 19: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

La decisione se mantenere o eliminare un dato ridondante va

presa confrontando:

� il costo di esecuzione delle operazioni che coinvolgono il dato ridondante

� relativa occupazione di memoria

nei casi di:

presenza della ridondanza

Analisi delle ridondanzeAnalisi delle ridondanzeAnalisi delle ridondanzeAnalisi delle ridondanze

Corso di Basi di Dati Relazionali – Progettazione Logica

� presenza della ridondanza

� assenza della ridondanza

Page 20: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

FORME DI RIDONDANZA

� Attributi derivabili:

� da altri attributi della stessa entità (o associazione)

� da attributi di altre entità (o associazione)

attraverso il conteggio di occorrenze

Corso di Basi di Dati Relazionali – Progettazione Logica

� attraverso il conteggio di occorrenze

� Relazioni derivabili dalla composizione di altre relazioni

in presenza di cicli

Page 21: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

EsempioEsempioEsempioEsempio

CITTA’PERSONA Residenza Città(1,1) (1,n)

Numero abitanti

Corso di Basi di Dati Relazionali – Progettazione Logica

Operazione O1: memorizza una nuova persona con relativa città di residenza

Operazione O2: stampa tutti i dati di una città (incluso il numero di abitanti)

Page 22: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

TAVOLA DEI VOLUMI

Concetto Schema E-R

Tipo (Entità/Relazione)

Volume

Città E 200

Persona E 1000000

Corso di Basi di Dati Relazionali – Progettazione Logica

Persona E 1000000

Residenza R 1000000

Page 23: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

TAVOLA DELLE OPERAZIONI

Operazione Tipo (Interattiva/Batch)

Frequenza

Op. 1 I 500 al giorno

Corso di Basi di Dati Relazionali – Progettazione Logica

Op. 1 I 500 al giorno

Op. 2 I 2 al giorno

Page 24: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA TAVOLE DEGLI ACCESSI

IN PRESENZAPRESENZA DI RIDONDANZA

Concetto Costrutto Accesso Tipo

Persona E 1 S

Città E 1 L

Residenza R 1 S

Città E 1 S

� Operazione 1: Tavola degli accessi (in presenzapresenza di ridondanza):

Corso di Basi di Dati Relazionali – Progettazione Logica

Città E 1 S

� Un accesso in scrittura alla entità PERSONA

� Un accesso in lettura per cercare la CITTA’ di interesse

� Un accesso in scrittura all’associazione RESIDENZA

� Un accesso in scrittura per incrementare il numero di abitanti in CITTA’

� Il tutto ripetuto per 500 volte al giorno per un totale di

� 3 x 500 = 1500 accessi in scrittura

� 1 x 500 = 500 accessi in lettura

� Costo:

Page 25: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA TAVOLE DEGLI ACCESSI

IN PRESENZAPRESENZA DI RIDONDANZA

Concetto Costrutto Accesso Tipo

Città E 1 L

� Operazione 2 : Tavola degli accessi (in presenza presenza di ridondanza)

Corso di Basi di Dati Relazionali – Progettazione Logica

� Il costo è trascurabile in quanto richiede un solo accesso

in lettura all’entità CITTA’ da ripetere 2 volte al giorno.

Page 26: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ESEMPIO DI VALUTAZIONE DI COSTO

supponendo che un accesso in scrittura abbia costo doppio

rispetto all’accesso in lettura:

� in totale 1500 x 2 + 500 = 3500 accessi al giorno

In presenzapresenza di ridondanza:

Corso di Basi di Dati Relazionali – Progettazione Logica

� in totale 1500 x 2 + 500 = 3500 accessi al giorno

Page 27: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

Concetto Costrutto Accessi Tipo

Persona E 1 S

Residenza R 1 S

� Operazione 1: Tavola degli accessi (in assenza assenza di ridondanza):

Tavole degli accessi Tavole degli accessi Tavole degli accessi Tavole degli accessi in in in in assenzaassenzaassenzaassenzaassenzaassenzaassenzaassenza di ridondanzadi ridondanzadi ridondanzadi ridondanza

Corso di Basi di Dati Relazionali – Progettazione Logica

� Un accesso in scrittura alla entità PERSONA

� Un accesso in scrittura all’associazione RESIDENZA

� Il tutto ripetuto per 500 volte al giorno per un totale di

� 2 x 500 = 1000 accessi in scrittura

� Costo:

Page 28: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

Concetto Costrutto Accessi Tipo

Città E 1 L

Residenza R 5000 L

Tavole degli accessi Tavole degli accessi Tavole degli accessi Tavole degli accessi in in in in assenzaassenzaassenzaassenzaassenzaassenzaassenzaassenza di ridondanzadi ridondanzadi ridondanzadi ridondanza

� Operazione 2: Tavola degli accessi (in assenza assenza di

ridondanza):

Corso di Basi di Dati Relazionali – Progettazione Logica

� Costo:� Un accesso in lettura all’entità CITTA’ (trascurabile),

� 5000 accessi in lettura all’associazione RESIDENZA in media (numero di persone/numero di città) per calcolare il numero di abitanti di questa città,

� Il tutto ripetuto per 2 volte al giorno per un totale di

� 5000 x 2 = 10000 accessi in lettura al giorno.

Page 29: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ESEMPIO DI VALUTAZIONE DI COSTO

Supponendo che un accesso in scrittura abbia costo doppio rispetto all’accesso in lettura, abbiamo in totale

(1000 x 2) + 10000 = 12000 accessi al giorno

in caso di assenza di ridondanza.

In assenzaassenza di ridondanza:

Corso di Basi di Dati Relazionali – Progettazione Logica

in caso di assenza di ridondanza.

Page 30: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ESEMPIO DI VALUTAZIONE DI COSTO

Riassumendo:

� presenza di ridondanza: 3500 accessi al giorno

� assenza di ridondanza: 12000 accessi al giorno

Conclusioni:

Eliminare il dato ridondante comporterebbe:

Corso di Basi di Dati Relazionali – Progettazione Logica

Eliminare il dato ridondante comporterebbe:

� 9000 accessi giornalieri in più rispetto al caso di dato ridondante presente

� un risparmio di un solo Kbyte

Allora conviene in questo caso mantenere il dato ridondante

Page 31: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ESEMPIO 2- VALUTAZIONE DI COSTO

Corso di Basi di Dati Relazionali – Progettazione Logica

Page 32: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

TAVOLA DELLE OPERAZIONI

Operazione 1:

Inserire una nuova vendita relativa a una fidelity card.

Operazione 2 :

Stampare i dati relativi a un supermercato (compreso il numero di

Corso di Basi di Dati Relazionali – Progettazione LogicaCorso di Basi di Dati Relazionali – Laboratorio Gruppo B

OPERAZIONE

TIPO

FREQUENZA

Operazione 1 I 1000 al giorno

Operazione 2 I 2 al giorno

Stampare i dati relativi a un supermercato (compreso il numero di

clienti e il totale dei punti delle fidelity card)

Page 33: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

TAVOLA DEGLI ACCESSI IN PRESENZA DI

RIDONDANZA

Operazione O1

Concetto Costrutto Accessi Tipo

Prodotto Entità 10 L

Fidelity card Entità 1 L

Scontrino Entità 1 S

Corso di Basi di Dati Relazionali – Progettazione Logica

Vendita Relazione 10 S

Supermercato Entità 1 S

Corso di Basi di Dati Relazionali – Laboratorio Gruppo B

Operazione O2

Concetto Costrutto Accessi Tipo

Supermercato Entità 1 L

Page 34: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

PRESENZADI RIDONDANZA

� Costi:

� Operazione 1: 11 operazioni di accesso in lettura e 12 in

scrittura. Contando le operazioni di scrittura doppi avremo 35

accessi. Per cui su 1000 operazioni di vendita al giorno avremo

35000 accessi.

Corso di Basi di Dati Relazionali – Progettazione Logica

� Operazione 2: 2 X 1 accessi in lettura sulla entità

SUPERMERCATO (Trascurabile)

� Totale: Circa 35000 accessi al giorno a fronte di 8 Byte aggiuntivi

per memorizzare gli attributo ridondante “Somma punti” e

“Media punti” nella entità SUPERMERCATO

Corso di Basi di Dati Relazionali – Laboratorio

Page 35: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

TAVOLA DEGLI ACCESSI IN ASSENZA DI

RIDONDANZA

Operazione O1

Concetto Costrutto Accessi Tipo

Prodotto Entità 10 L

Fidelity card Entità 1 L

Scontrino Entità 1 S

Vendita Relazione 10 S

Corso di Basi di Dati Relazionali – Progettazione Logica

Vendita Relazione 10 S

Corso di Basi di Dati Relazionali – Laboratorio Gruppo B

Operazione O2

Concetto Costrutto Accessi Tipo

Fidelity card Entità 5000 L

Supermercato Entità 1 L

Page 36: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ASSENZADI RIDONDANZA

� Costi:

� Operazione 1: 11 operazioni di accesso il lettura e 11 in scrittura. Contando le

operazioni di scrittura doppi avremo 33 accessi. Per cui su 1000 operazioni di

vendita al giorno avremo 33000 accessi.

� Operazione 2: 1 accesso in lettura sulla entità SUPERMERCATO e circa 5000

accessi sulla entità FIDELITY CARD (supponendo tale la media di clienti per

Corso di Basi di Dati Relazionali – Progettazione Logica

accessi sulla entità FIDELITY CARD (supponendo tale la media di clienti per

supermercato).

� Questa operazione viene effettuata due volte al giorno su un totale di 10.000

accessi.

� Totale: Circa 33000 + 10000 = 43000 accessi al giorno.

� Mantenendo la ridondanza avremo un risparmio di circa 8000 accessi al giorno.

Corso di Basi di Dati Relazionali – Laboratorio Gruppo B

Page 37: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ATTIVITÀ DELLA RISTRUTTURAZIONE

• Analisi delle ridondanze• Eliminazione delle generalizzazioni

• Partizionamento/accorpamento di entità e relazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

relazioni• Scelta degli identificatori primari

Page 38: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ELIMINAZIONE DELLE GERARCHIE

� il modello relazionale non può rappresentare direttamente le

generalizzazioni

� entità e relazioni sono invece direttamente rappresentabili

Corso di Basi di Dati Relazionali – Progettazione Logica

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

relazioni

Page 39: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

1. accorpamento delle figlie della generalizzazione nell’entità

padre

2. accorpamento dell’entità padre della generalizzazione nelle

entità figlie

Eliminazione delle gerarchieEliminazione delle gerarchieEliminazione delle gerarchieEliminazione delle gerarchie

Corso di Basi di Dati Relazionali – Progettazione Logica

entità figlie

3. sostituzione della generalizzazione con relazioni

Page 40: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

E0 R1

A01 A02

E3

1.1.1.1.Accorpamento dell’entità figlie Accorpamento dell’entità figlie Accorpamento dell’entità figlie Accorpamento dell’entità figlie nell’entità padrenell’entità padrenell’entità padrenell’entità padre

Corso di Basi di Dati Relazionali – Progettazione Logica

R2

E4

E2E1

A11 A21

Page 41: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

A11

A21

TIPO

(0,1)

(0,1)

E0

A01 A02

R1 E3

1.Accorpamento delle entità figlie 1.Accorpamento delle entità figlie 1.Accorpamento delle entità figlie 1.Accorpamento delle entità figlie nell’entità padrenell’entità padrenell’entità padrenell’entità padre

Corso di Basi di Dati Relazionali – Progettazione Logica

TIPO

(0,..)

R2

E4

Page 42: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

E0 R1

A01 A02

E3

2. Accorpamento dell’entità padre 2. Accorpamento dell’entità padre 2. Accorpamento dell’entità padre 2. Accorpamento dell’entità padre nelle entità figlienelle entità figlienelle entità figlienelle entità figlie

Corso di Basi di Dati Relazionali – Progettazione Logica

R2

E4

E2E1

A11 A21

Page 43: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

E3R12

R11

2. Accorpamento dell’entità 2. Accorpamento dell’entità 2. Accorpamento dell’entità 2. Accorpamento dell’entità padre nelle entità figlie padre nelle entità figlie padre nelle entità figlie padre nelle entità figlie

Corso di Basi di Dati Relazionali – Progettazione Logica

R2

E4

E2E1

A11 A21A01 A02 A01 A02

Page 44: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

E0 R1

A01 A02

E3

3. Sostituzione della generalizzazione 3. Sostituzione della generalizzazione 3. Sostituzione della generalizzazione 3. Sostituzione della generalizzazione con relazionicon relazionicon relazionicon relazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

R2

E4

E2E1

A11 A21

Corso di Basi di Dati Relazionali – Laboratorio Gruppo B

Page 45: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

(0,1)(0,1)

E0

A01 A02

R1 E3

3. Sostituzione della generalizzazione 3. Sostituzione della generalizzazione 3. Sostituzione della generalizzazione 3. Sostituzione della generalizzazione con relazionicon relazionicon relazionicon relazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

RG2RG1

(1,1)

(0,1)

(1,1)

(0,1)

E2E1 R2

E4A11 A21

Page 46: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

� La scelta fra le alternative si può fare con metodo simile a quello visto per

l'analisi delle ridondanze (però non basato solo sul numero degli accessi)

• E’ possibile seguire alcune semplici regole generali:

Strategia per la eliminazione delle Strategia per la eliminazione delle Strategia per la eliminazione delle Strategia per la eliminazione delle generalizzazionigeneralizzazionigeneralizzazionigeneralizzazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

• E’ possibile seguire alcune semplici regole generali:

1. conviene se gli accessi al padre e alle figlie sono contestuali

2. conviene se gli accessi alle figlie sono distinti

3. conviene se gli accessi alle entità figlie sono separati dagli accessi al padre

• sono anche possibili soluzioni “ibride”, soprattutto in gerarchie a più livelli

Page 47: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

E0 R1

A01 A02

E3

Soluzione IbridaSoluzione IbridaSoluzione IbridaSoluzione Ibrida

Corso di Basi di Dati Relazionali – Progettazione Logica

R2

E4

E2E1

A11 A21

Page 48: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

SoluzioneSoluzioneSoluzioneSoluzione ibridaibridaibridaibrida

E0

A01 A02

R1 E3

Corso di Basi di Dati Relazionali – Progettazione Logica

E2 R2

E4A21

Page 49: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

E0

A01 A02

R1 E3

(0,1)

A11

TIPO

(0,1)

SoluzioneSoluzioneSoluzioneSoluzione ibridaibridaibridaibrida

Corso di Basi di Dati Relazionali – Progettazione Logica

E2 R2

E4A21

RG2

(1,1)

(0,1)TIPO

Page 50: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ATTIVITÀ DELLA RISTRUTTURAZIONE

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

Corso di Basi di Dati Relazionali – Progettazione Logica

relazioni

• Scelta degli identificatori primari

Page 51: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA PARTIZIONAMENTO/ACCORPAMENTO

DI ENTITÀ E RELAZIONI

� Ristrutturazioni effettuate per rendere più efficienti le

operazioni

� Gli accessi si riducono:

� separando attributi di un concetto che vengono

Corso di Basi di Dati Relazionali – Progettazione Logica

� separando attributi di un concetto che vengono

acceduti separatamente

� raggruppando attributi di concetti diversi acceduti

insieme

Page 52: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA ESEMPI DI PARTIZIONAMENTO/ACCORPAMENTO

� partizionamento verticale di entità

� partizionamento orizzontale di

entità/relationship

Corso di Basi di Dati Relazionali – Progettazione Logica

entità/relationship

� eliminazione di attributi multivalore

� accorpamento di entità/ relationship

Page 53: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

ATTIVITÀ DELLA RISTRUTTURAZIONE

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

relazioni

Corso di Basi di Dati Relazionali – Progettazione Logica

relazioni• Scelta degli identificatori primari

Page 54: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

SCELTA DEGLI IDENTIFICATORI PRINCIPALI

� Operazione indispensabile per la traduzione nel modello

relazionale

� Criteri

Corso di Basi di Dati Relazionali – Progettazione Logica

� Criteri

� assenza di opzionalità

� Semplicità (1 o pochi attributi)

� utilizzo nelle operazioni più frequenti o importanti

Page 55: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

SCELTA DEGLI IDENTIFICATORI PRINCIPALI

� Se nessuno degli identificatori soddisfa i requisiti visti?

Si introducono nuovi attributi (codici)

Corso di Basi di Dati Relazionali – Progettazione Logica

Si introducono nuovi attributi (codici)

contenenti valori speciali generati appositamente per questo scopo

Page 56: Basi di Dati Relazionali - mat.unical.itrullo/teaching/basidati_rel/a.a.09-10/lab/lezioni_lab/2010... · semplificato orientato al modello relazionale Corso di Basi di Dati Relazionali

UNIVERSITA' DELLA CALABRIA

TRADUZIONE VERSO IL MODELLO

RELAZIONALE

Idea di base:

• le entità diventano relazioni sugli stessi attributi

• le associazioni (ovvero le relazioni E­R) diventano

Corso di Basi di Dati Relazionali – Progettazione Logica

• le associazioni (ovvero le relazioni E­R) diventano

relazioni sugli identificatori delle entità coinvolte più gli

attributi propri