Vorlesung Datenbanksysteme vom
27.10.2004
Prüfungsvorbereitung: Physische
Datenorganisation und
Anfragebearbeitung
Beispiel
 Nested loop join verwenden.
s.Semester
 Relationengrößen
 |p|=800
 |s|=38000
Ap.PersNr=v.gelesenVon
 |v|=2000
 |h|=60000
 Durchschn Tupelgrößen
 p: 50 Bytes
 S: 50 Bytes
Av.VorlNr=h.VorlNr
 v: 100 Bytes
 h: 16 Bytes
p.Name = ´Sokrates´
 Selektivitäten
 Sel[sh] = 2.6 * 10^-5
 Sel[hv] = 5 * 10^-4
p
As.MatrNr=h.MatrNr
 Sel[vp] = 1.25 * 10^-3
v
 Sel[p.Name=...] =1.25 * 10^-3
 Seitengröße 1024 Bytes
s
h
 Hauptspeicher m = 20 Seiten
2
Beispiel
 Nested loop join verwenden.
 Relationengrößen
 |p|=800
 |s|=38000
 |v|=2000
 |h|=60000
 Durchschn Tupelgrößen
 p: 50 Bytes
 S: 50 Bytes
 v: 100 Bytes
 h: 16 Bytes
 Selektivitäten
 Sel[sh] = 2.6 * 10^-5
 Sel[hv] = 5 * 10^-4
 Sel[vp] = 1.25 * 10^-3
 Sel[p.Name=...] =1.25 * 10^-3
 Seitengröße 1024 Bytes
 Hauptspeicher m = 20 Seiten
#Tupel pro Seite:
p: b1024/50c =20
s: b1024/50c = 20
v: b1024/100c = 10
h: b1024/16c = 64
(Seitenoverhead wird ignoriert)
#Seiten:
p: 800/20 = 40
s: 38000/20 = 1900
v: 2000/10 = 200
h: d60000/64e = 938
(Wir ignorieren den Overhead
des Primaerindex.)
3
s.Semester
Beispiel
NL -
NL -
NL -
Ap.PersNr=v.gelesenVon
Av.VorlNr=h.VorlNr
p.Name = ´Sokrates´
As.MatrNr=h.MatrNr
s
v
Access(p)
h
4
s.Semester
Beispiel
NL -
NL -
NL -
Ap.PersNr=v.gelesenVon
Av.VorlNr=h.VorlNr
p.Name = ´Sokrates´
As.MatrNr=h.MatrNr
s
v
Access(p)
h
5
s.Semester
Beispiel
NL -
NL -
NL -
Ap.PersNr=v.gelesenVon
Av.VorlNr=h.VorlNr
p.Name = ´Sokrates´
As.MatrNr=h.MatrNr
s
v
Access(p)
h
6
s.Semester
Beispiel
NL -
NL -
NL -
Ap.PersNr=v.gelesenVon
Av.VorlNr=h.VorlNr
p.Name = ´Sokrates´
As.MatrNr=h.MatrNr
s
v
Access(p)
h
7
s.Semester
Beispiel
NL -
NL -
NL -
Ap.PersNr=v.gelesenVon
Av.VorlNr=h.VorlNr
p.Name = ´Sokrates´
As.MatrNr=h.MatrNr
s
v
Access(p)
h
8
s.Semester
Beispiel
NL -
NL -
NL -
Ap.PersNr=v.gelesenVon
Av.VorlNr=h.VorlNr
p.Name = ´Sokrates´
As.MatrNr=h.MatrNr
s
v
Access(p)
h
9
s.Semester
Beispiel
NL -
NL -
NL -
Ap.PersNr=v.gelesenVon
Av.VorlNr=h.VorlNr
p.Name = ´Sokrates´
As.MatrNr=h.MatrNr
s
v
Access(p)
h
10
s.Semester
Beispiel 2
NL -
NL -
NL -
As.MatrNr=h.MatrNr
Av.VorlNr=h.VorlNr
s
Ap.PersNr=v.gelesenVon
h
p.Name = ´Sokrates´
v
Access(p)
11
s.Semester
Beispiel 2
NL -
NL -
NL -
As.MatrNr=h.MatrNr
Av.VorlNr=h.VorlNr
s
Ap.PersNr=v.gelesenVon
h
p.Name = ´Sokrates´
v
Access(p)
12
s.Semester
Beispiel 2
NL -
NL -
NL -
As.MatrNr=h.MatrNr
Av.VorlNr=h.VorlNr
s
Ap.PersNr=v.gelesenVon
h
p.Name = ´Sokrates´
v
Access(p)
13
s.Semester
Beispiel 2
NL -
NL -
NL -
As.MatrNr=h.MatrNr
Av.VorlNr=h.VorlNr
s
Ap.PersNr=v.gelesenVon
h
p.Name = ´Sokrates´
v
Access(p)
14
s.Semester
Beispiel 2
NL -
NL -
NL -
As.MatrNr=h.MatrNr
Av.VorlNr=h.VorlNr
s
Ap.PersNr=v.gelesenVon
h
p.Name = ´Sokrates´
v
Access(p)
15
s.Semester
Beispiel 2
NL -
NL -
NL -
As.MatrNr=h.MatrNr
Av.VorlNr=h.VorlNr
s
Ap.PersNr=v.gelesenVon
h
p.Name = ´Sokrates´
v
Access(p)
16
Beispiel 3
Access( )
17
Beispiel 3
Access( )
18
Beispiel 3
Access( )
19
Beispiel 3
Access( )
20
Beispiel 3
Access( )
21
Beispiel 3
Access( )
22
Beispiel 3
Access( )
23
Beispiel 3
Access( )
24
Beispiel 3
Access( )
25
Beispiel 3b
Access( )
26
Beispiel 3c
Access( )
27
Beispiel 3d
Access( )
28
Beobachtungen
 Joinreihenfolgen haben SEHR großen Einfluß auf die
Queryevaluationszeiten!
 Man kann Kosten von Operationen und Größen von
(Zwischen)resultaten GETRENNT berechnen.
Die Wahl eines Joinoperators hat nur lokalen Einfluss auf die
Laufzeit der Query, außer er zerstört eine für weitere
Operationen wichtige Eigenschaft der Daten wie Sortierung.
29
Beispiel 4: Selektivitätsabschätzungen
Diesmal sind keine Selektivitäten gegeben,
dafür ist bekannt, daß
• Professoren (p) in einem 1:n Verhältnis mit
Vorlesungen (v) stehen (mit Fremdschlüssel
gelesen_von).
• Jeder Professor entweder Grad
„Ordinarius“ oder „Extraordinarius“ hat.
v
Access(p)
30
Beispiel 4: Selektivitätsabschätzungen
v
Access(p)
31
Beispiel 4b: Selektivitätsabschätzungen
v
Es ist besser, den Index
NICHT zu verwenden!
Access(p)
32
Beispiel 5: Ballungen (Clusters)
p
v
33
Beispiel 6: Seeks
v
p
34

Pruefungsvorbereitung: Anfragebearbeitung ()