Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.
-
Upload
elsabeth-randell -
Category
Documents
-
view
110 -
download
0
Transcript of Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.
![Page 1: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/1.jpg)
Übung Datenbanksysteme II
Index-strukturen
Thorsten Papenbrock
![Page 2: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/2.jpg)
2
Rückblick:
Hausaufgabe 1
Submit:
Bitte beachten: Bei JEDER Submission BEIDE Autoren angeben!
Notifications sind raus; Korrekturen einsehbar; Anmerkungen jetzt natürlich in Freitextfeldern statt direkt auf Zetteln
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
![Page 3: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/3.jpg)
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
3
1 2 3 4 5 6 7 8 9 10 11 12
Rückblick:
TPMMS
2 5 4 11 10 8 1 7 12 3 9 6
2 5 4 11 10 8 1 7 12 3 9 6
2 4 5 11 1 7 8 10 3 6 9 12
2 4 5 11 1 7 8 10 3 6 9 12
2 4 5 11 1 7 8 10 3 6 9 122 1 3
22222221
2223
Phase 1:
Phase 2:
![Page 4: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/4.jpg)
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
4
Rückblick:
TPMMS
Phase 1:
n Blöcke hat die gesamte Relation
m Blöcke passen gleichzeitig in den RAM
I/O Zeit Phase 1 = m Blöcke sequentiell lesen + m Blöcke sequentiell schreiben
Phase 2:
n Blöcke hat die gesamte Relation
m Blöcke passen gleichzeitig in den RAM
I/O Zeit Phase 2 = n Blöcke selektiv lesen +n Blöcke selektiv schreiben
![Page 5: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/5.jpg)
5
Quiz: Zuordnung
Indexstrukturen
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
a. dichtbesetzter Index
b. dünnbesetzter Index
c. mehrstufiger Index
d. nicht-eindeutige Attribute
e. Sekundärindex
f. invertierter Index
f. a.
b. d.
c. e.
![Page 6: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/6.jpg)
6
Quiz: Richtig oder Falsch?
Dicht- und dünnbesetzte Indexe
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
Es ist für jedes Datenfile möglich, zwei separate dünnbesetzte Level-1-Indexe auf unterschiedlichen Attributen anzulegen.
Es ist für jedes Datenfile möglich, zwei separate dichtbesetzte Level-1-Indexe auf unterschiedlichen Attributen anzulegen.
Es ist für jedes Datenfile möglich, einen dünnbesetzten Level-1-Index mit einem dichtbesetzten Level-2-Index anzulegen. Beide Indexe sind sinnvoll.
Es ist für jedes Datenfile möglich, einen dichtbesetzten Level-1-Index mit einem dünnbesetzten Level-2-Index anzulegen. Beide Indexe sind sinnvoll.
Falsch Bei zwei Schlüsseln kann nur nach einem Schlüssel sortiert werden. Beide dünnbesetzte Level-1-Indexe benötigten daher eine Sortierung nach ihrem Schlüssel-Attribut. Das ist gleichzeitig nicht möglich!
Wahr Dichtbesetzte Level-1-Indexe benötigen keine Sortierung. Es können daher mehrere dichtbesetzte Indexeauf unterschiedlichen Schlüsseln angelegt werden!
Falsch Ein dichtbesetzter Level-2-Index auf einen Level-1-Index ist sinnlos, da er alle Werte noch einmal indexiert, dabei zusätzlich Speicher belegt und keinen Mehrwert schafft.
Wahr Ein dünnbesetzter Level-2-Index auf einem dichtbesetzten Level-1-Index ist sinnvoll, da der dünnbesetzte Index nur die ersten Elemente der Blöcke indexiert und so letztendlich Speicher und Zugriffszeit spart.
![Page 7: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/7.jpg)
7
B+-Baume:
Aufbau
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
Wurzel
Knoten
Blatt
![Page 8: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/8.jpg)
8
Quiz: Richtig oder Falsch?
B+-Baume
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
B+-Bäume können Overflow-Buckets benötigen.
Ein Block eines B+-Baums speichert n Pointer und n+1 Suchschlüssel.
Der durch Löschen eines Schlüssels entstehende B+-Baum ist nicht eindeutig bestimmt.
B+-Bäume können nur als Primärindexe verwendet werden.
B+-Bäume können auf eindeutigen und nicht-eindeutigen Attributen angelegt werden.
Falsch Statt Overflow-Buckets zu generieren nutzen B+-Baume split-Operationen um den Index beim Überlaufeines Knotens oder Blattes zu erweitern.
Falsch Ein Block (= Knoten bzw. Blatt) speichert bis zu n Suchschlüssel und bis zu n+1 Pointer.
Wahr Beim Geschwister-Klauen und beim Merge ist nicht eindeutig bestimmt, mit welchem anderen Knoten dieOperation durchgeführt wird!
Falsch B+-Baume können verschiedene Index-Rollen übernehmen. Dabei können sie auch eine Sortierung des indexierten Attributes nutzen, benötigen diese aber nicht zwangsläufig. B +-Baume sind daher nicht nur als Primärindex einsetzbar.
Wahr Ein B+-Baum ist ein mehrstufiger Index, der sowohl auf eindeutigen als auch auf nicht-eindeutigen Attributen aufgebaut werden kann. Bei doppelten Attributwerten müssen wir uns mit einem zusätzlichen Level unter den Blättern behelfen, da doppelte Schlüsselwerte nicht erlaubt sind!
![Page 9: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/9.jpg)
9
B+-Bäume:
INSERT
Nein
Suche entsprechendes Blatt
Füge Schlüssel und Pointer ein
Überlauf?
N Wurzel?Erzeuge neue Wurzel (mit nur
einem Schlüssel)
Teile Knoten N in zwei Teile N1, N2
und verteile Schlüssel gleichmäßig
Blatt?
Einfügen des neuenSchlüssel/Pointer-Paares
im Elternknoten
Kopiere kleinstenSchlüssel
in N2 nach oben
Ziehe größtenSchlüssel
in N1 nach oben
Fertig
Ja
Nein
Ja Nein
JaSplit
![Page 10: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/10.jpg)
10
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
o 42 o _ o _ o _ o
o 12 o 23 o 32 o _ o o … o … o _ o _ o
o 6 o 8 o 9 o 10 o o 12 o 15 o 17 o 18 o o 23 o 24 o 28 o _ o o 32 o 38 o _ o _ o
INSERT(17)
_ _
![Page 11: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/11.jpg)
11
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
o 42 o _ o _ o _ o
o 12 o 23 o 32 o _ o o … o … o _ o _ o
o 6 o 8 o 9 o 10 o o 12 o 15 o 17 o 18 o o 23 o 24 o 28 o _ o o 32 o 38 o _ o _ o
INSERT(17)
INSERT(18)
_
![Page 12: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/12.jpg)
12
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
o 42 o _ o _ o _ o
o 12 o 23 o 32 o _ o o … o … o _ o _ o
o 6 o 8 o 9 o 10 o o 12 o 15 o 17 o 18 o o 23 o 24 o 28 o _ o o 32 o 38 o _ o _ o
INSERT(17)
INSERT(18)
INSERT(19)
o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o
|𝑁 1|=⌈𝑛+12
⌉ |𝑁 2|=⌊𝑛+12
⌋
![Page 13: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/13.jpg)
13
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
o 42 o _ o _ o _ o
o 12 o 23 o 32 o _ o o … o … o _ o _ o
o 6 o 8 o 9 o 10 o o 23 o 24 o 28 o _ o o 32 o 38 o _ o _ o
INSERT(17)
INSERT(18)
INSERT(19)
o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o
o 12 o 18 o 23 o 32 o
![Page 14: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/14.jpg)
14
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
o 42 o _ o _ o _ o
o 12 o 23 o 32 o _ o o … o … o _ o _ o
o 6 o 8 o 9 o 10 o o 32 o 38 o _ o _ o
INSERT(17)
INSERT(18)
INSERT(19)
INSERT(11)
o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o
o 12 o 18 o 23 o 32 o
o 6 o 8 o 9 o _ o o 10 o 11 o _ o _ o
10
o 23 o 24 o 28 o _ o
![Page 15: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/15.jpg)
15
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
o 42 o _ o _ o _ o
o … o … o _ o _ o
o 6 o 8 o 9 o 10 o o 32 o 38 o _ o _ o
INSERT(17)
INSERT(18)
INSERT(19)
INSERT(11)
o 6 o 8 o 9 o _ o
o 23 o 32 o _ o _ oo 10 o 12 o 18 o _ o
o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o
o 23 o 24 o 28 o _ oo 10 o 11 o _ o _ o
|𝑁 1|=⌈𝑛2⌉ |𝑁 2|=⌊
𝑛2⌋
o 18 o 42 o _ o _ o
o 10 o 12 o _ o _ o
![Page 16: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/16.jpg)
16
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
o 42 o _ o _ o _ o
o … o … o _ o _ o
o 6 o 8 o 9 o 10 o o 32 o 38 o _ o _ o
INSERT(17)
INSERT(18)
INSERT(19)
INSERT(11)
o 6 o 8 o 9 o _ o
o 23 o 32 o _ o _ oo 10 o 12 o _ o _ o
o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o
o 23 o 24 o 28 o _ oo 10 o 11 o _ o _ o
o 18 o 42 o _ o _ o
![Page 17: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/17.jpg)
17
“linker“ und “rechter“ Geschwisterknoten beim Merge sind relativ und abhängig von der Ent-scheidung, mit welchem Geschwisterknoten
der unterbestzte Knoten gemerged werden soll!
B+-Bäume:
DELETE
Nein
Suche entsprechendes Blatt
Lösche Schlüssel und Pointer
Unterbesetzt?
Umverteilen mit Geschwistern?
Schlüsselwerte der Eltern anpassen
Umverteilen
FertigNein
Ja
Blatt?
Ziehe alle Schlüssel vom rechten inden linken Geschwisterknoten und verwerfe rechten (leeren) Knoten
Ziehe den Split-Keydes Vaterknoten in den
linken Geschwisterknoten
Ja Nein Merge
Ja
= weniger Child-Pointer in Knoten bzw. Daten-Pointer in Blatt gesetzt?
![Page 18: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/18.jpg)
18
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
DELETE(17)
o … o … o _ o _ o
o 6 o 8 o 9 o 10 o
o 23 o 32 o _ o _ oo 10 o 12 o _ o _ o
o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o o 23 o 24 o 28 o _ oo 10 o 11 o _ o _ o
o 6 o 8 o 9 o _ o o 32 o 38 o _ o _ o
o 18 o 42 o _ o _ o
![Page 19: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/19.jpg)
19
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
DELETE(17)
DELETE(18)
o … o … o _ o _ o
o 6 o 8 o 9 o 10 o
o 23 o 32 o _ o _ oo 10 o 12 o _ o _ o
o 12 o 15 o _ o _ o o 18 o 19 o _ o _ o o 23 o 24 o 28 o _ oo 10 o 11 o _ o _ o
o 6 o 8 o 9 o _ o o 32 o 38 o _ o _ o
o 18 o 42 o _ o _ o
o 19 o _ o _ o _ o o 24 o 28 o _ o _ oo 19 o 23 o _ o _ o
o 24 o 32 o _ o _ o
Ursprünglichen Schlüsseldurch neuen kleinstenSchlüssel im rechten
Blatt ersetzeno 19 o 42 o _ o _ o
![Page 20: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/20.jpg)
20
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
DELETE(17)
DELETE(18)
DELETE(23)
o … o … o _ o _ o
o 6 o 8 o 9 o 10 o
o 24 o 32 o _ o _ oo 10 o 12 o _ o _ o
o 12 o 15 o _ o _ o o 23 o 24 o 28 o _ oo 10 o 11 o _ o _ o
o 6 o 8 o 9 o _ o
o 19 o 42 o _ o _ o
o 24 o 28 o _ o _ o
o 32 o _ o _ o _ o
o 19 o 23 o _ o _ oo 19 o _ o _ o _ oo 19 o 24 o 28 o _ o o _ o _ o _ o _ o
o 32 o 38 o _ o _ o
![Page 21: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/21.jpg)
21
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
DELETE(17)
DELETE(18)
DELETE(23)
o … o … o _ o _ o
o 6 o 8 o 9 o 10 o
o 23 o 32 o _ o _ oo 10 o 12 o _ o _ o
o 12 o 15 o _ o _ oo 10 o 11 o _ o _ o
o 6 o 8 o 9 o _ o
o 19 o 42 o _ o _ o
o 32 o _ o _ o _ o
o 19 o 23 o _ o _ oo 19 o _ o _ o _ oo 19 o 24 o 28 o _ o
o 32 o 38 o _ o _ o
o 10 o 12 o 19 o _ o
o _ o 42 o _ o _ o
![Page 22: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/22.jpg)
22
B+-Bäume:
INSERT
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
DELETE(17)
DELETE(18)
DELETE(23)
o … o … o _ o _ o
o 6 o 8 o 9 o 10 o
o 23 o 32 o _ o _ oo 10 o 12 o _ o _ o
o 12 o 15 o _ o _ oo 10 o 11 o _ o _ o
o 6 o 8 o 9 o _ o
o _ o 42 o _ o _ o
o _ o _ o _ o _ o
o 19 o 23 o _ o _ oo 19 o _ o _ o _ oo 19 o 24 o 28 o _ o
o 32 o 38 o _ o _ o
o 10 o 12 o 19 o 32 o
o 42 o _ o _ o _ o
![Page 23: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/23.jpg)
23
B+-Bäume:
Übungsaufgabe
Gegeben: B+-Baum, entstanden durch Einfügen von 9, 22, 19, 21, 13, 17, 1, 6, 23, 15
1. Füge nacheinander ein: 14, 29, 4, 24
2. Lösche nacheinander: 6, 13, 15
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
![Page 24: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/24.jpg)
24
B+-Bäume:
Übungsaufgabe – Übersicht
1. Füge nacheinander ein: 14, 29, 4, 24
2. Lösche nacheinander: 6, 13, 15
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
![Page 25: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/25.jpg)
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
25
1. Füge nacheinander ein: 14, 29, 4, 24
2. Lösche nacheinander: 6, 13, 15
B+-Bäume:
Übungsaufgabe – Lösung 1
o 17 o _ o _ o _ o
o 6 o 13 o _ o _ o o 21 o 24 o _ o _ o
o 1 o 2 o 4 o _ o
o 6 o 9 o _ o _ o
o 13 o 14 o 15 o _ o
o 17 o 19 o _ o _ o
o 21 o 22 o 23 o _ o
o 24 o 29 o _ o _ o
![Page 26: Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock.](https://reader035.fdocument.pub/reader035/viewer/2022062417/55204d7549795902118ca400/html5/thumbnails/26.jpg)
Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen
26
1. Füge nacheinander ein: 14, 29, 4, 24
2. Lösche nacheinander: 6, 13, 15
B+-Bäume:
Übungsaufgabe – Lösung 2
o 4 o 14 o 21 o 24 o
o 1 o 2 o _ o _ o
o 4 o 9 o _ o _ o o 24 o 29 o _ o _ o
o 21 o 22 o 23 o _ oo 14 o 17 o 19 o _ o