Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
B
b1
C
c1
a1
b1
c2
a1
b2
c2
1. esercizio.
a1
b3
a1
a2
A
a1
B
b1
C
c1
a1
b2
a2
b1
A
a1
B
b2
C
c1
c1
a2
b2
c1
c2
a2
b2
c2
rs
dom ( A ) = {a1 , a2 } ;
dom ( B ) = {b1 , b2 , b3 } ;
dom ( C ) = {c1 , c2 } ;
Determinare
r s, r s, r s, s r , r , r , s , s, r s.
rs
rs
A
a1
B
b2
C
c1
rs
sr
A
a1
B
b1
C
c1
a1
b2
c1
a2
b1
c2
a2
b2
c1
a2
b2
c2
A
a2
B
b2
C
c1
a2
b2
c2
A
a1
B
b1
C
c2
A
a1
B
b1
C
c1
a2
b1
c2
A
a1
B
b1
C
c2
a1
b2
c2
a1
b2
c2
a1
b3
c1
a2
b1
c1
a1
b3
c2
a2
b2
c1
a2
b1
c1
a2
b2
c2
a2
b2
c1
a2
b2
c2
a2
b3
c1
a2
b3
c2
r
A
a1
s
A
a1
B
b1
C
c1
a1
b1
c2
a1
b2
c2
c1
a2
b1
c1
b3
c2
a2
b1
c2
b1
c1
a2
b1
c2
a2
b2
c2
a2
b3
c1
a2
b3
c2
A
a1
B
b1
C
c1
A
a1
B
b2
a1
b1
c1
a2
b2
c1
a1
b1
c1
a2
b2
c2
a1
b2
c1
a1
b2
c1
a1
b2
c1
a2
b2
c1
a1
b2
c1
a2
b2
c2
a2
b1
c2
a1
b2
c1
a2
b1
c2
a2
b2
c1
a2
b1
c2
a2
b2
c2
C
c1
2. esercizio.
Dato uno schema X ( A, B,) sotto quali operazioni booleanee chiuso linsieme delle possibili
relazioni di schema r : R ( X ) .
Linsieme delle possibili relazioni r non chiuso rispetto al prodotto cartesiano e al complemento.
Infatti partendo come esempio dalle relazioni dellesercizio precedente, notiamo che il prodotto
cartesiano r s non rispetta lo schema X ( A, B, C ) : in generale il grado del prodotto cartesiano tra
due relazioni maggiore del grado delle singole relazioni.
Pu accadere che se il dominio di un attributo dello schema di una relazione non sia finito, cio
linsieme degli elementi atomici per il dominio infinito, allora il complemento della relazione ha
cardinalit infinita.
PAG. 1
PAG. 2
3.
esercizio.
4.
Date le relazioni R : ( K , X ) e S : ( K , X ) .
Per quali tra queste operazioni la chiave primaria resta tale ?
AB ( r )
BC ( s )
r
r
s
A= A
A= A
B B
B B
a1
K ( R)
BC ( s )
b1
b2
c1
K
k1
X
x1
b2
c2
k2
x2
k2
x1
k3
kn
x1
xm
k3
kn
x4
xm
K
k1
X
xs
a1
b2
b1
a1
b2
c1
D B ( s )
a1
b1
c1
b2
c1
a1
b2
c1
b2
c1
a2
b1
c2
b2
c1
a2
b1
c2
b2
c2
a1
b1
a1
b1
a1
a1
b1
c1
b2
a1
b2
c1
b2
RS
a2
b1
c2
b2
c1
a1
b2
c1
c1
a2
b2
c1
b1
c1
a2
b2
c2
a2
b1
c2
a1
b2
c1
a2
b1
c2
a2
b2
c1
a2
b1
c2
a2
b2
c2
a1
b1
c1
a1
b2
c1
a2
b1
c2
a2
b2
c1
a2
b2
c2
finita )
a2
(R
R S, R S, R S,
D C ( s )
AB ( r )
D B ( s )
esercizio.
D C ( s )
a1
b2
c1
no
rs
K
ki
X
xr = xs
ki +1
xr = xs
kn
xs
k j 1
xr = xs
k1
xs
kj
xr = xs
Chiave duplicata
si
si
si in quanto R S
esercizio.
PAG. 3
X
x1
RS R
RS
K (R)
5.
si
K
k1
A=A
B=B
CD EF ( S )
PAG. 4
8. esercizio.
Siano date le seguenti relazioni r ( A, B, X ) e s ( A, C , Y ) verificare se le seguenti ugualianze siano
valide:
Non danno relazioni equivalenti in quanto gli schemi delle due espressioni sono differenti:
E1 R
E2 R
S
A=A
B=B
CD EF ( S )
E1 ( A, B, C , D, E , F )
mentre
E2 ( A, B, C , D, C , D )
6.
a)
B =b ( r
s ) = B =b ( r )
b)
B =b ( r
s ) = C B ( r )
c)
ABC ( r
s ) = AB ( r ) AC ( s )
d)
ABC ( r
s ) = AB ( r ) C ( s )
e)
ABC ( r
s ) = AB ( r ) C ( s )
esercizio.
s = A= a ( r )
t = Bb ( r )
v = AB ( r )
B = b ( B C ( s ) )
a)
b)
c)
Vero : perch gli schemi delle due relazioni contengono come attributo in comune
lattributo A, pertanto valida luguaglianza:
ABC ( r s ) = AB ( r ) AC ( s ) .
d)
e)
Falso: in quanto non ha senso parlare di unione di due relazioni che hanno schemi differenti.
Sia N = r allora:
0 s 1, 0 t N , v = N .
7. esercizio.
Date due relazioni r e s
r
A
a1
B
b1
C
c1
a2
b2
a3
a2
B
b1
C
c1
c1
b2
c1
b3
c2
b2
c2
b1
c1
a1
b2
c2
a2
b2
c2
Determinare
q = rs
A
a2
t = r C ( s)
A
a2
B
b2
PAG. 5
PAG. 6
9. esercizio.
10.
esercizio.
a)
b)
a)
b)
a) Le frecce indicano il riferimento esterno (chiavi esterne) per le quali si definiscono i vincoli
di integrit referenziale per lo schema del database in questione.
Docente . DNome,Docente. D#
( Docente )
Frequenza
( Docente ) )
Progetto . P# ( Progetto . PNome = ' DB ' ( Progetto ) ) Progetto . P#=Assegnazione.Progetto# Assegnazione
- Impiegato. INome
- Impiegato. INome
((
))
PAG. 7
PAG. 8
Parte Fisica
11.
1. esercizio.
Applicare la compressione frontale, posteriore e totale ai seguenti dati, considerando 12 caratteri er
nome: FERRARA FERRARESE FERRARINI FERRARINO FERR.
esercizio.
La compressione generalmente utilizzata per ridurre lo spazio richiesto da strutture (archivi
primari) o sovrastrutture (indici o archivi primari con indici non densi) ad accesso sequenziale.
F
F
F
F
F
Tutti i set nel sistema DBTG (Data Base Task Group) in cui lOWNER SYSTEM sono set
singolari hanno ununica occorenza per lowner. Un set per definizione un modo di rappresentare
e gestire le relazioni tra le entit. Il gruppo primario nel DBTG detto Owner (o padre, o master), il
secondario detto Member (o figlio, o slave) del set,
E
E
E
E
E
R
R
R
R
R
R
R
R
R
R
A
A
A
A
R
R
R
R
b/
A
E
I
I
b/
b/
S
N
N
b/
b/
E
I
O
b/
b/
b/
b/
b/
b/
b/
b/
b/
b/
b/
b/
b/
b/
b/
b/
(Facoltativo)
Memoria occupata : 60 caratteri
Compressione frontale:
0 F E R R A R A b/ b/ b/ b/ b/ 6 E S E b/ b/ b/ 6 I N I b/ b/ b/ 8 O b/ b/ b/ 4 b/ b/ b/ b/ b/ b/ b/
B ( R ) B ( R ) C ( B C ( R ) )
B <C
07FERRARA63ESE63INI81O41
Memoria occupata : 25 caratteri
Compressione totale:
07FERRARA61E 63INI81O41
Memoria occupata : 23 caratteri
Fase di decompressione :
F
F
F
F
F
PAG. 9
E
E
E
E
E
R
R
R
R
R
R
R
R
R
R
A
A
A
A
R
R
R
R
?
A
E
I
I
?
?
?
N
N
?
?
?
I
O
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
PAG. 10
2. esercizio.
3. esercizio.
Il metodo dellistogramma della frequenza degli elementi consiste nel determinare loccorenza in
R degli N valori distinti (chiavi) nellarchivio.
N =9
N = 5
Le chiavi distinte sono:
k1 = 4, k2 = 5, k3 = 6, k4 = 15, k5 = 18
Il vettore delle occorenze risulta:
O = {1, 3, 1, 3, 1}
graficamente:
3
Frequenze
1
4
15
k1
k2
k3
k4
k5
k6
k7
k8
18
i 1
Sostituisco il vettore O con il vettore I delle somme parziali dei suoi elementi I i = O j
j =1
I = {0, 1, 4, 5, 8}
1
2
3
4
5
1
2
3
15
15
15
18
18
4
5
6
7
8
9
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
18
18
18
18
18
18
Sia =
d1
7
0
1
1
4
d2
1
5
6
2
0
d3
0
3
1
2
3
d4
0
0
0
3
1
N 8
= = 2 e lo scarto medio delle occorenze dei digit:
D 4
D
j =
1 =
2 =
PAG. 11
7 2 + 1 2 + 0 2 + 0 2
4
0 2 + 5 2 + 3 2 + 0 2
4
Q ( j, l )
l =1
5 +1+ 2 + 2 5
=
4
2
2 + 3 +1+ 2
=
=2
4
PAG. 12
1 2 + 6 2 + 1 2 + 0 2
1+ 4 +1+ 2
=2
4
1+ 0 + 0 +1 1
4 =
=
=
4
4
2
4 2 + 0 2 + 3 2 + 1 2 2 + 2 +1+1 3
=
=
5 =
4
4
2
3 =
4
1 2 + 2 2 + 2 2 + 3 2
(a)
(b)
(a) Analisi per colonne (Liste invertite binarie LIB indici binari relativi ad una propriet)
ordinando il vettore
( 1 , 2 , 3 , 4 , 5 ) =
5
1 3 1 3
5
, 2, 2, , , , 2, 2, = ( 4 , 5 , 2 , 3 , 1 )
2 2 2 2
2
2
essendo t = 2 la trasformazione definita come estrazione ordinata da ciascun valore ki dei digit in
posizione 4 e 5.
R = {k1 = 31, k2 = 41, k3 = 33, k4 = 44, k5 = 43, k6 = 21, k7 = 11, k8 = 23}
Dato il seguente archivio primario e gli opportuni indici binari, effettuare lanalisi sia per colonne
che per righe per risolvere linterrogazione Q : determinare gli impiegati di livello diverso dal 7
con stipendio inferiore a 2.000K, et maggiore o uguale a 25 e minore o uguale a 30 e numero figli
1 oppure 0.
Nome
Rossi
Bianchi
Neri
Verdi
Chiari
Scuri
Livello
7
5
7
6
5
6
Stipendio
2.600K
1.800K
2.500K
2.000K
1.900K
1.850K
Et
34
25
30
28
28
30
Figli
2
0
2
1
1
1
p1 Livello = 7
p2 Stipendio < 2.000 K
p3 Et 25
p4 Et 30
p5 Figli = 0
p6 Figli = 1
Insieme di propriet
p1
1
0
0
0
0
0
p2
0
1
0
0
1
1
p3
1
1
1
1
1
1
p4
0
1
1
1
1
1
p5
0
1
0
0
0
0
Una LIB un indice binario relativo ad una propriet p . Sia I insieme degli indirizzi logici dei
valori 1 nella LIB.
Q = B ( p1 , p2 , p3 , p4 , p5 , p6 ) = not ( p1 ) and ( p2 ) and ( p3 ) and ( p4 ) and ( ( p5 ) or ( p6 ) ) ;
not (100000 ) and ( 010011) and (111111) and ( 0111111) and ( ( 010000 ) or ( 000111) ) ;
I = {4,5}
4. esercizio.
Codice
243A
345A
540B
985C
435A
765C
p6
0
0
0
1
1
1
Index Codice
0
1
2
3
4
5
243A
345A
540B
985C
435A
765C
Q = B ( p1 , p2 , p3 , p4 , p5 , p6 ) = p1 p2 p3 p4 ( p5 + p6 ) = p1 p2 p3 p4 p5 + p1 p2 p3 p4 p6 = FTTTTI + FTTTIT
1
0
Q
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
Nome
Rossi
Bianchi
Neri
Verdi
Chiari
Scuri
Archivio Primario
PAG. 14
5. esercizio.
Hash estendibile: Si assuma c = 3 (capacit di un blocco), la funzione hash da h ( k ) = 5 K 2 (cio, la
rappresentazione binaria su 5 bit della chiave K), e si abbia la seguente configurazione attuale:
Profondit
globale
Profondit
locale
p=3
Profondit
globale
Profondit
locale
DIRECTORY
p=2
000
DIRECTORY
11
p'=1
01
17
20
18
p'=2
11
25
24
17
18
p'=3
25
24
p'=2
p'=2
011
100
10
001
010
00
p'=2
11
p'=2
101
110
20
111
p'=3
21
6. esercizio.
Considero i valori hash per le chiavi presenti nei vari bucket :
h ( 0 ) = 00000
h (17 ) = 10001
h ( 6 ) = 00110
h (18 ) = 10010
h (11) = 01011
h ( 25 ) = 11001
h ( 20 ) = 10100
h ( 24 ) = 11000
00
01
10
11
p'=2
17
20
18
p'=2
25
24
11
01
02
03
04
05
512
30
731
6647
2385
112
3270
289
717
1075
2665
1176
841
72
6851
7830
2840
569
563
06
07
08
147
286
287
848
Profondit
locale
DIRECTORY
00
p'=2
Lidea di base dellhash lineare quella di consentire a un file hash di espandere e ridurrre
dinamicamente il suo numero di bucket senza aver bisogno di una directory.
p'=2
PAG. 16
00
01
02
03
04
05
287
512
30
731
6647
2385
112
3270
289
717
1075
2665
1176
841
72
6851
7830
2840
00
06
286
01
02
03
04
05
512
30
731
6647
2385
06
112
3270
289
717
1075
2665
1176
841
72
6851
7830
2840
07
147
286
287
563
Causa dello sdoppiamento del primo bucket dato dallinserimento della chiave 569 oppure
della chiave 563.
Viene inserito il valore 569 che causa un trabocco e conseguente sdoppiamento dei bucket:
P
00
00
01
02
03
04
05
512
30
731
6647
2385
112
3270
289
717
1075
2665
1176
841
72
6851
7830
2840
06
286
07
01
02
03
04
05
512
30
731
6647
2385
112
3270
289
717
1075
2665
1176
841
72
6851
7830
2840
569
563
06
07
08
147
286
287
287
563
Il bucket di indirizzo 00 viene sdoppiato e gli elementi vengono risistemati nel primo e ultimo
bucket. I bucket originariamente nel bucket 00 sono distribuiti tra i due bucket sulla base di una
diversa funzione hash hi +1 ( K ) = K mod 2 M . p viene incrementato di 1: p = 1 .
Calcolo i valori hash per le chiavi interessate ottenendo gli indirizzi relativi:
(b) Considero il seguente algoritmo di ricerca per lhash lineare (semplice funzione in Pascal):
function findKey(key,p,M:integer):integer;
var m:integer;
begin
if p=0 then
m:=key mod (2^p*M)
else
begin
m:=key mod (2^p*M);
if m<p then m:=key mod (2^(p+1)*M);
end;
findKey:=m;
end.
Attraverso la funzione ottengo lindirizzo del bucket relativa in cui inserire lelemento 3280:
ind:=findKey(3280,2,7);
restituisce il valore 4. Il bucket interessato il bucket con indirizzo 04;
PAG. 17
PAG. 18
Indice di Cilindro
P
00
01
02
512
47
03
04
05
731
6647
2385
112
3270
289
717
1075
2665
1176
841
569
6851
7830
2840
06
07
08
0000
83
0100
dummy
0001
11
09
287
30
848
0000
72
COCR
11
Normale
563
3280
47
29
0002
29
47
Overflow
dummy
7. esercizio.
Sia R = {1,3,5, 7, , 79,81,83} .Si abbiano 3 cilindri, 5 tracce per cilindro di cui 3 per larea
primaria. Ogni traccia primaria contiene fino a 5 record. Costruire lorganizzazione ISAM su R .
Successivamente inserire le chiavi 26 e 62.
0001
11
0002
13
17
19
23
29
0003
31
37
41
43
47
0004
Il Metodo di Accesso Sequenziale con Indice (Index Sequential Access Method) definisce una
struttura in cui vi :
Indice di Cilindro
47
I 3 cilindri sono individuati attraverso gli indirizzi 00 per il primo, 01 per il secondo, 02 per il terzo
ed ultimo cilindro.
La traccia 0000 di ciascun cilindro riservata a contenere lultimo livello dellindice relativo ai dati
primari memorizzati nel cilindro.
Le tracce 0001,0002,0003 costituiscono larea primaria del cilindro.
La traccia 0004 riservata come area di overflow per i dati primari che, per successivi inserimenti,
non trovino posto nellarea primaria del cilindro. In aggiunta allarea di overflow di ciascun
clilindro esiste un area separata (cilindro 02), detta area di overflow indipendente, destinata a
contenere i dati primari in overflow di tutti i cilindri.
0000
83
0100
dummy
0101
71
COCR
71
Normale
83
0102
83
dummy
Overflow
49
53
59
67
71
0102
73
77
79
81
83
0103
0104
Nellindice di traccia vi un record speciale detto COCR (Cylinder Overflow Control Record)
che contiene lindirizzo dellultimo record posto in overflow ed il numero di byte non utilizzati.
Configurazione successiva allinserimento delle chiavi 26 e 62.
PAG. 19
PAG. 20
0003
8. esercizio.
Indice di Cilindro
47
0000
83
0100
R = {10,15,30, 27,35, 40, 45,37, 20,50,55, 46, 71, 66, 74,85,90, 79, 78, 95, 25,81, 68, 60, 65} .
Sia
dummy
Costruire su R gli alberi B e B + di ordine p = 5 mediante inserimento delle chiavi nellordine dato.
Indice di Traccia (del cilindro 00)
0000
COCR
11
0001
11
Normale
47
26
0002
26
0004
47
0003
Albero B
Overflow
46
dummy
puntatori ai dati
27
11
0002
13
17
19
23
26
0003
31
37
41
43
47
0004
29
10
15
20
25
0000
83
0100
dummy
66
40
30
Indice di Cilindro
47
37
50
45
55
60
79
66
35
81
68
71
74
85
90
95
78
Albero B +
46
COCR
67
0101
67
Normale
83
0102
83
dummy
20
Overflow
27
37
30
35
60
66
74
79
49
53
59
62
67
0102
73
77
79
81
83
10
15
0103
0104
20
25
27
37
40
50
45
46
55
60
68
65
71
66
74
81
78
85
90
95
79
71
puntatori ai dati
PAG. 21
PAG. 22