File PDF .it

Condividi facilmente i tuoi documenti PDF con i tuoi contatti, il Web e i Social network.

Inviare un file File manager Cassetta degli attrezzi Ricerca PDF Assistenza Contattaci



05 Esercizio 2 progettazione fisica .pdf



Nome del file originale: 05 - Esercizio 2 - progettazione fisica.pdf

Questo documento in formato PDF 1.4 è stato generato da Writer / LibreOffice 4.1, ed è stato inviato su file-pdf.it il 19/05/2016 alle 14:55, dall'indirizzo IP 151.45.x.x. La pagina di download del file è stata vista 770 volte.
Dimensione del file: 169 KB (5 pagine).
Privacy: file pubblico




Scarica il file PDF









Anteprima del documento


Dati della traccia
100
5
20

Condomini
Scale ciascuno
Appartamenti per ogni scala

Operazioni
OP 1: Registrazione di una spesa (50 volte all'anno per condominio, 10 per scala e 5 per
appartamento)
OP 2: Registrazione di un pagamento (10 volte all'anno per appartamento)
OP 3: Stampa del bilancio, con il totale degli accrediti e degli addebiti per ciascun
appartamento (1 volta all'anno)
OP 4: Stampa dei pagamenti effettuati in ordine cronologico da ciascun proprietario (sapendo il
Codice Fiscale), raggruppati per appartamento (5 volte al giorno)
OP 5: Stampa informazioni sui proprietari, incluso il numero di appartamenti posseduti (5 volte
al mese)

Tavola dei volumi
Supponiamo che la vita dell'applicazione sia di 10 anni.
Usando i dati forniti dalle specifiche e le operazioni che vengono effettuate ogni anno,
possiamo dedurre la seguente tavola dei volumi:
Condominio

E

100

Scale

E

100*5 = 500

Appartamenti

E

500*20 = 10 * 103

Comprende

R

500

Contiene

R

10*103

Spesa Condominio

R

50*10*100 = 50 * 103

Spesa Scala

R

500*10*10 = 50 * 103

Spesa Appartamento

R

10*103 *10 * 5 = 500 * 103

Pagamenti

R

10*10*10*103 = 1000 * 103

Spese

E

(50+50+500+1000)*103 = 1,6 * 106

Proprietario

R

70% * 10 * 103 = 7*103

Affitto

R

40% * 10 * 103 = 4*103

Persona

E

10,5 * 103

Supposizioni fatte:
• Spesa condominio, scala e appartamento non hanno tuple in comune (relazione totale
esclusiva)
• Ci sono case non affittate
• I proprietari detengono il 70% degli immobili ma alcuni di essi non abitano nelle case
di loro proprietà e non sono affittuari
Costo operazione 4:
Proprietà

1,5

L

Appartamento

1,5

L

Pagamento

1,5 * 100

L

Contiene

1,5

L

Scale

1,5

L

Comprende

1,5

L

Condomini

1,5

L

Supposizioni:
• Nella tabella proprietà ci sono solo le persone proprietarie di un appartamento.
Una persona è proprietaria di almeno un appartamento.
Dato che il 70% delle persone detiene la totalità degli immobili, allora (arrotondando)
ci saranno 1,5 appartamenti per proprietario.

E' necessario leggere da Scale, Coomprende, Condomini, in quanto essendo entità
debole, per leggere la chiave primaria di Appartamento devo leggere anche la tabella
Condomini, restituendo in media 1,5 tuple per ogni relazione/entità

Esercizio 3:
Con riferimento all'esercizio 2, si consideri l'operazione 4.
Definire lo schema di operazione e definire le strutture fisiche in grado di ottimizzare questa
operazione.
Motivare qualitativamente/analiticamente la decisione/le decisioni prese
Dopo aver effettuato la ristrutturazione del database verso il modello relazionale, otteniamo le
seguenti entità:

Proprietario ( CF , Cognome, NroAppartamenti )
Appartamento ( ID , interno , saldo , scala , proprietario )
Pagamento ( Appartamento , spesa , ammontare , data )
Dato che il CF del proprietario è dato dall'operazione, lo schema dell'operazione sarà
Appartamento → Pagamento, in quanto la selezione su appartamento è l'operazione più
selettiva (preferita sia dall'ottimizzatore basato su regole/algebrico che da quello basato sui
costi). Infatti questa selezione permette di recuperare 1.5 appartamenti dai 10000 totali.
Gli attributi candidati ad essere indicizzati sono:
Appartamento.proprietario (per via della selezione),
Appartamento.ID (per via del join) - chiave primaria
Pagamento.appartamento (per via del join e per via del raggruppamento)
Pagamento.data (per via dell'ordinamento)

Appartamento.proprietario (per via della selezione)
In maniera qualitativa possiamo affermare che un indice hash su proprietario sia la soluzione
ottimale per la ricerca PUNTUALE di un dato proprietario in Appartamento. Questa
richiederà, nella peggiore delle ipotesi, la lettura di due blocchi dalla memoria di massa.
Inoltre, non sono previste ricerche per intervallo che potrebbero giustificare l'uso di una
struttura B+tree.
Pagamento.data (per via dell'ordinamento)
Dato che dobbiamo effettuare un ordinamento per data, si scarta l'ipotesi di un indice
secondario sul campo data. Infatti, l'ordinamento di tale campo non è effettuato sull'intera
tabella, ma su piccoli “gruppi” (a causa della precedente selezione su proprietario e della
group by su appartamento).
In questo caso, qualsiasi indice non verrà preso in considerazione.
Pagamento.appartamento (per via del raggruppamento)
Per quanto riguarda il raggruppamento, esso non è effettuato su tutte le tuple, ma a seguito di
una selezione, solo su 1.5/10000 tuple. Per questa ragione, un indice B+tree su tale campo
non verrebbe preso in considerazione per il raggruppamento.
Appartamento.ID (per via del join) - chiave primaria
Pagamento.appartamento (per via del join) – chiave esterna
E' necessario calcolare le strutture primarie e secondarie in grado di ottimizzare il join tra le
due tabelle.
Per poter utilizzare le tecniche di Join più efficienti, dobbiamo costruire due indici in modo
tale da poter ottenere hash o b+tree da poter sfruttare nell'operazione di join.
Si suppone di avere a disposizione un DBMS che supporta sia una struttura primaria B+tree
che una struttura primaria heap (con hash).

Scenario 1
b+tree su ID e b+tree su Appartamento (per favorire il Merge-scan)
1a) b+tree (primario) su Appartamento.ID
PER I NODI FOGLIA
N (numero tuple)
L (dimensione tupla)

= 10 000
= 4byte (ID) + 2byte (interno) + 4byte (saldo) +
2byte (scala) + 16byte (CF) + P = 32 byte
B (dimensione blocco foglia)
= 1000 byte
P (puntatore ai blocchi)
= 4 byte

F = 1000 / 32 = 31,25 tuple/blocco
Numero di blocchi foglia: 10000/ 31,25 = 320 blocchi
PER I NODI INTERNI
N (numero tuple)
L (dimensione record)
B (dimensione blocco)
P (puntatore ai blocchi)

= 320
= 4byte (ID) + P = 8 byte
= 1000 byte
= 4 byte

F = 1000 / 8 = 125 * 80% = 100
profondità = log100 320 = log 320 / log 100 = 1,25~ 2 (nel caso degli accessi, trattandosi di
valori interi, si approssima sempre all’ intero immediatamente superiore, in quanto si
considera il caso peggiore)
Costo per leggere 1,5 tuple: (2profondità+1foglia)*1.5 = 4.5
1b) b+tree (secondario) su Pagamento.appartamento
N (numero tuple)
L (dimensione record)
B (dimensione blocco)
P (puntatore ai blocchi)

= 1 000 000
= 4byte (Appartamento) + P = 8 byte
= 1000 byte
= 4 byte

F = 1000 / 8 = 125 * 80% = 100
profondità = log100 1 000 000 = log 1 000 000 / log 100 = 3
Costo per leggere 100 tuple = 3 + 1 (overflow) + 100 (accessi alla struttura primaria) = 104
Costo per leggere 100 tuple per 1.5 appartamenti = 104*1.5 = 156
*Si considera che sul blocco ci sono 125 tuple, quindi è probabile che per leggere 100 tuple
sia necessario accedere ad un altro blocco
Scenario 2
hash su ID e hash su Appartamento (hash-join)
2a) hash (primario su ID)
Costo per leggere 1,5 tuple: 2
2b) hash (secondario su Pagamento.appartamento)
Costo per leggere 150 tuple: 1.5*(100+2) = 154 (nel 2% dei casi si accede al blocco di
overflow)

Scenario 3
hash su ID e B+tree su Appartamento (nested loop)
2a) hash (primario su ID)
Costo per leggere 1,5 tuple: 2
2b) B+tree (secondario su Pagamento.appartamento)
Costo per leggere 100 tuple = 3 + 1 (overflow) + 100 (accessi alla struttura primaria) = 104
Quindi il costo è 104*1,5 = 156

Conclusioni
Costo b+tree
= 4.5 + 156 = 160.5
Costo hash
= 2 + 154 = 156
Costo nested loop = 2 + 156 = 158
Tutte le soluzioni sono egualmente efficienti.


Documenti correlati


Documento PDF arsialpp4itcasostudio
Documento PDF 875 pf st sl relazione illustrativa del progetto di fattibil
Documento PDF perizia liceo 875 pf st sl relazione illustrativa del progetto di fattibil ilovepdf compressed 2
Documento PDF arsialpp3it
Documento PDF cv francesco caruso roma
Documento PDF laboratorio di criminologia forense 1


Parole chiave correlate