chapter06.pdf
-
Upload
miki-bundesmaca -
Category
Documents
-
view
5 -
download
0
Transcript of chapter06.pdf
-
Anwendersoftware (AS) Anwendersoftware (AS)
Datenbanken und Informationssysteme
Kapitel 6: Zugriffspfade
Bernhard Mitschang Universitt Stuttgart
Wintersemester 2013/2014
Teile zu diesem Folienskript beruhen auf einer hnlichen Vorlesung, gehalten von Prof. Dr. T. Hrder am Fachbereich Informatik der Universitt Kaiserslautern und Prof. Dr. N. Ritter am Fachbereich Informatik der Universitt Hamburg. Fr dieses Skriptum verbleiben alle Rechte (insbesondere fr Nachdruck) bei den Autoren.
-
Eindimensionale Zugriffspfade
2
bersicht
Ziele Anforderungen und Klassifikation Zugriffspfade fr Primrschlssel
Mehrwegbume - B-Bume - B*-Bume
Hash-Verfahren - Statische Verfahren - Erweiterbares Hashing
Zugriff ber Sekundrschlssel Einstiegs- und Verknpfungsstruktur Einsatz von Zeigerlisten und komprimierten Bitlisten
Hierarchische Zugriffspfade und verallgemeinerte Zugriffspfadstruktur Mehrdimensionale Zugriffspfade
-
Eindimensionale Zugriffspfade
3
Eindimensionale Zugriffspfade
Ziele Entwurfsprinzipien fr Zugriffspfade auf die Stze einer Tabelle,
bei denen ein Suchkriterium untersttzt wird Abbildungsmglichkeiten fr hierarchische Zugriffsanforderungen
Wichtige Kenngren: n = Anzahl der Stze eines Satztyps b = mittlere Anzahl der Stze pro Seite (Blockungsfaktor) q = Anzahl der Treffer einer Anfrage NS = Anzahl der Seitenzugriffe NB = Anzahl der Blattseiten eines B*-Baums hB = Hhe des B*-Baums
-
Eindimensionale Zugriffspfade
4
Anforderungen an Zugriffspfade
Folgende Arten von Zugriffen sollen untersttzt werden: Sequentieller Zugriff auf alle Stze eines Satztyps (Scan) Select * From Pers Sequentieller Zugriff in Sortierreihenfolge eines Attributs ... Order by Name Direkter Zugriff ber den Primrschlssel ... Where Pnr = 0815 Direkter Zugriff ber einen Sekundrschlssel ... Where Beruf = Programmierer Direkter Zugriff ber zusammengesetzte Schlssel und
komplexe Suchausdrcke (Wertintervalle, ...) ... Where Gehalt Between 50K And 100K Navigierender Zugriff von einem Satz zu einer dazugehrigen Satzmenge
desselben oder eines anderen Satztyps ... Where P.Pnr = A.Pnr
-
Eindimensionale Zugriffspfade
5
Anforderungen an Zugriffspfade
Wenn kein geeigneter Zugriffspfad vorhanden ist, sind alle Zugriffsarten durch fortlaufende Suche (Scan) abzuwickeln
Scan: muss von allen DBMS untersttzt werden! ist ausreichend / effizient bei:
- kleinen Satztypen (z. B. 5 Seiten) - Anfragen mit groen Treffermengen (z. B. > 3%)
DBMS kann Prefetching zur Scan-Optimierung nutzen
-
Eindimensionale Zugriffspfade
6
bersicht
Ziele Anforderungen und Klassifikation Zugriffspfade fr Primrschlssel
Mehrwegbume - B-Bume - B*-Bume)
Hash-Verfahren - Statische Verfahren - Erweiterbares Hashing
Zugriff ber Sekundrschlssel Einstiegs- und Verknpfungsstruktur Einsatz von Zeigerlisten und komprimierten Bitlisten
Hierarchische Zugriffspfade und verallgemeinerte Zugriffspfadstruktur Mehrdimensionale Zugriffspfade
-
Eindimensionale Zugriffspfade
7
Klassifikation
physisch logisch
fortlaufender baumstrukturierter konstante dynamische
Schlsselvergleich Schlsseltransformation
sequentielle Speicherungsstrukturen Baumstrukturen
gestreute Speicherungsstrukturen
Zugriffspfade fr Primrschlssel
sequentielle Listen
gekettete Listen Mehrwegbume
statische Hash-Bereiche
dynamische Hash-Bereiche
-
Eindimensionale Zugriffspfade
8
Mehrwegbume
hnliche Konzepte: Binre Suchbume
- geeignete Regeln der Seitenzuordnung fehlen
Vorfahr: ISAM - Stze in physisch sequentiellen Blockstrukturen - mehrstufige Indextabellen - statische Organisation - aufwndiger nderungsdienst - periodische Reorganisation
A
H
R C
E
S
A C E H R S Block
Indextabellen
-
Eindimensionale Zugriffspfade
9
B-Baum, B*-Baum
Merkmale: Knoten = Seite = Transporteinheit zum Externspeicher referenzierte und materialisierte Speicherung der Datenstze dynamische Reorganisation durch Splitten und Mischen von Seiten Balancierte Struktur
- unabhngig von Schlsselmenge - unabhngig von Einfgereihenfolge
Funktion direkter Schlsselzugriff sortiert sequentieller Zugriff
Realisierung von Index-organisierten Tabellen oft nach Primrschlssel geordnet Cluster-Bildung durch eingebettete Datenstze
-
Eindimensionale Zugriffspfade
10
B-Baum
Def.: Ein B-Baum vom Typ (k, h) ist ein Baum mit folgenden Eigenschaften: 1. Jeder Weg von der Wurzel zum Blatt hat die Lnge h 2. Jeder Zwischenknoten hat mindestens k+1 Shne. Die Wurzel ist ein Blatt oder hat mindestens 2 Shne 3. Jeder Knoten hat hchstens 2k+1 Shne
Seitenformat:
Zi = Zeiger Sohnseite Si = Schlssel Di = Daten des Satzes oder Verweis auf den Satz (materialisiert oder referenziert)
Beispiel:
bei 4KB Seiten:
Z=4 B, S=4 B, D=92 B 100 B pro Eintrag ca. 40 Shne Z=4 B, S=4 B, D=4 B 12 B pro Eintrag ca. 330 Shne
Z0 S1 D1 Z1 S2 D2 Z2 Sm Dm Zm frei
6
3 8
9 7 4 5 2
-
Eindimensionale Zugriffspfade
11
B*-Baum
Def.: Ein B*-Baum vom Typ (k, k*, h) ist ein Baum mit folgenden Eigenschaften: 1. Jeder Weg von der Wurzel zum Blatt hat die Lnge h 2. Jeder Zwischenknoten hat mindestens k+1 Shne. Die Wurzel ist ein Blatt oder hat mindestens 2 Shne.
Jedes Blatt hat mindestens k* Eintrge. 3. Jeder Zwischenknoten hat hchstens 2k+1 Shne. Jedes Blatt hat hchstens 2k* Eintrge.
Zwischenknoten:
Zi = Zeiger Sohnseite, Si = Schlssel
Blattknoten: Di = Verweis auf Satz
(materialisiert oder referenziert) N = Nachfolger-Zeiger V = Vorgnger-Zeiger
Z=4 B, S=4 B 8 B pro Eintrag ca. 500 Shne bei 4 KB Seite
Z0 S1 Z1 S2 Z2 Sm Zm frei
V S1 D1 S2 D2 Sm Dm frei N
2 9
3 4
5 6
7 8
2 4 6 8
-
Eindimensionale Zugriffspfade
12
Mehrwegbume
Reduktion der Hhe durch Verbesserung der Baumbreite (fan-out) Schlsselkomprimierung Nutzung von Wegweisern in B*-Bumen Prfix-B-Bume
Verbesserung des Belegungsgrades verallgemeinertes Splittingverfahren mit Split-Faktor m
-
Eindimensionale Zugriffspfade
13
Splitting bei B*-Bumen
Split-Faktor m
Verbesserung des Belegungsgrades: m 3: sonst zu aufwendig!
P i P k P i
m = 1 P i+1 P i
P i P k P i+1
m = 2
1 + 1
Belegung
worst case:
avg. case:
2 + 1 m + 1
ln 2 (69 %) m ln m+1 m
1 _____
m = 1 m = 2 m
2 _____ m _____
P i+1
P i+1
P i
P i
P k
P i-1
P i-1
1 2
m = 3
-
Eindimensionale Zugriffspfade
14
Suche in der Seite
Interne Struktur sei eine Liste mit n Eintrgen sequentielle Suche
sortierte oder ungeordnete Schlsselmenge Cavg (n) n/2 nur geringe Verbesserungen auf sortierten Listen (bei erfolgloser Suche)
Binrsuche wesentlich effizienter (Divide-and-Conquer-Strategie) Voraussetzung: Sortierung und Eintrge fester Lnge Cavg (n) log2 (n+1) - 1 fr groe n
1 n
-
Eindimensionale Zugriffspfade
15
Suche in der Seite
Sprungsuche Voraussetzung: Sortierung und Eintrge fester Lnge Prinzip: zunchst wird Liste in Sprngen von m Eintrgen berquert, um Abschnitt
zu lokalisieren, der ggf. den gesuchten Schlssel enthlt danach wird der Schlssel im gefundenen Abschnitt nach irgendeinem
Verfahren gesucht
wenn ein Sprung a und ein sequentieller Vergleich b Einheiten kostet
)1(21
21)( += mb
mnanC avg
1 n
-
Eindimensionale Zugriffspfade
16
Zugriff zu allen Stzen eines Satztyps
Tabellen-Scan Wurzelseite Zwischenseiten Blattseiten Datenseiten
Index-Scan mit Cluster-Bildung
Index-Scan ohne Cluster-Bildung
25 61
8 13 33 45 77 85
IAbt(Anr)
25 61
8 13 33 45 77 85
IPers(Anr)
Datenseiten
-
Eindimensionale Zugriffspfade
17
bersicht
Ziele Anforderungen und Klassifikation Zugriffspfade fr Primrschlssel
Mehrwegbume - B-Bume - B*-Bume
Hash-Verfahren - Statische Verfahren - Erweiterbares Hashing
Zugriff ber Sekundrschlssel Einstiegs- und Verknpfungsstruktur Einsatz von Zeigerlisten und komprimierten Bitlisten
Hierarchische Zugriffspfade und verallgemeinerte Zugriffspfadstruktur Mehrdimensionale Zugriffspfade
-
Eindimensionale Zugriffspfade
18
Hash-basierte Zugriffspfade
Merkmale: Nutzung der Schlsseltransformation als Entwurfsprinzip fr Zugriffspfade auf
die Stze einer Tabelle bei denen ein Suchkriterium untersttzt wird. Einschrnkung auf Schlsselzugriff, keine Bereichssuche usw. Idealerweise 1 Seitenzugriff
Wichtige Kenngren: n = Anzahl der Stze eines Satztyps b = Anzahl der Stze pro Bucket (Kapazitt) N = Anzahl der Buckets = Belegungsfaktor
-
Eindimensionale Zugriffspfade
19
Hash-Funktion h: S {0, 1, ..., N-1} S = Schlsselraum
N = Gre des statischen Hash-Bereichs in Seiten (Buckets)
Idealfall: h ist injektiv (keine Kollisionen) nur in Ausnahmefllen mglich (dichte Schlsselmenge) jeder Satz kann mit einem Seitenzugriff gefunden werden
Statische Hash-Bereiche mit Kollisionsbehandlung vorhandene Schlsselmenge
K (K S) soll mglichst gleichmig auf die N Buckets verteilt werden
Behandlung von Synonymen - Aufnahme im selben Bucket,
wenn mglich - ggf. Anlegen und Verketten
von berlaufseiten
typischer Zugriffsfaktor: 1.1 bis 1.4 Vielzahl von Hash-Funktionen anwendbar
z. B. Divisionsrestverfahren, Faltung, Codierungsmethode, ...
Gestreute Speicherungsstrukturen (Hash-Verfahren)
A Z Ki
Speicherverteilung N-1
Bucket(i)
0 Schlssel- verteilung
Verdichtung (Randomizing)
-
Eindimensionale Zugriffspfade
20
Statisches Hash-Verfahren mit berlaufbereichen
Adressberechnung fr Schlssel K02:
1101 0010 1111 0000 1111 0010 1101 0000 = 20810
208 mod 5 = 3
K36
K41
K55
K86
K67
K78
K29
K35
K53
K95
K02
K16
K25
K43
K03
K26
K47
K51
K88
K58
K91
relative Seitennummer
0
1
2
3
4
-
Eindimensionale Zugriffspfade
21
Belegung von Hash-Bereichen Messung
20000
Anzahl Buckets
Anzahl Stze (Schlssel)
5000 10000 15000
600
1200
1800
2400
Population = 100 %
Primrbereich: 2000 Buckets
Kapazitt b: 5
Anzahl der Schlssel: 20.000
Datentyp des Schlssels: Integer
Ideale Hash-Funktion: h(i) = i mod N 1 i 20.000
berlauf- Buckets
Leere Buckets im Primrbereich
-
Eindimensionale Zugriffspfade
22
Belegung von Hash-Bereichen Messung
20000
Anzahl Buckets
Anzahl Stze (Schlssel)
5000 10000 15000
600
1200
1800
2400
Population = 100 %
Primrbereich: 2000 Buckets
Kapazitt b: 5
Anzahl der Schlssel: 20.000
Datentyp des Schlssels: Integer
Schlechte Hash-Funktion: h(Ki) = Ki mod N Ki ist die Zeichen- darstellung von i
Leere Buckets im Primrbereich
berlauf- Buckets
-
Eindimensionale Zugriffspfade
23
Externes Hashing ohne berlaufbereiche
Ziel: Jeder Satz kann mit genau einem E/A-Zugriff gefunden werden Gekettete berlaufbereiche knnen nicht benutzt werden
Statisches Hashing: n Stze, N Buckets mit Kapazitt b Belegungsfaktor
berlaufbehandlung Open Adressing (ohne Kette oder Zeiger) Bekannteste Schemata: Lineares Sondieren und Double Hashing Sondierungsfolge fr einen Satz mit Schlssel k:
- H(k) = (h1(k), h2(k), , hn(k)) - bestimmt berprfungsreihenfolge der Buckets (Seiten) beim Einfgen und Suchen - wird durch k festgelegt und ist eine Permutation der Menge der Bucketadressen
{0, 1, , n-1}
bNn
=
-
Eindimensionale Zugriffspfade
24
Externes Hashing ohne berlaufbereiche
Erster Versuch: Aufsuchen und Einfgen von k = xy Sondierungsfolge sei H(xy) = (8, 27, 99)
viele E/A-Zugriffe Wie geschieht das Einfgen?
ab
ij
gh
8
uv
cd
no
27
lm
xy
99
-
Eindimensionale Zugriffspfade
25
Externes Hashing mit Separatoren
Zugriffspfad fr Primrschlssel Einsatz von Signaturen
Jede Signatur si(k) ist ein t-Bit Integer Fr jeden Satz mit Schlssel k wird
eine Signaturfolge bentigt: S(k) = (s1(k), s2(k), , sN(k))
Die Signaturfolge wird eindeutig durch k bestimmt
Die Berechnung von S(k) kann durch einen Pseudozufallszahlengenerator mit k als Saat erfolgen (Gleichverteilung der t Bits wichtig)
Nutzung der Signaturfolge zusammen mit der Sondierungsfolge Bei Sondierung hi(k) wird si(k)
benutzt, i = 1,2,,N
Fr jede Sondierung wird eine neue Signatur berechnet!
Sondierungsfolge H(k) = ( h1(k), h2(k) , , hN(k)) H(xz) = ( 8, 27, 99, , 1)
S(xz) = ( 0100, 1100, , 1100) S(k) = ( s1(k), s2(k), , sN(k))
Signaturfolge
Quelle: [LK84]
Bucket adresse
Signatur
-
Eindimensionale Zugriffspfade
26
Externes Hashing mit Separatoren
Einsatz von Separatoren Ein Separator besteht aus t Bits Separator j, j = 0, 1, 2, ..., N-1,
gehrt zu Bucket j Eine Separatortabelle SEP enthlt die
N Separatoren und wird im Hauptspeicher gehalten.
Separatoren entscheiden darber, in welchem Bucket seiner Sondierungsfolge ein Satz tatschlich gespeichert wird.
Speicherungsmodell
1 2 j N
1 2 j N im
HSP
au
f M
P
Separator j
Datenstze in Bj
SEP
Bucket B
-
Eindimensionale Zugriffspfade
27
Nutzung der Separatoren
In welcher Situation sind die Separatoren wichtig? Bucket Bj wird r-mal (r > b) sondiert, d.h. r
Stze sollten nach ihrer Sondierungsfolge in Bj gespeichert werden.
Kapazitt b des Buckets reicht nicht aus. Mindestens (r b) Stze mssen
abgewiesen werden, d.h. sie mssen das nchste Bucket in ihrer Sondierungsfolge aufsuchen.
Beispiel: r=5, b=4
Signaturen: 0001 0011 0100 fr Bucket Bj 0100 1000
1 2 j N
1 2 j N
im H
SP
auf
MP
SEP
Bucket B
-
Eindimensionale Zugriffspfade
28
Nutzung der Separatoren
Fr die Entscheidung, welche Stze im Bucket gespeichert werden, sind die r Stze nach ihren momentanen Signaturen zu sortieren.
Stze mit niedrigen Signaturen werden in Bj gespeichert.
Stze mit hohen Signaturen mssen weitersuchen.
Eine Signatur, die die Gruppe der niedrigen eindeutig von der der hheren Signaturen trennt, wird als Separator j fr Bj in SEP aufgenommen. Separator j enthlt den niedrigsten Signaturwert der Stze, die weitersuchen mssen.
Ein Separator partitioniert also die r Stze von Bj.
Beispiel: b=4, Aufteilung 4:1 Separator: 1000
Signaturen: 0001 0011 0100 0100 1000
1 2 j N
1 2 j N
im H
SP
auf
MP
SEP
Bucket B
-
Eindimensionale Zugriffspfade
29
Nutzung der Separatoren
Wenn die ideale Partitionierung (b, r b) nicht gewhlt werden kann, wird eine der folgenden versucht: (b-1,r-b+1), (b-2,r-b+2), , (0,r)
Ein Bucket mit berlaufstzen kann weniger als b Stze gespeichert haben.
Beispiel: b=3, Aufteilung 2:3 Separator: 0100
Signaturen: 0001 0011 0100 0100 1000
1 2 j N
1 2 j N
im H
SP
auf
MP
SEP
Bucket B
-
Eindimensionale Zugriffspfade
30
Aufsuchen und Einfgen
Aufsuchen In der Signaturfolge S(k) werden die
si(k) mit SEP[hi(k)], i=1,2,,n im Hauptspeicher verglichen.
Sobald ein SEP[hi(k)] > si(k) gefunden wird, ist die richtige Bucketadresse lokalisiert.
Das Bucket wird eingelesen und durchsucht.
Wenn der Satz nicht gefunden wird, existiert er nicht.
Es ist genau ein E/A-Zugriff erforderlich
Einfgen Kann Verschieben von Stzen und
ndern von Separatoren erfordern. Wenn fr einen Satz hi(k) = j und
si(k) < SEP[j] gilt, muss er in Bucket Bj eingefgt werden.
Falls Bj schon voll ist, mssen ein oder mehrere Stze verschoben und SEP[j] entsprechend aktualisiert werden.
Alle verschobenen Stze mssen dann in Buckets ihrer Sondierungs-folgen wieder eingefgt werden.
Dieser Prozess kann kaskadieren nahe bei 1 ist unsinnig, da die
Einfgekosten explodieren; Empfehlung: 8.0
-
Eindimensionale Zugriffspfade
31
Beispiel: Startsituation
Initialisierung der Separatoren mit 2t-1 Separator eines Buckets, das noch nicht bergelaufen ist, soll grer als alle Signaturen
sein einfachere Algorithmen daher Bereich der Signaturen: 0, 1, , 2t-2
Einfgen von k = gh mit h1(gh) = 18, s1(gh) = 1110
1111
Key Sign.
ab 0100
8
1111
Key Sign.
ef 0010
cd 0101
18
1111
Key Sign.
uv 0101
27
1111
Key Sign.
lm 0100
xy 0110
99
1111
Key Sign.
ab 0100
8
1111
Key Sign.
ef 0010
cd 0101
gh 1110
18
1111
Key Sign.
uv 0101
27
1111
Key Sign.
lm 0100
xy 0110
99
-
Eindimensionale Zugriffspfade
32
Beispiel: Bucketberlauf
Einfgen von k = ij mit h1(ij) = 18, s1(ij) = 0101 k = gh muss weiter sondieren, z.B. h2(gh) = 99, s2(gh) = 1010
1111
Key Sign.
ab 0100
8
1111
Key Sign.
ef 0010
cd 0101
gh 1110
18
1111
Key Sign.
uv 0101
27
1111
Key Sign.
lm 0100
xy 0110
99
1111
Key Sign.
ab 0100
8
1110
Key Sign.
ef 0010
cd 0101
ij 0101
18
1111
Key Sign.
uv 0101
27
1111
Key Sign.
lm 0100
xy 0110
gh 1010
99
-
Eindimensionale Zugriffspfade
33
Beispiel: Bucketberlauf Situation nach weiteren Einfgungen und Lschungen
Einfgen von k = qr mit H(qr) = (8,18,) und S(qr) = (1011,0011,) Sondierungs- und Signaturfolgen von cd und ij seien:
H(cd) = (18,27,) und S(cd) = (0101,1011,) H(ij) = (18,99,8,) und S(ij) = (0101,1110,0100,)
1000
Key Sign.
ab 0100
8
1110
Key Sign.
ef 0010
cd 0101
ij 0101
18
1111
Key Sign.
uv 0101
mn 1001
27
1000
Key Sign.
lm 0010
xy 0110
99
1000
Key Sign.
ab 0100
ij 0110
8
0101
Key Sign.
ef 0010
qr 0011
18
1111
Key Sign.
uv 0101
mn 1001
cd 1011
27
1000
Key Sign.
lm 0010
xy 0110
99
-
Eindimensionale Zugriffspfade
34
Dynamische Hash-Verfahren
Wachstumsproblem bei statischen Verfahren Statische Allokation von
Speicherbereichen: Speicherausnutzung?
Bei Erweiterung des Adressraums: Re-Hashing
Alle Stze erhalten eine neue Adresse - Kosten - Verfgbarkeit - Adressierbarkeit
Entwurfsziele: Dynamische Struktur erlaubt
Wachstum und Schrumpfung des Hash-Bereichs (Datei)
Keine berlauftechniken Zugriffsfaktor 2 fr die direkte
Suche
Viele konkurrierende Anstze Extensible Hashing (Fagin et al.,
1978) Virtual Hashing und Linear Hashing
(Litwin, 1978, 1980) Dynamic Hashing (Larson, 1978) Lsungsvorschlge mit und ohne
Index (Hilfsdaten)
A A' S
h
h'
-
Eindimensionale Zugriffspfade
35
Erweiterbares Hashing verknpft Adressierungstechnik der Digitalbume
zum Aufsuchen eines Speicherplatzes Split- und Mischtechniken von Seiten der
B-Bume zur Konstruktion eines dynamischen Hash-Bereichs
Prinzipielle Vorgehensweise Die einzelnen Bits eines Schlssels steuern
den Weg durch den zur Adressierung benutzten Digitalbaum.
Ki = (b0, b1, b2, ). Es ist prinzipiell mglich, die Bitfolge von Ki direkt fr die Adressierung heranzuziehen.
Bei Ungleichverteilung der Schlssel ist dann ein unausgewogener Digitalbaum zu erwarten.
Erweiterbares Hashing: Lsungsidee
00* 010* 011* 1*
0 1
0 1
1 0
Buckets
-
Eindimensionale Zugriffspfade
Erweiterbares Hashing: Pseudoschlssel
Pseudoschlssel Da Digitalbume keinen Mechanismus zur
Balancierung ihrer Hhe besitzen, muss die Ausgewogenheit von auen aufgezwungen werden.
h(Ki) = (b0, b1, b2, ) . Die Verwendung von h(Ki) als sog. Pseudoschlssel (PS) soll bessere Gleichverteilung gewhrleisten.
Gleichverteilung der Pseudoschlssel (PS) impliziert minimale Hhe des Digitalbaumes
36
Ungleichverteilung der Schlssel K
PS werden abgebildet auf Directory
h(K i ) PS
Buckets . . .
Gleichverteilung der PS
-
Eindimensionale Zugriffspfade
37
Erweiterbares Hashing
Abbildung der Pseudoschlssel Zur Adressierung eines Buckets
sind d Bits erforderlich, wobei sich dafr i.A. eine dynamische Grenzlinie variierender Tiefe ergibt.
Die Digitalbaum-Adressierung bricht ab, sobald ein Bucket den ganzen Teilbaum aufnehmen kann.
ausgeglichener Digitalbaum garantiert minimales dmax
Dynamisches Wachsen und Schrumpfen des Hash-Bereiches Buckets werden erst bei Bedarf
bereitgestellt Knoten unterschiedlicher Tiefe verweisen
auf ein Bucket
hohe Speicherplatzbelegung mglich
00* 010* 011* 1*
0 1
0 1
1 0
Tiefe d
dynamische Grenzlinie
h(Ki)=01100101
Buckets
d
-
Eindimensionale Zugriffspfade
38
Erweiterbares Hashing: Directory
Binrer Digitalbaum der Hhe d wird durch einen (2d)-Digitalbaum der Hhe 1 implementiert (Trie der Hhe 1 mit 2d Eintrgen)
d wird festgelegt durch den lngsten Pfad im binren Digitalbaum
Der Trie lsst sich als Directory oder Adressverzeichnis auffassen.
Die d Bits von h(Ki) zeigen im Directory auf einen Eintrag mit der Adresse des Buckets, das den Schlssel Ki enthlt.
Directory enthlt 2d Eintrge In einem Bucket werden nur Stze
gespeichert, deren PS in den ersten d Bits bereinstimmen (d = lokale Tiefe)
d = MAX (d): d Bits des PS werden zur Adressierung verwendet (d = globale Tiefe)
Wenn d < d, knnen (benachbarte) Eintrge auf dasselbe Bucket verweisen.
Kosten der direkten Suche: max. 2 Seitenzugriffe
00 01
11
10
d = 2
d = 1
d = 2
d = 2
Directory
Buckets
-
Eindimensionale Zugriffspfade
39
Split von Buckets
Fall 1: berlauf eines Buckets, dessen lokale Tiefe kleiner als die globale Tiefe d ist
Anlegen eines neuen Buckets (Split) mit lokaler Neuverteilung der Daten Erhhung der lokalen Tiefe lokaler Korrektur der
Verweise im Directory
00 01
11 10
d = 2
Directory
d = 2
h (~) = 00*
d = 2
h (~) = 10*
d = 2
h (~) = 11*
d = 2
h (~) = 01*
Buckets
-
Eindimensionale Zugriffspfade
40
Split von Buckets
Fall 2: berlauf eines Buckets, dessen lokale Tiefe gleich der globalen Tiefe ist
Anlegen eines neuen Buckets (Split) mit lokaler Neuverteilung der Daten
(Erhhung der lokalen Tiefe) Verdopplung des Directories
(Erhhung der globalen Tiefe) globaler Korrektur/
Neuverteilung der Verweise im Directory
100 101
111 110
000 001
011 010
d = 3 d = 2
d = 2
d = 2
d = 3
d = 3
h (~) = 00*
h (~) = 010*
h (~) = 011*
h (~) = 10*
h (~) = 11*
Directory
Buckets
-
Eindimensionale Zugriffspfade
41
Vergleich der wichtigsten Zugriffsverfahren Zugriffsverfahren Speicherungsstruktur Direkter Zugriff Sequentielle
Verarbeitung nderungsdienst
(ndern ohne Aufsuchen)
Fortlaufender Schlsselvergleich
Sequentielle Liste Gekettete Liste
O(n)=104
O(n) 5 105
O(n) 2 104
O(n) 106 O(1) 2 O(1) 3
Baumstrukturierter Schlsselvergleich
Balancierte Binrbume Mehrwegbume
O(log2 n) 20 O (logk n) 3 4
O(n) 106
O(n) 106 * O(1) = 2 O(1) = 2
Konstante Schlsseltrans-formationsverfahren
Externes Hashing mit separatem berlaufbereich Externes Hashing mit Separatoren
O(1) 1.1 1.4 O(1) = 1
O(n log2 n)** O(n log2 n) **
O(1) 1.1 O(1) = 1 (+D)
Variable Schlsseltrans-formationsverfahren
Erweiterbares Hashing Lineares Hashing
O(1) = 2 O(1) = 1
O(n log2 n)** O(n log2 n)**
O(1) = 1.1 (+R) O(1) < 2
* Bei Clusterbildung bis zu Faktor 50 weniger ** Pysisch sequentielles Lesen, Sortieren und sequentielles Verarbeiten der gesamten Stze Beispielangaben fr n = 106
-
Eindimensionale Zugriffspfade
42
Zugriffspfade in kommerziellen Datenbanksystemen
DB2 B*-Baum (clustered, non-clustered), partitionierte Tabellen,
Informix B-Baum, statisches Hashing, ISAM, HEAP,
Oracle B*-Baum (mit Prfix-/Suffix-Komprimierung), (Join-) Cluster-Bildung,
Sybase B*-Baum (clustered, non-clustered),
RDB (DEC) B*-Baum (clustered, non-clustered), Hashing, Join-Cluster-Bildung,
NonStop SQL (Tandem) B*-Baum (clustered, non-clustered) mit Prfix-Komprimierung,
UDS (Siemens) B*-Baum, statisches Hashing, Cluster-Bildung (LIST), Invertierung (Pointer-Array), Kettung (CHAN)
-
Eindimensionale Zugriffspfade
43
bersicht
Ziele Anforderungen und Klassifikation Zugriffspfade fr Primrschlssel
Mehrwegbume - B-Bume - B*-Bume
Hash-Verfahren - Statische Verfahren - Erweiterbares Hashing
Zugriff ber Sekundrschlssel Einstiegs- und Verknpfungsstruktur Einsatz von Zeigerlisten und komprimierten Bitlisten
Hierarchische Zugriffspfade und verallgemeinerte Zugriffspfadstruktur Mehrdimensionale Zugriffspfade
-
Eindimensionale Zugriffspfade
44
Zugriffspfade fr Sekundrschlssel
Suche nach Stzen mit einem vorgegebenen Wert eines nicht-identifizierenden Attributs (Sekundrschlssel)
Ergebnis ist eine Satzmenge
Realisierung: Einstiegsstruktur + Verknpfungsstruktur Primrschlssel-Zugriffspfade als Einstiegsstruktur auf Satzmengen anwendbar Prinzipiell lassen sich alle Verknpfungsstrukturen fr Satzmengen heranziehen
vor allem: Verwendung von B*-Bumen und Invertierungstechniken
Standardlsung bei der Invertierung sind sequentielle Verweislisten (oft OID-Listen oder TID-Listen genannt) effiziente Durchfhrung von Mengenoperationen kosteneffektive Wartung
KL
MA
F
A02
A03
A12
12345 A02 KL 45000
23456 A02 MA 51000
34567 A03 KL 48000
45678 A02 MA 55000
56789 A03 F 65000
67890 A12 KL 50000
Anr Anr W-Ort Gehalt W-Ort Pnr
-
Eindimensionale Zugriffspfade
45
Verknpfungsstrukturen fr Satzmengen
Materialisierte Speicherung Physische Nachbarschaft der Stze
(Cluster-Bildung, Listen)
Verkettung der Stze
Ausgelagerte Hilfsdateien Physische Nachbarschaft der Zeiger
(Invertierung)
Verkettung der Zeiger
Satz1 Satz2 Satz3
Satz1 Satz2 Satz3
Satz1 Satz2 Satz3
Satz1 Satz2 Satz3
-
Eindimensionale Zugriffspfade
46
Zugriffspfade fr Sekundrschlssel
Hufige Realisierung: Invertierung Trennung der Zugriffspfaddaten von den Datenstzen (referenzierte Speicherung) Verweis Z realisiert als TID, DBK/PPP, ...
Zwei mgliche Darstellungsmethoden: 1. Gemeinsame Verwaltung der
Suchstruktur und der Zeigerlisten - relativ kurze Zeigerlisten erforderlich!
2. In der Suchstruktur ist (hnlich wie bei Zugriffspfaden fr Primrschlssel) nur ein Verweis pro Schlsselwert vorhanden, der zu einer Liste mit Satzverweisen fhrt (Zeigerliste)
- Zeigerlisten knnen in separaten Behltern abgelegt werden
K02
K03
K12
4
3
1
Z Z Z Z
Z Z Z
Z
Schlssel Zeigerlisten
K02
K03
K12
4
3
1
Z Z Z Z
Z Z Z
Z
Schlssel Zeigerlisten
-
Eindimensionale Zugriffspfade
47
Zugriffspfade fr Sekundrschlssel
IPERS(Anr)
Tabelle Pers
Pers ( Pnr, Name, Anr, ...) E1 Mller K55 ... E17 Maier K51 E25 Schmitt K55
B*-Baum als Zugriffspfad fr Sekundrschlssel Anr mit Sortierreihenfolge der Sekundrschlssel (Bereichsfragen!) mit Vorwrts- und Rckwrtsverkettung
K25 K61 K99
K8 K13 K25 K33 K45 K61 K75 K86 K99
K51 2 TID1 TID2 K55 n TID1 TID2 TIDn K61 2 TID1 TID2
PRIOR NEXT berlaufseite
-
Eindimensionale Zugriffspfade
48
Invertierung mit Bitlisten
Adressierung von Datenstzen oder Dokumenten (Information Retrieval) ber Zuordnungstabelle ZT direkt bei fester Lnge und fortlaufender Speicherung (b Stze pro Seite)
Markierungen der Bitliste entsprechen Eintrgen von ZT oder berechenbaren Adressen
Bitmatrix fr Attribut A Attribut A habe j Attributwerte a1, ..., aj
Speicherung als vertikale Bitlisten erlaubt Indexierung von mehrwertigen Attributen (Bsp: Warenkorb mit Produkten)
1 2 3 . . . n
a1 0 1 0 0 1 0 0 . . .
a2 1 0 0 0 0 0 1
. . .
aj 0 0 0 1 0 1 0
-
Eindimensionale Zugriffspfade
49
Invertierung mit Bitlisten
Bitlisten fester Lnge ji Bitlisten von Attribut Ai einfache nderungsoperationen schneller Vergleich sehr speicherplatzaufwendig nur fr kleine j oft lange Nullfolgen: Komprimierung
Komprimierte Bitlisten variabler Lnge Speicherplatzeinsparung Reduktion der E/A-Zeit Mehraufwand fr Codierung und
Decodierung schneller Vergleich umstndliche nderungsoperationen
Anwendungsgebiete der Komprimierung Data Warehouse (Invertierung der
Faktentabelle) bertragung/Speicherung
- von Multimedia-Objekten (Image, Audio, Video, ...)
- von dnn besetzten Matrizen - von Objekten in Geo-DB, ...
Viele Komprimierungstechniken verfgbar Laufkomprimierung
(run length compression) Nullfolgen-Komprimierung Mehr-Modus-Komprimierung Blockkomprimierung
-
Eindimensionale Zugriffspfade
50
bersicht
Ziele Anforderungen und Klassifikation Zugriffspfade fr Primrschlssel
Mehrwegbume - B-Bume - B*-Bume
Hash-Verfahren - Statische Verfahren - Erweiterbares Hashing
Zugriff ber Sekundrschlssel Einstiegs- und Verknpfungsstruktur Einsatz von Zeigerlisten und komprimierten Bitlisten
Hierarchische Zugriffspfade und verallgemeinerte Zugriffspfadstruktur Mehrdimensionale Zugriffspfade
-
Eindimensionale Zugriffspfade
51
Exkurs: Netzwerk-Datenmodell Anwendersoftware
R. Wagner
F. Wagner
F. Kaiser
C. Dorda
H. Schwarz
D. Nicklas
RECORD-Typ Person
RECORD-Typ Abteilung
SET-Typ Mitarbeiter
Current of Record Type
Current of Set Type
Current of Run Unit (CRU)
Currency Indicators:
Operationen:
STORE
CRU
FIND Person USING
C. Dorda
CRU
ERASE Person
MODIFY
FIND OWNER WITHIN Mitarbeiter
CRU
Anwendersoftware
C. Dorda
CRU
CONNECT Person TO Mitarbeiter
Anwendersoftware
Current of Set Type
F. Kaiser
CRU
Record in Set eingefgt
F. Kaiser
D. Nicklas
CRU
DISCONNECT Person FROM Mitarbeiter
Typen:
-
Eindimensionale Zugriffspfade
52
Hierarchische Zugriffspfade
Realisierung funktionaler Beziehungen zwischen zwei Satztypen Owner --> Member: Set-Typen nach dem Netzwerkmodell Jede Ausprgung einer Owner-Satzart wird mit 0..n Ausprgungen der
Member-Satzart verknpft
drei Implementierungen fr unterschiedliche Leistungsanforderungen
1234 K02 DA 40000
Pnr K02 W-Ort Gehalt
5678 K02 KL 60000 4488 K02 KL 50000
Anr Mnr A-Ort
K02 ABEL KL
NEXT NEXT
PRIOR PRIOR
LAST/PRIOR PRIOR
NEXT OWNER
OWNER OWNER FIRST/NEXT
Owner ABT:
Member PERS: 6927 K03 DA 45000 4711 K03 FR 55000
K03 SCHULZ DA
-
Eindimensionale Zugriffspfade
53
Implementierung Hierarchischer Zugriffspfade
Sequentielle Liste auf Seitenbasis
Bewertung: auf einen Set-Typ pro Member-Satztyp beschrnkt (Cluster-Bildung) schnelles Aufsuchen / Einfgen in Set-Reihenfolge ndern teurer als bei Pointer-Array
SET OWNER
SET MEMBER 1
SET MEMBER 2
SET MEMBER 3
SET MEMBER 4
LAST
-
Eindimensionale Zugriffspfade
54
Implementierung Hierarchischer Zugriffspfade
Gekettete Liste
Bewertung: Vorteile bei Mitgliedschaft des Member-Satztyps in mehreren Sets billiger Wechsel auf andere Set-Ausprgungen sequentieller Zugriff schneller als bei Pointer-Array nur gut in kleinen Set-Ausprgungen
SET MEMBER 1
SET OWNER
SET MEMBER 2 SET MEMBER 3 SET MEMBER 4
-
Eindimensionale Zugriffspfade
55
Implementierung Hierarchischer Zugriffspfade
Pointer-Array-Struktur
Bewertung: stabiles Verhalten Verhalten unabhngig vom Set-Wachstum und Set-Reihenfolge Standard-Verfahren bei unscharfen Informationen ber Set-Gre
und Zugriffshufigkeit
SET MEMBER 2 SET MEMBER 4 SET MEMBER 3 SET MEMBER 1
SET OWNER
POINTER-ARRAY
1 2 3 4
-
Eindimensionale Zugriffspfade
56
Verallgemeinerte Zugriffspfadstruktur
Idee: gemeinsame Verwendung einer Indexstruktur
(B*-Baum) fr mehrere Satztypen, fr die Beziehungen (1:1, 1:n, n:m) ber demselben Wertebereich (z. B. fr Anr) definiert und durch Gleichheit von Attributwerten reprsentiert sind.
Nutzung der Indexstruktur fr Primrschlsselzugriff z.B. als IAbt(Anr) Sekundrschlsselzugriff z.B. als IPers(Anr) hierarchischen Zugriff z.B. von Abt(Anr) nach Pers(Anr) oder in umgekehrter Richtung Verbundoperationen (Join) z. B. von Abt.Anr = Pers.Anr
Kombinierte Realisierung von Primrschlssel-, Sekundrschlssel- und hierarchischen Zugriffspfaden mit einem erweiterten B*-Baum Innere Baumknoten bleiben unverndert Bltter enthalten Verweise fr primre und sekundre Zugriffspfade
Alle Tabellen besitzen ein Attribut (z.B. Anr), das auf dem Wertebereich Abtnr definiert ist
Abt Mgr
Pers Aus- stattung
-
Eindimensionale Zugriffspfade
57
B*-Baum als kombinierte Zugriffspfadstruktur
K25 K61 K99
K8 K13 K25 K33 K45 K61 K75 K86 K99
K55 1 n TID0 TID1 TID2 TIDn
Struktur enthlt: Index fr ABT Index fr PERS Link fr ABT-PERS mit direktem Zugriff von:
OWNER zu jedem MEMBER, jedem MEMBER zu jedem anderen MEMBER jedem MEMBER zum OWNER
TID fr ABT
TID fr PERS
-
Eindimensionale Zugriffspfade
58
B*-Baum als verallgemeinerte Zugriffspfadstruktur
K25 K61 K99
K8 K13 K25 K33 K45 K61 K75 K86 K99
K55 1 3 1 4 TID TID TID TID TID TID TID TID TID
Zugriffspfadstruktur umfasst: 4 Indexstrukturen 6 Link-Strukturen
TID fr ABT
TID fr PERS
TID fr Mgr
TID fr Ausstattung
-
Eindimensionale Zugriffspfade
59
Verallgemeinerte Zugriffspfadstruktur Bewertung
Schlssel werden nur einmal gespeichert Speicherplatzersparnis
Einheitliche Struktur fr alle Zugriffspfadtypen Vereinfachung der Implementierung
Untersttzung der Join-Operation sowie bestimmter statistischer Anfragen Einfache berprfung der referentiellen Integritt sowie weiterer
Integrittsbedingungen (z. B. Kardinalittsrestriktionen) Erhhung der Anzahl der Blattseiten
mehr Seitenzugriffe beim sequentiellen Lesen aller Stze eines Satztyps in Sortierordnung
Hhe des Baumes bleibt meist erhalten hnliches Leistungsverhalten beim Aufsuchen von Daten und beim
nderungsdienst
-
Eindimensionale Zugriffspfade
60
bersicht
Ziele Anforderungen und Klassifikation Zugriffspfade fr Primrschlssel
Mehrwegbume - B-Bume - B*-Bume
Hash-Verfahren - Statische Verfahren - Erweiterbares Hashing
Zugriff ber Sekundrschlssel Einstiegs- und Verknpfungsstruktur Einsatz von Zeigerlisten und komprimierten Bitlisten
Hierarchische Zugriffspfade und verallgemeinerte Zugriffspfadstruktur Mehrdimensionale Zugriffspfade
-
Eindimensionale Zugriffspfade
61
Klassifikation der Anfragetypen
Definitionen: Eine Datei ist eine Sammlung von N Stzen des Typs R = (A1, ..., An), wobei
jeder Satz ein Punktobjekt durch ein geordnetes n-Tupel t = (a1, a2, ..., an) von Werten darstellt. Die Attribute A1, ..., Ak (k n) seien Schlssel.
Eine Anfrage Q spezifiziert einige Bedingungen, die von den Schlsselwerten der Stze in der Treffermenge erfllt sein mssen.
Schnittbildende Anfragen (intersection queries): sich qualifizierende Objekte berlappen mit dem Anfragebereich
Enthaltenseins- oder Umschlieungsanfragen (containment, enclosure queries): sich qualifizierende Objekte sind ganz im Anfragebereich enthalten oder enthalten den Anfragebereich vollstndig
-
Eindimensionale Zugriffspfade
62
Klassifikation der schnittbildenden Anfragen
Exakte Anfrage (exact match query): spezifiziert fr jeden Schlssel einen Wert Q = (A1 = a1) (A2 = a2) ... (Ak = ak)
Partielle Anfrage (partial match query): spezifiziert s < k Schlsselwerte Q = (Ai1 = ai1) (Ai2 = ai2) ... (Ais = ais) mit 1 < s < k und 1 < i1 < i2 < ...
< is < k
Bereichsanfrage (range query): spezifiziert einen Bereich ri = [li < ai < ui] fr jeden Schlssel Ai Q = (A1 = r1) ... (Ak = rk)
(A1 > l1) (A1 < u1) ... (Ak > lk) (Ak < uk)
Partielle Bereichsanfrage (partial range query): spezifiziert fr s < k Schlssel einen Bereich Q = (Ai1 = ri1) ... (Ais = ris)
mit 1 < s < k und 1 < i1 < ... < is < k und rij = [lij < aij < uij], 1 < j < s
Allgemeine Bereichsanfrage: genauer Bereich [li = ai = ui] unendlicher Bereich [- < ai < ] Alle 4 Fragetypen der schnittbildenden Anfragen lassen sich als allg. Bereichsfrage
ausdrcken
-
Eindimensionale Zugriffspfade
63
Klassifikation der Enthaltenseinsanfragen
Punktanfrage (point query): Gegeben ist ein Punkt im Datenraum D. Finde alle Objekte, die ihn enthalten.
Gebietsanfrage (region query): Gegeben ist ein Anfragegebiet. Finde alle Objekte, die es schneiden (es umschlieen, in ihm enthalten sind).
Beispiele: Suche nach Rechtecken Relation RECTANGLE(x1,y1,x2,y2)
Bestimmung aller Rechtecke, die den Punkt (2,5) enthalten SELECT x1, y1, x2, y2
FROM RECTANGLES WHERE x1 = 2 AND y1 = 5
Bestimmung der Rechtecke mit Punkt (1,3) als Eckpunkt links unten SELECT x1, y1, x2, y2
FROM RECTANGLES WHERE x1 = 1 AND y1 = 3
Das sind alles harmlose Fragen, die sogar im Relationenmodell mhelos beantwortet werden knnen
(x1,y1)
(x2,y2)
-
Eindimensionale Zugriffspfade
64
Nchster-Nachbar-Anfragen
Nchster-Nachbar-Anfragen (best match query, nearest neighbor query) gewnschtes Objekt nicht vorhanden Frage nach mglichst hnlichen Objekten
"best" wird bestimmt ber verschiedene Arten von Distanzfunktionen Beispiele:
Objekt erfllt nur 8 von 10 geforderten Eigenschaften Objekt ist durch Synonyme beschrieben
Bestimmung des nchsten Nachbars: D = Distanzfunktion
B = Sammlung von Punkten im k-dimensionalen Raum Gesucht: nchster Nachbar von p (in B) Der nchste Nachbar ist q, wenn
( r B) {r q [D(r, p) > D(q, p)]}
X
X X
gewnschtes Objekt
Distanz
vorhandene Objekte
-
Eindimensionale Zugriffspfade
65
Grundprobleme
Erhaltung der topologischen Struktur
Stark variierende Dichte der Objekte Starke nderung der rumlichen
Belegung ber die Zeit Keine regelmige Aufteilung von D gleiche Bucketgre
Objektdarstellung Punktobjekte Objekte mit Ausdehnung
Dynamische Reorganisation
Balancierte Zugriffsstruktur beliebige Belegungen und Einfge-
/Lschreihenfolgen Garantie eines gleichfrmigen Zugriffs 2 oder 3 Externspeicherzugriffe
X X X X
X X X
X X X X
X X X
Buckets B
D
X X X X X X
X
X
X X
X
X X X
X X X
X X X
X X X
X X X
D
D D
B B
nach mehreren Einfgungen und
Lschungen
-
Eindimensionale Zugriffspfade
66
Nutzung eindimensionaler Zugriffspfade
Bisher: Indexierung (Invertierung) einer Dimension, z.B. B*-Baum
Zerlegungsprinzip des Schlsselraumes beim B*-Baum (2-dim.) Zustzlicher B*-Baum (Key2) mglich:
B*-Baum (Key1) Partitionierung des Raumes
nach Werten von Key1
B*-Baum (Key2) Partitionierung des Raumes nach
Werten von Key2
Key2
Key1 K1n K11
K2m
K21
X
X
X X X X X
X
X X X X
Key2
Key1 K1n K11
K2m
K21
X
X
X X X X X
X X X X X
-
Eindimensionale Zugriffspfade
67
Nutzung eindimensionaler Zugriffspfade
Mehrattributsuche Zugriff nach (Key1 = K1i) (Key2 = K2j)
Trefferliste fr K1i : aus B*-Baum (Key1) Trefferliste fr K2j : aus B*-Baum (Key2) Mischen + Zugriff auf Ergebnistupel
groe Trefferlisten und Zwischenergebnisse!
Key2
Key1
K2j
K1i
AND
OR AND
-
Eindimensionale Zugriffspfade
68
Nutzung eindimensionaler Zugriffspfade
Simulation des mehrdimensionalen Zugriffs mit einem B*-Baum? Idee:
Konkatenierte Schlssel: Konkatenierte Werte:
Untersttzung fr Suchoperationen? (Key1 = K1i) AND (Key2 = K2j) Key2 = K2j Key1 = K1i OR-Verknpfung
Key1 | Key2 K11 | K21 K11 | K22 K11 | K2m K12 | K21 K12 | K22 K12 | K2m K13 | K21 K1n | K2m
-
Eindimensionale Zugriffspfade
69
Physischer DB-Entwurf
Indexstrukturen Welche Attribute/Attributkombinationen sollen indexiert werden? Wahl der Zugriffspfadstruktur
Clusterbildung Wahl der wichtigen Attribute, nach deren Werte Clusterbildung vorgenommen wird Oft werden die Primrschlsselattribute oder OWNER-MEMBER-Beziehungen fr die
Cluster-Bildung ausgewhlt Geeignete Wahl des Belegungsgrads beim Laden von Tabellen mit Cluster-Eigenschaft
-
Eindimensionale Zugriffspfade
70
Indexierungsheuristik
Indexstrukturen werden angelegt auf allen Primr- und Fremdschlsselattributen, was auch mit verallgemeinerten
Zugriffspfadstrukturen erreicht werden kann auf Attributen vom Typ DATE auf Attributen, die in (hufigen) Anfragen in Gleichheits- oder IN-Prdikaten
vorkommen Primr- und Fremdschlsselindexierung erlaubt Navigation durch mehrere Tabellen
ausschlielich mit Hilfe der Indexstrukturen
Alternative Indexierungsheuristik Indexstrukturen werden auf Primrschlssel- und (mglicherweise) auf
Fremdschlsselattributen angelegt Zustzliche Indexstrukturen werden nur angelegt, wenn fr eine aktuelle Anfrage der
neue Index zehnmal weniger Stze liefert als irgendein existierender Index
Beide Heuristiken liefern fast die gleichen Indexstrukturen fr die meisten Datenbanken und Arbeitslasten
-
Eindimensionale Zugriffspfade
71
Zusammenfassung
Cluster-Bildung optimiert (sortiert) sequentielle Zugriffe Standard-Zugriffspfadstruktur: B*-Baum (the ubiquitous B*-tree)
materialisierte und referenzierte Speicherung der Datenstze Index-organisierte Tabelle mit Cluster-Bildung
Schnellerer Schlsselzugriff erfordert Hash-Verfahren (nur) direkter Zugriff (= 1 Seitenzugriff) Erweiterbares Hashing untersttzt stark wachsende Datenbestnde
( 2 Seitenzugriffe)
Zugriffspfade fr Sekundrschlssel Einstiegsstruktur: B*-Baum u.a. Verknpfungsstruktur: Zeigerlisten, Bitlisten Bitlisten sind bei geringer Kardinalitt des Wertebereichs hoch effizient Viele Komprimierungsverfahren verfgbar Untersttzung mengentheoretischer Operationen
Hierarchische Zugriffspfade Untersttzung von Verbund-Operationen (Relationenmodell) effiziente Abwicklung von Set-Operationen (Netzwerk-Modell) Verknpfungsstruktur: Ketten, Zeigerlisten, Listen vielfltige Abstimmungsmglichkeiten auf spezielle Arbeitslasten
Verallgemeinerte Zugriffspfadstruktur auch Join-Index genannt Untersttzung von Primrschlssel-, Sekundrschlssel- und hierarchischen Zugriffen
-
Eindimensionale Zugriffspfade
72
Literatur zu diesem Kapitel
[Fag79] Fagin, R., et. al: Extendible hashing - a fast access method for dynamic files. In: ACM Trans. Database Syst. 4:3. 1979.
[LK84] Larson, P.-A. and Kajla, A.: File organization: implementation of a method guaranteeing retrieval in one access. In: Comm. of the ACM 27,7 (1984).
[Gra07] Graefe, G.: Algorithms for merged indexes. In: Proc. BTW 2007.
Datenbanken und InformationssystemebersichtEindimensionale ZugriffspfadeAnforderungen an ZugriffspfadeAnforderungen an ZugriffspfadebersichtKlassifikationMehrwegbumeB-Baum, B*-BaumB-BaumB*-BaumMehrwegbumeSplitting bei B*-BumenSuche in der SeiteSuche in der SeiteZugriff zu allen Stzen eines SatztypsbersichtHash-basierte ZugriffspfadeGestreute Speicherungsstrukturen(Hash-Verfahren)Statisches Hash-Verfahren mit berlaufbereichenBelegung von Hash-Bereichen MessungBelegung von Hash-Bereichen MessungExternes Hashing ohne berlaufbereicheExternes Hashing ohne berlaufbereicheExternes Hashing mit SeparatorenExternes Hashing mit SeparatorenNutzung der SeparatorenNutzung der SeparatorenNutzung der SeparatorenAufsuchen und EinfgenBeispiel: StartsituationBeispiel: BucketberlaufBeispiel: BucketberlaufDynamische Hash-VerfahrenErweiterbares Hashing: LsungsideeErweiterbares Hashing: PseudoschlsselErweiterbares HashingErweiterbares Hashing: DirectorySplit von BucketsSplit von BucketsVergleich der wichtigsten ZugriffsverfahrenZugriffspfade in kommerziellen DatenbanksystemenbersichtZugriffspfade fr SekundrschlsselVerknpfungsstrukturen fr SatzmengenZugriffspfade fr SekundrschlsselZugriffspfade fr SekundrschlsselInvertierung mit BitlistenInvertierung mit BitlistenbersichtExkurs: Netzwerk-DatenmodellHierarchische ZugriffspfadeImplementierung Hierarchischer ZugriffspfadeImplementierung Hierarchischer ZugriffspfadeImplementierung Hierarchischer ZugriffspfadeVerallgemeinerte ZugriffspfadstrukturB*-Baum als kombinierte ZugriffspfadstrukturB*-Baum als verallgemeinerte ZugriffspfadstrukturVerallgemeinerte Zugriffspfadstruktur BewertungbersichtKlassifikation der AnfragetypenKlassifikation der schnittbildenden AnfragenKlassifikation der EnthaltenseinsanfragenNchster-Nachbar-AnfragenGrundproblemeNutzung eindimensionaler ZugriffspfadeNutzung eindimensionaler ZugriffspfadeNutzung eindimensionaler ZugriffspfadePhysischer DB-EntwurfIndexierungsheuristikZusammenfassungLiteratur zu diesem Kapitel