Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
DATI DI INGRESSO E USCITA
Ingresso:
schema concettuale;
– informazioni sul carico applicativo (dimensioni dei dati e caratteristiche delle operazioni);
– modello logico;
–
Uscita: schema logico;
– documentazione associata.
–
Osservazione: non si tratta di una pura e semplice traduzione, infatti alcuni costrutti dello schema
concettuale non sono direttamente rappresentabili e, nel modello logico, è necessario tenere conto
delle prestazioni.
RISTRUTTURAZIONE SCHEMA E-R
Motivazioni: semplificare la traduzione e "ottimizzare" le prestazioni.
Osservazioni: uno schema E-R ristrutturato non è più uno schema concettuale in senso stretto.
Per ottimizzare il risultato, abbiamo bisogno di analizzare le prestazioni a questo livello, anche se le
prestazioni non sono valutabili con precisione su uno schema concettuale.
INDICATORI DEI PARAMETRI CHE REGOLANO LE PRESTAZIONI
Spazio: spazio di memoria necessario per memorizzare i dati.
Tempo: numero di occorrenze (di entità e relationships) visitate durante un'operazione sulla base di
dati.
CALCOLO DELLE PRESTAZIONI
Per calcolare le prestazioni di uno schema occorre conoscere:
volume dei dati: numero di occorrenze di ogni entità ed associazione di uno schema;
– dimensioni di ciascun attributo (cioè del suo dominio);
caratteristiche delle operazioni:
– frequenza: numero medio di esecuzioni in un intervallo di tempo;
– dati coinvolti: entità, associazioni.
–
REGOLA 80-20 (OTTANTA VENTI)
Per le operazioni sulle basi di dati sussiste la cosiddetta regola 80-20, cioè l'80% del carico è
generato dal 20% delle operazioni. È sufficiente quindi individuare le operazioni principali per
avere una stima dei costi.
ATTIVITÀ DELLE RISTRUTTURAZIONE
1 – Analisi delle ridondanze;
2 – Eliminazione delle generalizzazioni;
3 – Partizionamento/Accorpamento di entità e associazioni;
4 – Scelta degli identificatori primari.
1 – ANALISI DELLE RIDONDANZE
Una Ridondanza in uno schema E-R è un'informazione significativa ma derivabile da altre. In
questa fase si decide se eliminare le ridondanze eventualmente presenti o mantenerle.
Vantaggi delle ridondanze:
semplificazioni delle interrogazioni;
–
Svantaggi delle ridondanze:
appesantimento degli aggiornamenti;
– rischio di perdita di coerenza dei dati;
– maggiore occupazione di spazio.
–
Forme di ridondanze in uno schema E-R
Attributi derivabili da altri attributi della stessa entità (o relazione) e da attributi di altre entità (o
relazioni).
Relazioni derivabili dalla composizione di altre relazione in presenza di cicli.
2 – ELIMINAZIONE DELLE GERARCHIE
Il modello relazionale non può rappresentare direttamente le generalizzazioni. Invece, entità e
relazioni sono direttamente rappresentabili. Però si eliminano le gerarchie, sostituendole con entità e
relazioni.
Per eliminare le gerarchie vi sono 3 possibilità:
accorpamento delle figlie della generalizzazione nel genitore;
– accorpamento del genitore della generalizzazione nelle figlie;
– sostituzione della generalizzazione con relazioni.
–
Accorpamento delle figlie della generalizzazione nel genitore
Se E0 è l'entità di E1 ed E2, le entità E1 ed E2 vengono eliminate e accorpate ad E0.
Ad E0 viene aggiunto un attributo che indica da quale delle entità figlia deriva una certa istanza, e
gli attributi di E1 ed E2 vengono assorbiti dall'entità genitore, e assumono valore nullo sulle istanze
provenienti dalle altre entità. Infine, una relazione relativa a solo una delle entità figlie viene
assorbita dall'entità genitore e avrà comunque cardinalità minima uguale a 0, in quanto gli elementi
dell'altra entità non contribuiscono alla relazione
Accorpamento del genitore della generalizzazione nelle figlie
L'entità genitore E0 viene eliminata, e le entità figlie E1 ed E2 ereditano le proprietà dell'entità
genitore. Le relazioni che coinvolgono l'entità vengono sdoppiate, coinvolgendo ciascuna delle
entità figlie.
Sostituzione delle generalizzazioni con associazioni
La generalizzazione si trasforma in due associazioni uno a uno che legano rispettivamente l'entità
genitore con le entità figlie. In questo caso non c'è trasferimento di attributi o di associazioni e le
entità figlie E1 ed E2 sono identificante esternamente dall'entità genitore E0
Nello schema ottenuto vanno aggiunti dei vincoli: ogni occorrenza di E0 non può partecipare
contemporaneamente alle due associazioni, e se la generalizzazione è totale, deve partecipare ad
almeno una delle 2.
Come scegliere?
La scelta fra le alternative si può fare con un metodo simile a quello previsto per l'analisi delle
ridondanze, però non basato sul numero degli accessi. Questo metodo:
conviene se le operazioni non fanno distinzione tra le occorrenze e tra gli attributi di E0, E1
– e E2;
è possibile solo quando la generalizzazione è totale (altrimenti ci sarebbero elementi di E0
– che non appartengono nè ad E1 nè ad E2). Conviene quando si fanno operazioni distinte su
elementi di E1 e E2;
è utilizzato se la generalizzazione non è totale, ma ci sono operazioni che si riferiscono
– separatamente a occorrenze di E1 o di E2. Si ha risparmio di memoria, ma incremento degli
accessi e problema a mantenere la consistenza dei dati.
Sono anche possibili soluzioni "ibride", soprattutto in gerarchie a più livelli.
3 – PARTIZIONAMENTO/ACCORPAMENTO DI CONCETTI
Ristrutturazioni effettuate per rendere più efficienti le operazioni in base a un semplice principio.
Gli accessi si riducono separando attributi di concetti diversi cui si accede contemporaneamente.
Partizionamento verticale di entità
Se applicazioni diverse hanno accesso a diversi gruppi di attributi di una stessa entità, si può
procedere al partizionamento verticale dell'entità. L'entità verrà suddivisa in due entità, legate da
una relazione, e gli attributi dell'entità iniziale saranno suddivise in due nuove entità, e le due nuove
entità saranno legate da una relazione 1:1
Partizionamento orizzontale di entità
Consiste nel fare un partizionamento secondo il valore assunto da un determinato attributo.
Il difetto di questo partizionamento è che una decomposizione orizzontale comporta una
duplicazione delle relazioni a cui l'entità partecipa.
Accorpamento di entità
Viceversa, due entità legate da un'associazione 1:1 possono essere accorpate in un'unica entità
contenente gli attributi di entrambi, se le operazioni più frequenti su un'entità richiedono anche i
dati dell'altra.
Accorpamento di Associazioni
È possibile anche effettuare un partizionamento di associazioni, per separare le occorrenze cui si
accede separatamente. Simmetricamente si può effettuare un accorpamento di associazioni quando
si accede alle varie occorrenze congiuntamente.
Eliminazione degli attributi multivalore
L'eliminazione degli attributi multivalore è necessaria perchè il modello relazionale non permette di
rappresentare in maniera diretta questa situazione.
In questo caso l'entità E che contiene un attributo multivalore viene divisa in due entità: una E' con
lo stesso nome di E ma senza l'attributo multivalore, e un'altra E'' contenente solo l'attributo
multivalore, legata a E' mediante una relazione uno a molti.
4 – SCELTA DEGLI IDENTIFICATORI PRIMARI
La scelta degli identificatori primari è un'operazione indispensabile per la traduzione nel modello
relazionale.
Criteri:
assenza di opzionalità (i valori nulli non permettono di identificare tutti gli attributi);
– semplicità (preferibili gli identificatori con pochi attributi);
– utilizzo nelle operazioni più frequenti o importanti.
–
Utilizo di Codici come Identificatori
La domanda è: se nessuno degli identificatori soddisfa i requisiti visti ? Allora si introducono nuovi
attributi, i codici, contenenti valori generati automaticamente per questo scopo.
Traduzione verso il modello relazionale
Una volta che abbiamo ristrutturato il modello relazionale, possiamo tradurlo nel modello logico.
ENTITÀ ED ASSOCIAZIONI MOLTI A MOLTI
Idea di base:
le entità diventano relazioni (del modello relazionale) sugli stessi attributi (o eventualmente
– altri);
le associazioni (cioè le relazioni E-R) molti a molti diventano relazioni (del modello
– relazionale) sugli identificatori delle entità coinvolte, più eventuali attributi propri.
ASSOCIAZIONE 1:1
La partecipazione è obbligatoria per entrambe le entità.
In genere si scelgono nomi più espressivi per gli attributi della chiave della relazione che
rappresenta l'associazione.
Nel caso di associazioni 1:1 con partecipazioni entrambe obbligatorie, scegliamo noi quale delle
due entità deve assorbire le chiavi dell'altra.
ASSOCIAZIONE 1:N
L'associazione 1:N viene assorbita dall'entità che partecipa con cardinalità massima uguale a 1, con
i suoi attributi e identificatori dell'altra entità.
ASSOCIAZIONE 1:1 CON UNA OPZIONALE
La relazione viene assorbita dall'entità che ha partecipazione obbligatoria, con vincolo di integrità
referenziale, senza valori nulli.
ASSOCIAZIONE 1:1 CON ENTRAMBE OPZIONALI
L'associazione viene rappresentata come una relazione a sè, con vincolo di integrità referenziale,
senza valori nulli.
TRADUZIONI DI SCHEMI COMPLESSI
1 – si procede alla trasformazione in relazioni delle entità con identificatore interno;
2 – si trasformano in relazioni le entità con identificazione esterna;
3 – quindi si procede a creare le relazioni relative alle associazioni (1:1, 1:N, N:N).
CAPITOLO 7 – ALGEBRA RELAZIONALE
LINGUAGGI DI INTERROGAZIONE PER BASI DI DATI RELAZIONALI
Dichiarativi: specificano le proprietà del risultato ('che cosa').
Procedurali: specificano le modalità di generazione del risultato ('come').
Linguaggi di interrogazione sono:
algebra relazionale: procedurale;
– calcolo relazionale: dichiarativo (teorico);
– SQL (Structured Query Language): parzialmente dichiarativo (reale);
– QBE (Query By Example): dichiarativo (reale).
–