Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2010-2011
PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica Schema logico Progettazione fisica Schema fisico
PROGETTAZIONE DELLA BASE DI DATI
PROGETTAZIONE LOGICA OBIETTIVO: Tradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente
PROGETTAZIONE LOGICA Obiettivo: 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) Previsioni del carico applicativo (per ottimizzare la base di dati rispetto ad esso) Output: Schema logico + documentazione associata Qualità: Correttezza e completezza della rappresentazione Efficienza della manipolazione dei dati
PROGETTAZIONE LOGICA Non si tratta di una pura e semplice traduzione: alcuni aspetti non sono direttamente rappresentabili è necessario considerare le prestazioni
Progettazione logica Carico applicativo Schema E-R Ristrutturazione dello schema E-R Modello logico Schema E-R ristrutturato Traduzione nel modello logico Schema logico
RISTRUTTURAZIONE SCHEMA E-R Motivazioni: semplificare la traduzione "ottimizzare" le prestazioni Osservazione: uno schema E-R ristrutturato non è (più) uno schema concettuale nel senso stretto del termine
Analisi delle prestazioni Consideriamo indicatori dei parametri che regolano le prestazioni: Spazio(occupazione di memoria): numero di occorrenze previste Tempo(costo di una operazione): numero di occorrenze (di entità e relationship) visitate durante un operazione
Analisi delle prestazioni 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) 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)
ATTIVITÀ DELLA RISTRUTTURAZIONE Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e relazioni Scelta degli identificatori primari
Analisi delle ridondanze 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 Svantaggi: maggiore occupazione di memoria e necessità di effettuare operazioni aggiuntive per tenere aggiornato il dato derivato.
Analisi delle ridondanze 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 assenza della ridondanza
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 Relazioni derivabili dalla composizione di altre relazioni in presenza di cicli
Esempio Numero abitanti (1,1) (1,n) PERSONA Residenza CITTA Città 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)
TAVOLA DEI VOLUMI Concetto Schema E-R Tipo (Entità/Relazione) Volume Città E 200 Persona E 1000000 Residenza R 1000000
TAVOLA DELLE OPERAZIONI Operazione Tipo Frequenza (Interattiva/Batch) Op. 1 I 500 al giorno Op. 2 I 2 al giorno
TAVOLE DEGLI ACCESSI IN PRESENZA DI RIDONDANZA Costo Operazione 1 (in presenza di ridondanza): Concetto Costrutto Accesso Tipo Persona E 1 S Città E 1 L Residenza R 1 S 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
TAVOLE DEGLI ACCESSI IN PRESENZA DI RIDONDANZA Costo Operazione 2 (in presenza di ridondanza): Concetto Costrutto Accesso Tipo Città E 1 L Il costo è trascurabile in quanto richiede un solo accesso in lettura all entità CITTA da ripetere 2 volte al giorno.
ESEMPIO DI VALUTAZIONE DI COSTO In presenza di ridondanza: supponendo che un accesso in scrittura abbia costo doppio rispetto all accesso in lettura: in totale 1500 x 2 + 500 = 3500 accessi al giorno
Tavole degli accessi in assenza di ridondanza Costo Operazione 1 (in assenza di ridondanza): Concetto Costrutto Accessi Tipo Persona E 1 S Città E 1 L Residenza R 1 S Un accesso in scrittura alla entità PERSONA Un accesso in lettura per trovare la Città di interesse 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 1 x 500 = 500 accessi in lettura
Costo Operazione 2 (in assenza di ridondanza): Tavole degli accessi in assenza di ridondanza Concetto Costrutto Accessi Tipo Città E 1 L Residenza R 5000 L 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.
ESEMPIO DI VALUTAZIONE DI COSTO In assenza di ridondanza: Supponendo che un accesso in scrittura abbia costo doppio rispetto all accesso in lettura Abbiamo in totale (1000 x 2 + 500) + 10000 = 12500 accessi al giorno in caso di assenza di ridondanza.
ESEMPIO DI VALUTAZIONE DI COSTO Riassumendo: presenza di ridondanza: 3500 accessi al giorno assenza di ridondanza: 12500 accessi al giorno Conclusioni: 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
ATTIVITÀ DELLA RISTRUTTURAZIONE Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e relazioni Scelta degli identificatori primari
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
Eliminazione delle gerarchie 1. accorpamento delle figlie della generalizzazione nell entità padre 2. accorpamento dell entità padre della generalizzazione nelle entità figlie 3. sostituzione della generalizzazione con relazioni
A01 1. Accorpamento dell entità figlie nell entità padre A02 E0 R1 E3 E1 E2 R2 A11 A21 E4
A11 A21 (0,1) (0,1) 1.Accorpamento delle entità figlie nell entità padre A01 A02 E0 TIPO R1 E3 (0,..) R2 E4
1.Esempio Farmaco codice n_anni codice Generico Brevettato n_anni Farmaco (0,1) TIPO
2. Accorpamento dell entità padre nelle entità figlie A01 A02 E0 R1 E3 E1 E2 R2 A11 A21 E4
2. Accorpamento dell entità padre nelle entità figlie R11 R12 E3 E1 E2 R2 A01 A11 A02 A01 A21 A02 E4
2.Esempio codice Farmaco codice Generico Brevettato n_anni Generico n_anni Brevettato codice
3. Sostituzione della generalizzazione con relazioni A01 A02 E0 R1 E3 E1 E2 R2 A11 A21 E4 Corso di Basi di Dati Relazionali Laboratorio Gruppo B
3. Sostituzione della generalizzazione con relazioni A01 A02 E0 R1 E3 RG1 (0,1) (1,1) (0,1) (1,1) RG2 E1 E2 R2 A11 A21 E4
3. Sostituzione della generalizzazione con relazioni A01 A02 E0 R1 E3 RG1 (0,1) (1,1) (0,1) (1,1) RG2 E1 E2 R2 A11 A21 E4
3.Esempio codice Farmaco codice Generico Brevettato n_anni (0,1) RG1 (1,1) Generico Farmaco (0,1) RG2 (1,1) n_anni Brevettato
Strategia per la eliminazione delle generalizzazioni 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: 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
A01 A02 Soluzione Ibrida E0 R1 E3 E1 E2 R2 A11 A21 E4
Soluzione ibrida A01 A02 E0 R1 E3 E2 A21 R2 E4
Soluzione ibrida A01 A02 A11 (0,1) E0 R1 E3 TIPO (0,1) (1,1) RG2 E2 R2 A21 E4
ATTIVITÀ DELLA RISTRUTTURAZIONE Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e relazioni Scelta degli identificatori primari
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 acceduti separatamente raggruppando attributi di concetti diversi acceduti insieme
ESEMPI DI PARTIZIONAMENTO/ ACCORPAMENTO partizionamento verticale di entità partizionamento orizzontale di entità/relationship eliminazione di attributi multivalore accorpamento di entità/ relationship
ATTIVITÀ DELLA RISTRUTTURAZIONE Analisi delle ridondanze Eliminazione delle generalizzazioni Partizionamento/accorpamento di entità e relazioni Scelta degli identificatori primari
SCELTA DEGLI IDENTIFICATORI PRINCIPALI Operazione indispensabile per la traduzione nel modello relazionale Criteri assenza di opzionalità Semplicità (1 o pochi attributi) utilizzo nelle operazioni più frequenti o importanti
SCELTA DEGLI IDENTIFICATORI PRINCIPALI Se nessuno degli identificatori soddisfa i requisiti visti? Si introducono nuovi attributi (codici) contenenti valori speciali generati appositamente per questo scopo
TRADUZIONE VERSO IL MODELLO RELAZIONALE Idea di base: le entità diventano relazioni sugli stessi attributi le associazioni (ovvero le relazioni E-R) diventano relazioni sugli identificatori delle entità coinvolte più gli attributi propri