11. Indexstrukturen

Werbung
11.Indexstrukturen
Vorlesung"Informationssysteme"
Sommersemester2017
Gliederung
§
§
§
§
§
Motivation
ISAM
B-BäumeundB+-Bäume
Hashverfahren
MehrdimensionaleIndexe
Informationssysteme2017
Kapitel11:Indexstrukturen
2
ÜberlegungenzuPerformance
§ Beobachtung
• JeschnellerdieAnfrageberechnetwird,destobesser.
• DatenpassennichtindenHauptspeicher.
• EsliegenGrößenordnungenzwischenPerformanzdes
HauptspeichersundderFestplatte.
• Zugriffesindunglaublichteuer!
• Insbesonderediewahlfreien(random access).
§ Wasmussgetanwerden?
• EffizienteSpeicherungaufFestplatte
• WiefindetmandiegesuchtenDatenmöglichstschnell?
• WelcheGarantienkönnenbzgl."Laufzeit"gegebenwerden?
Informationssysteme2017
Kapitel11:Indexstrukturen
3
GrundideeeinesIndex
§ Abbildung:Schlüsselà MengevonEinträgen
§ Beispiele:
• MatrikelNummer à persönlicheDatendesStudenten
• PLZà NameundandereInformationeneinerStadt
• Termà alleDokumenteindenendieserTermenthaltenist
§ NatürlichmöchtemanbeidiesenhäufigauftretendenAnfragendie
Antwortzeitgeringhalten.
§ DafürwirdeinIndexangelegt:EinIndexmaterialisiertdiese
Abbildung!
Informationssysteme2017
Kapitel11:Indexstrukturen
4
WasistmitderbinärenSuche?
§ Idee:SortiertesArray,dannbinärsuchen
• 𝑂𝑂(𝑛𝑛log𝑛𝑛)KostenfürdasSortieren
• waspassiert,wenneinneuerDatensatzeingefügtwerden
muss?
§ BinärerSuchbaum,ambestenbalanciert(AVLoderrot-schwarz
Baum)
Aber....
§ binäreSuchbäumesindfürDBMSungeeignet
• zuhoherSpeicherverbrauch
• schwerabzubildenaufExternspeicher
• zuvieleCache-Misses (warum?)
è vielzulangsam!
Informationssysteme2017
Kapitel11:Indexstrukturen
5
Index-SequentialAccessMethod(ISAM)
S1
D1
D2
...
Ds
S2
... Sk
Dt
...
...
Sm
Du
...
Dv
...
Dw
BestehtausSchlüsseln𝑆𝑆* undDatensätzen𝐷𝐷, .
§ SowohlSchlüsselalsauchDatenwerdengeordnetabgespeichert.
§ Suche:
• BinäreSucheinSchlüsselnzurgewünschtenPosition
• SequentiellesLeseninDatenseiten
§ Einfügen:
• AuffindenderEinfügeposition (wiebeiSuche)
• WaspassiertwenndieSeite,indieeingefügtwerdensoll,vollist?
Nichtgut...
§ Löschen:
• AuffindenderLöschposition(wiebeiSucheundEinfügen)
• LöschendesDatensatzes.WaspassiertwenndieSeiteleerwird?
Informationssysteme2017
Kapitel11:Indexstrukturen
6
Mehrwegbäume- Motivation
§ Beobachtung
• BinäreBäumenichtoptimalfürFestplatten
• Wichtig:AnpassungderKapazitätderKnotenanGrößederSeiten.
• Warum?
§ Fanout
• JebreiterderBaumdestoflacher(d.h.wenigertief).
• Jeflacherdestoweniger"Sprünge"zwischenKnoten
è WenigerZugriffeaufSeitenaufderFestplatte.
Informationssysteme2017
Kapitel11:Indexstrukturen
7
Mehrwegbäume(2)
§ Vorfahr(1965):ISAM(statisch,periodischeReorganisation)
§ Weiterentwicklung:B- undB+-Baum
• B-Baum:1970vonR.BayerundE.McCreight entwickelt
• treffendeCharakterisierung:“TheUbiquitous B-Tree”*
§ Grundoperationen:
(*) D. Comer: The Ubiquitous B-Tree.
ACM Computing Surveys 11(2), 1979
• EinfügenundLöscheneinesSatzes
• direkterSchlüsselzugriffaufeinenSatz
• sortiertsequentiellerZugriffaufSatzbereiche
è dynamischeReorganisationdurchSplittingundMischenvonSeiten
§ BalancierteStruktur,unabhängigvonSchlüsselmengeund
Einfügereihenfolge
§ AusführlicheBetrachtungvonMehrwegbäumen(vonProf.Härder):
http://wwwlgis.informatik.uni-kl.de/cms/fileadmin/courses/ss2007/
Informationssysteme/addons/mehrwegbaeume.full.pdf
Informationssysteme2017
Kapitel11:Indexstrukturen
8
B-Bäume
§ Definition:
Seik eineganzeZahl,k >0.EinB-BaumBmitGradk istentwederein
leererBaumodereingeordneterSuchbaum mitfolgenden
Eigenschaften:
1. JederPfadvonderWurzelzueinemBlatthatdiegleicheLänge.
2. JederKnotenmitderAusnahmederWurzelhatmindestensk und
höchstens2kEinträge.DieWurzelhatzwischeneinemund2k
Einträgen.DieEinträgewerdenindenKnotensortiertgehalten.
3. JederKnotenmitn Einträgen,außerdenBlättern,hatn+1Kinder.
4. SeienS1,...,Sn dieSchlüsseleinesKnotensmitn+1Kindern.P0,...Pn
seiendieVerweiseaufdieKinder.Danngilt:
a)
b)
c)
d)
P0 verweistaufdenTeilbaum mitSchlüsselnkleineralsS1.
Pi (0<i<n)weistaufdenTeilbaum mitSchlüsselnzwischenSi undSi+1.
Pn verweistaufdenTeilbaum mitSchlüsselngrößeralsSn.
IndenBlattknotensinddieVerweisenichtdefiniert.
Informationssysteme2017
Kapitel11:Indexstrukturen
9
B-Bäume– BeispielundEigenschaften
§ B-BaummitGrad2
• 12 •
• 4 • 9 •
• 1 • 2 • 3 •
• 16 • 19 •
• 10 • 11 •
• 13 • 14 • 15 •
• 5 • 6 • 7 • 8 •
• 20 • 21 • 22 • 23 •
• 17 • 18 •
• InjedemKnotenstehendieSchlüsselinaufsteigenderOrdnungmit
K1<K2<...<Kb.
• JederSchlüsselhateineDoppelrollealsIdentifikator eines
DatensatzesundalsWegweiser imBaum
- Pi verweistaufTeilbaum mitSchlüsseln>Ki und<Ki+1
- indenBlattknotensinddieVerweiseundefiniert
• AlleSchlüssel/Sätzekönnenalsosortiertaufgesuchtwerden
• DerBaumistbzgl.derKnotenstrukturvollständigausgeglichen.
• JederKnoten(außerderWurzel)istmindestenszurHälftegefüllt.
Informationssysteme2017
Kapitel11:Indexstrukturen
10
B-Bäume- Knotenformat
§ FüreinenB-BaumergibtsichfolgendesKnotenformat:
L
b
K1
D1
P0
K2
P1
D2
...
P2
Kb
Pb-1
freier Platz
Db
Pb
§ Einträge(beiKnoten- oderSeitengrößeL)
• DieFelderfür#Einträge(b),Schlüssel(Ki),Daten(Di)undZeiger
habendiefestenLängenlb,lK,lD undlp.
" L − lb − l p $
• MaximaleAnzahlvonEinträgenproKnoten: bmax = "
$ = 2k
# lK + l D + l p %
§ WassindtypischeGrößeninB-Bäumen?
• (inByte:)L=8192,lb =2,lP =4,lK =8,lD =88
à k =40
• BeiausgelagertenDaten:lD =4(VerweisaufDatenseite)
à k =255
Informationssysteme2017
Kapitel11:Indexstrukturen
11
B-Bäume- Einfügen
§ EinfügeninB-Bäumen:Wurzelläuftüber
K1
K2
...
K2k
K2k+1
§ FundamentaleOperation:Split-Vorgang
• AnforderungeinerneuenSeiteund
• AufteilungderSchlüsselmengenachfolgendemPrinzip
K1
...
Kk
Kk+1
Kk+2
...
K2k+1
• DermittlereSchlüssel(Median)undderVerweisaufdieneueSeite
werdenzumVaterknotengereicht.
• Ggf.musseinVaterknotenangelegtwerden(Anforderungeiner
neuenSeite).
Informationssysteme2017
Kapitel11:Indexstrukturen
12
B-Bäume- Einfügealgorithmus
§ ErmittleBlattknoten
• SuchenachdemKnotenPn,indemdasneueElementgespeichert
werdensoll(immereinBlatt)
• FügeneuesElementKj indenermitteltenKnotenPn ein
- ElementEinfügen(Pn,Kj, ∅)
§ ElementEinfügen(P,K,V)
• SucheEinfügepositionfürKinP
• WennPlatzvorhandenist,speichereElementKundV,sonstschaffe
PlatzdurchSplit-Vorgangundfügeein.
FordereneueSeite(P‘)an
ErmittleMedianKk+1 für2k+1Schlüsseleinträge(inkl.Kj)
SpeichereElementemitK<Kk+1 inP,K>Kk+1 inP‘
FügeKk+1 undVerweisaufP‘indieVaterseiteein,fallsdiesevorhandenist:
ElementEinfügen(Vater(P),Kk+1,V(P‘))
- Ansonsten:neueWurzelseitemitV(P),Kk+1,V(P‘)
-
➭ Split-VorgangalsallgemeinesWartungsprinzip
Informationssysteme2017
Kapitel11:Indexstrukturen
13
B-Bäume– AllgemeinerSplitvorgang
...
Kn
Kn+1
...
Pn+1
Pn
K1
P0
...
P1
Kk
Pk
Pk-1
...
Kk+1
Kn
...
K2k
Pk+1
Kk+1
K2k+1
P2k
Kn+1
P2k+1
...
Pn+1
P‘
Pn
K1
P0
Informationssysteme2017
...
P1
Kk
Pk-1
Kk+2
Pk
Pk+1
...
K2k+1
Pk+2
Kapitel11:Indexstrukturen
P2k+1
14
AufbaueinesB-BaumesmitGrad2
Einfügereihenfolge: 77
77 12
12 48
48 69
69 33
33 89
89 95
95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
Informationssysteme2017
Kapitel11:Indexstrukturen
15
AufbaueinesB-BaumesmitGrad2(1)
Einfügereihenfolge: 77 12 48 69 33
33 89
89 95
95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
77
12
Informationssysteme2017
77
48
77
69
77
Kapitel11:Indexstrukturen
17
AufbaueinesB-BaumesmitGrad2(2)
Einfügereihenfolge: 77 12 48 69 33 89 95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informationssysteme2017
33
69 7777
89
95
Kapitel11:Indexstrukturen
19
AufbaueinesB-BaumesmitGrad2(3)
Einfügereihenfolge: 77 12 48 69 33 89 95 90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informationssysteme2017
33
89
69
77
Kapitel11:Indexstrukturen
90
95
21
AufbaueinesB-BaumesmitGrad2(4)
Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informationssysteme2017
33
37
45
89
69
77
83
Kapitel11:Indexstrukturen
90
95
23
AufbaueinesB-BaumesmitGrad2(5)
Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15
15 87
87 97
97 98
98 99
99 50
50
33
2
12
Informationssysteme2017
37
45
48
89
69
77
83
Kapitel11:Indexstrukturen
90
95
25
AufbaueinesB-BaumesmitGrad2(6)
Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99
99 50
50
33
2
12
Informationssysteme2017
15
37
45
48
89
69
77
83
87
Kapitel11:Indexstrukturen
90
95
97
98
27
AufbaueinesB-BaumesmitGrad2(7)
Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
50
33
48
89
97
98
2
12
Informationssysteme2017
15
37
45
69
77
83
87
Kapitel11:Indexstrukturen
90
95
97
99
98
29
AufbaueinesB-BaumesmitGrad2(8)
Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
33
48
89
77
77
97
89
97
83
2
12
Informationssysteme2017
15
37
45
69
50
77
69
83
87
Kapitel11:Indexstrukturen
87
98
90
95
97
99
98
31
AufbaueinesB-BaumesmitGrad2(9)
Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
77
33
48
77
89
89
97
83
2
12
Informationssysteme2017
15
37
45
69
50
77
69
83
87
Kapitel11:Indexstrukturen
87
98
90
95
97
99
98
33
B-Bäume- Löschen
DieB-Baum-Eigenschaftmusswiederhergestelltwerden,wenndie
AnzahlderElementeineinemKnotenkleineralskwird.Durch
Ausgleich mitElementenauseinerNachbarseiteoderdurch
Mischen (Konkatenation)miteinerNachbarseitewirddieses
Problemgelöst.
(1)Maßnahme:AusgleichdurchVerschiebenvonSchlüsseln
BeimAusgleichsvorgangsindinderSeitePk–1ElementeundinP’
mehralskElemente.
...
K
K‘
K
...
n-1
P‘
Kn-1
P‘
Kn+1
...
P0 ‘
...
Kb-1‘
P1 ‘
Pb-1‘
Kn
P b‘
K1
P0
... Kk-1
P1
Pk-1
P
K1‘
P0 ‘
Kn
n+1
P
K1‘
...
b
...
P1 ‘
Informationssysteme2017
Kb‘
K1
P b‘
P0
...
P1
Kk-1
Pk-1
Kapitel11:Indexstrukturen
34
B-Bäume– Löschen(2)
(2)Maßnahme:Mischen vonSeiten
...
Kn-1
Kn
Kn+1
P‘
...
P
K1‘
P0‘
...
Kk‘
P1‘
K1
Pk‘
...
P0
Kn-1
Kn+1
...
Kk-1
P1
Pk-1
...
P‘
K1‘
P0‘
Informationssysteme2017
...
P1‘
Kn
Kk‘
Pk‘
K1
P0
...
P1
Kk-1
Pk-1
Kapitel11:Indexstrukturen
35
B-Bäume- Löschalgorithmus
1. LöscheninBlattseite
• SuchexinSeiteP
• EntfernexinPundwenn
a) b≥kinP:tuenichts
b) b=k–1inPundb>kinP’:gleicheUnterlaufüberP’aus
c) b=k–1inPundb=kinP’:mischePundP’.
2. LöschenininnererSeite
• Suchex
• Ersetzex=Ki durchkleinstenSchlüsselyinB(Pi)odergrößten
SchlüsselyinB(Pi-1)(nächstgrößererodernächstkleinerer
SchlüsselimBaum)
• EntferneyimBlattP
• BehandlePwieunter(1)
Informationssysteme2017
Kapitel11:Indexstrukturen
36
B-Bäume– Löschbeispiele(3)
11
1
3
9
15
Lösche 21:
(Ausgleich)
17
11
X
1
3
9
15
19
18
21
X
25
19
25
19
25
18
17
Lösche 11:
(innerer Knoten)
15
1
3
9
18
17
Mischen:
15
1
Informationssysteme2017
3
9
17
18
X
19
25
Kapitel11:Indexstrukturen
X
37
B+-BäumeimVergleichzuB-Bäumen
InB-Bäumen spielendieEinträge(Ki,Di,Pi)indeninnerenKnoten
zweiganzverschiedeneRollen:
• DiezumSchlüsselKi gehörendenDatenDi werdengespeichert.
• DerSchlüsselKi dientalsWegweiserimBaum.
FürdiesezweiteRolleistDi vollkommenbedeutungslos.In
B+-Bäumen wirdininnerenKnotennurdieWegweiser-Funktion
ausgenutzt,d.h.,essindnur(Ki,Pi)alsEinträgezuführen.
• WirsparenalsoPlatzindeninnerenKnotenundkönnenmehr
Wegweiser-Einträgedortspeichern
• DerFan-outerhöhtsichbeträchtlich,derBaumwirdflacher
Informationssysteme2017
Kapitel11:Indexstrukturen
38
B+-BäumeimVergleichzuB-Bäumen(2)
§ DieInformation(Ki,Di)wirdindenBlattknotenabgelegt.
§ FüreinigeKi ergibtsicheineredundanteSpeicherung.Dieinneren
KnotenbildenalsoeinenIndex(index part),dereinenschnellen
direktenZugriffzudenSchlüsselngestattet.
§ DieBlätterenthaltenalleSchlüsselmitihrenzugehörigenDatenin
Sortierreihenfolge.DurchVerkettungallerBlattknoten(sequence
set)lässtsicheineeffizientesequentielleVerarbeitungerreichen,
diebeimB-BaumeinenumständlichenDurchlaufinsymmetrischer
Ordnungerforderte.
➭ DiefürdenpraktischenEinsatzwichtigsteVariantedesB-Baumsist
derB+-Baum.
Informationssysteme2017
Kapitel11:Indexstrukturen
39
B+-Bäume- Erklärungsmodell
DerB+-Baumlässtsichauffassenalseinegekettete
sequentielleDateivonBlättern,dieeinenIndexteil besitzt,der
selbsteinB-Baumist.ImIndexteilwerdeninsbesonderebeim
Split-VorgangdieOperationendesB-Baumseingesetzt.
Indexteil:
B-Baum von Schlüsseln
13
3
1
6
10
16
2
10 11 12
3
4
5
6
7
8
9
19
21
13 14 15
16 17 18
21 22 23
19 20
sequentielle sortierte
Datei der Blätter
Informationssysteme2017
Kapitel11:Indexstrukturen
40
B+-Bäume- Definition
Der so definierte Baum heißt in der Literatur gelegentlich auch B*-Baum.
§ Definition:
Seienk,undk*ganzeZahlen,k,k*>0.EinB+-BaumBvomTyp(k,k*)ist
entwedereinleererBaumodereingeordneterSuchbaum,fürdengilt:
1. JederPfadvonderWurzelzueinemBlattbesitztdiegleicheLänge.
2. JederKnoten- außerWurzelnundBlättern- hatmindestensk und
höchstens2kEinträge.Blätterhabenmindestensk*undhöchstens
2k*Einträge.DieWurzelhatentwedermaximal2kEinträgeodersie
isteinBlattmitmaximal2k*Einträgen.
3. JederKnotenmitn Einträgen,außerdenBlättern,hatn+1 Kinder.
4. SeienR1,...Rn dieReferenzschlüsseleinesinnerenKnotens(d.h.
auchderWurzel)mitn+1Kindern.SeienV0,...,Vn dieVerweiseauf
dieseKinder.Danngilt:
a)
b)
c)
V0 verweistaufdenTeilbaum mitSchlüsselnkleineralsR1.
Vi (0<i<n)weistaufdenTeilbaum mitSchlüsselnzwischenRi undRi+1
(einschließlichRi).
Vn verweistaufdenTeilbaum mitSchlüsselngrößerodergleichRn
Informationssysteme2017
Kapitel11:Indexstrukturen
41
B+-Bäume- Knotenformate
§ UnterscheidungvonzweiKnotenformaten:
• M:KennungdesSeitentyps+#Einträge;festeLängeL
• innereKnoten(k≤b≤2k)
L
- L=lM +lp +2k(lK +lp)
M
# L − lM − l p %
k =#
%
$ 2 ∗ (lK + l p ) &
K1
P0
...
P1
freier Platz
Kb
Pb-1
Pb
• Blattknoten(k*≤m≤2k*)
- L=lM +2lp +2k*(lK +lD)
# L − lM − 2l p %
k* = #
%
2
∗
(l
+
l
)
$
K
D &
M
PPRIOR
K1
D1
...
Km
Dm
freier Platz
PNEXT
§ WassindtypischeGrößeninB+-Bäumen?
(inByte:)L=8192,lM=4,lP =4,lK =8,lD =88
InnererKnoten:k=341;Blatt:k*=42
Informationssysteme2017
Kapitel11:Indexstrukturen
42
B+-Bäume– Beispiel
§ B+-BaumdesTyps(3,2)
3
1
6
13
10
16
2
10 11 12
3
4
5
6
7
8
9
19
21
13 14 15
16 17 18
21 22 23
19 20
• JederKnotenhatdieGrößeeinesI/OBlocks.
• EinKnotenistzumindestens50%gefüllt.
• DasLeseneinesKnotensverursachttypischerweiseeinen
wahlfreienZugriffaufFestplatte
• EinB+Baumisti.d.R.sehr flach,d.h.Sucheverursachtnur
wenigewahlfreieZugriffe.
• Zudem,dieersten1-2EbenendesBaumssindi.d.R.im
Hauptspeicher"gecached".
Informationssysteme2017
Kapitel11:Indexstrukturen
43
B+-Bäume- Grundoperationen
(1)DirekteSuche:
DaalleSchlüsselindenBlätternsind,kostetdiedirekteSucheh+
Zugriffe.h+ istjedochimMittelkleineralshinB-Bäumen.Dafavg
beimB-Baumgutmithabgeschätztwerdenkann,erhältmanalso
durchdenB+-BaumeineeffizientereUnterstützungderdirekten
Suche.
(2)SequentielleSuche:
SieerfolgtnachAufsuchendesLinksaußenderStrukturunter
AusnutzungderVerkettungderBlattseiten.Essindzwarggf.mehr
BlätteralsbeimB-Baumzuverarbeiten,dochdanurh+–1innere
Knotenaufzusuchensind,wirddiesequentielleSucheebenfalls
effizienterablaufen.
Informationssysteme2017
Kapitel11:Indexstrukturen
44
B+-Bäume– Grundoperationen(2)
(3)Einfügen:
EsistvonderDurchführungundvomLeistungsverhaltenherdem
EinfügenineinenB-Baumsehrähnlich.BeiinnerenKnotenwird
dasSplittinganalogzumB-Baumdurchgeführt.BeimSplit-Vorgang
einerBlattseitemussgewährleistetsein,dassjeweilsdie
niedrigstenSchlüsseleinerSeitealsWegweiserinden
Vaterknotenkopiertwerden.
DieVerallgemeinerungdesSplit-VorgangsistanalogzumB-Baum.
(4)Löschen:
DatenelementewerdenimmervoneinemBlattentfernt(keine
komplexeFallunterscheidungwiebeimB-Baum).Weiterhinmuss
beimLöscheneinesSchlüsselsauseinemBlattdieserSchlüssel
nichtausdemIndexteilentferntwerden;erbehältseineFunktion
alsWegweiser.
DasMischenvonBlattknotenführtzurLöschungdesWegweisers
imVaterknoten.
Informationssysteme2017
Kapitel11:Indexstrukturen
45
B+-Bäume- Einfügebeispiel
15
<
1
5
9 12
15 19 28
33
53
71
33 37 41 46
≥
53 59 67 95
71 83 99
Einfügen von 45
41
15
1
5
9 12
Informationssysteme2017
33
15 19 28
53
33 37
41 45 46
Kapitel11:Indexstrukturen
71
53 59 67 95
71 83 99
46
B+-Bäume– AllgemeinerSplitvorgang
...
K1 D1 ...
K1
Kk* Dk* Kk+1* Dk+1* ...
...
K1 D1 ... Kk* Dk*
Informationssysteme2017
...
K1
Kk+1*
K2k*D2k*
KD
...
Kk+1* Dk+1* ... K D ... K2k*D2k*
Kapitel11:Indexstrukturen
47
B+-Bäume- Löschen
45
Lösche 28, 41, 46
15
1
5
9 12
Unterlauf à Ausgleich
33
X
15 19 28
15
5
45 46
X
Lösche 53
1
X
X
33 37 41
9 12
1
5
Informationssysteme2017
9 12
X
33 37
15 19
53 59 67
59
X
Mischen
45 53
15
71
71 83 99
45
33
15 19
53
33
33 37
45
71
59 67
71 83 99
Mischen
71
45 59 67
Kapitel11:Indexstrukturen
71 83 99
48
B*-Bäume
§ Verbesserungdes
Belegungsgrades
• verallgemeinerte
Überlaufbehandlung
• Split-Faktorm>1
Pi
Pk
m=1
Pi
Pi+1
Pi
Pk
Pi+1
Pi-1
Pi
Pi+1
m=2
è Verbesserte
Speicherplatzbelegung,dafür
höhereEinfügekosten
m=3
Pi-1
Informationssysteme2017
Pi
Kapitel11:Indexstrukturen
1
Pi
2
Pk
Pi+1
49
B*-Bäume– Belegungsgrad
§ WelcherBelegungsgradβdesB*-Baumswirderzielt
• beieinfacherÜberlaufbehandlung(Split-Faktorm=1)?
• beimEinfügeneinersortiertenSchlüsselfolge?
§ SpeicherplatzbelegungalsFunktiondesSplit-Faktors
Belegung
Split-Faktor
βmin
βavg
βmax
1
1/2=50%
ln2≈69%
1
2
2/3=66%
2× ln(3/2)≈81%
1
3
3/4 =75%
3× ln(4/3)≈86%
1
m
m/(m+1)
m× ln((m+1)/m)
1
Informationssysteme2017
Kapitel11:Indexstrukturen
50
B+-Bäume– Präfix-B+-Bäume
WegenderausschließlichenWegweiser-FunktionderSchlüsselinden
innerenKnotenistesnichtnötig,dieOptimierungsmaßnahmenaufdie
Schlüsselzustützen,dieindenBlattknotentatsächlichvorkommen.
➭ EinsatzvonminimalenSeparatorenalsWegweiser
• Beispiel:KonstruktionirgendeinesSeparatorsS mitderEigenschaft
Cookiemonster≤S<Ernie
... • D • ...
• Bigbird • Burt • Cookiemonster •
• Ernie • Grouch • Snuffleopoggus •
§ VerbesserungderBaumbreite(fan-out)
• ErhöhungderAnzahlderZeigerindeninneren Knoten
• SchlüsselkomprimierungundNutzungvon„Wegweisern”
• VariabellangeEinträgeerfordernKontrolledesUnterlaufsüberdie
tatsächlicheSpeicherplatzbelegung
R. Bayer, K. Unterauer: Prefix B-trees.
ACM TODS 2, 1 (March 1977)
Informationssysteme2017
Kapitel11:Indexstrukturen
51
Präfix-Eigenschaft
SinddieSchlüsselWorteübereinemAlphabetundistdieOrdnung
derSchlüsselinalphabetischer(lexikographischer)Ordnung,dann
giltfolgendeEigenschaft:
§ Präfix-Eigenschaft:
• SeienxundyzweiSchlüssel,sodassx<y.Danngibteseinen
eindeutigenPräfixŷvonymit:
(a)ŷisteinSeparatorzwischenxundyund
(b)keinandererSeparatorzwischenxundyistkürzeralsŷ.
§ BeimSpliteinerBlattseite mitSplitzwischenxundywirdnunŷals
WegweiserfürdenVaterknotenbestimmt.
§ Eskannauchsinnvollsein,Index-Knotennichtgenauinder"Mitte"
zusplitten,sonderneineleichteAbweichungdavonzuzulassen.
Wieso?WasisteinguterSeparatorzwischenDonaudampfschifffahrtsdampferherstellerundDonaudampfschifffahrtsgesellschaft?
Informationssysteme2017
Kapitel11:Indexstrukturen
52
Bulkloading
§ Problemstellung
• GegebeneinegroßeMengeanDatensätzen
• WiekanneinB+Baumdarüberaufgebautwerden?
• DasProblemistnatürlichallgemeinerundtrittauchbeianderen
Bäumen/Indexstrukturenauf.
§ NaiveMöglichkeit
• DatensätzeeinzelnnachundnachinB+Baumeinfügen
• D.h.eswirdimmervonderWurzelabnachderpassenden
Einfügestellegesucht
• Nichtsehreffizient(auchwenndieoberenEbenenineinemDB-Puffer
sind)
§ Idee
• SortiereDatenvor(resultiertinsortierteListevonSeiten)
• DannbaueBaumauf,indemDatenseitenderReihenachhinzugefügt
werden
Informationssysteme2017
Kapitel11:Indexstrukturen
53
Ablaufbeispiel
§ Annahme:derB+-Baumkann2EinträgeproSeitespeichern.
§ WirbeginnenmiteinerleerenWurzelundfügenimmerganze
Seitenein,hierzuerstdieSeitemitEinträgen3und4.
Wurzel
Sortierte Seiten,
noch nicht im B+-Baum
3
4
6
Informationssysteme2017
9
10 11
12 13
20 22
23 31
Kapitel11:Indexstrukturen
35 36
38 41
44
54
Ablaufbeispiel(2)
§ NachdemdiebeidenfolgendenSeiteneingefügtwordensindist
dieWurzelnunvoll.
§ BeimEinfügenvon(12,13)mussdieWurzelalsoaufgeteiltwerden.
Wurzel
6
10
Sortierte Seiten,
noch nicht im B+-Baum
3
4
6
Informationssysteme2017
9
10 11
12 13
20 22
23 31
Kapitel11:Indexstrukturen
35 36
38 41
44
55
Ablaufbeispiel(3)
§ BeimAufteilenderSeitenwurdendiesehiergleichmäßigaufdie
neuenSeitenunterderWurzelaufgeteilt
§ ImAllgemeinenhättemanauchandersaufteilenkönnen
• z.B.nacheinembestimmenFüllgrad(z.B.80%)
• odermanhätteauchallealtenEinträgeinderlinkenSeite
belassenkönnen.
Wurzel
10
6
12
Sortierte Seiten,
noch nicht im B+-Baum
3
4
6
Informationssysteme2017
9
10 11
12 13
20 22
23 31
Kapitel11:Indexstrukturen
35 36
38 41
44
56
Ablaufbeispiel(4)
§ Index-EinträgefürdieBlätterwerdenimmerindenamweitesten
rechtsstehendenIndex-KnotendirektüberderBlatt-Ebene
eingefügt.
§ Solltedieservollsein,somussaufgeteiltwerden.
Wurzel
10
6
20
12
23
35
Sortierte Seiten, noch
nicht im B+-Baum
3
4
6
Informationssysteme2017
9
10 11
12 13
20 22
23 31
Kapitel11:Indexstrukturen
35 36
38 41
44
57
Ablaufbeispiel(5)
Wurzel
20
10
6
3
4
12
6
Informationssysteme2017
9
Sortierte Seiten, noch
nicht im B+-Baum
35
10 11
23
12 13
20 22
38
23 31
Kapitel11:Indexstrukturen
35 36
38 41
44
58
Hashverfahren
§ Gegeben:DomänederSchlüssel𝑆𝑆 = {0, … 𝑀𝑀 − 1}
§ 𝑀𝑀 kannsehrgroßsein
§ AnfragenderForm:welcheDatensätzehabendenSchlüsselx?
§ SogenanntePunktanfragen
Grundidee
§ AbbildungaufAdressbereich𝐴𝐴, |𝐴𝐴| << |𝑆𝑆|
§ ℎ ∶ 𝑆𝑆 → 𝐴𝐴ordnetjedemSchlüsseleinenWertin𝐴𝐴 zu
§ GewünschteEigenschaften:
• VerteileSchlüsselgleichmäßigüberAdressbereich
• VermeideKollisionen
• Kollision:verschiedeneWertein𝑆𝑆 werdenaufdengleichen
Wertin𝐴𝐴 abgebildet
§ EinheitenimAdressbereichwerdenauchEimer(Englisch:Buckets)
genannt.
Informationssysteme2017
Kapitel11:Indexstrukturen
59
Hashverfahren(2)
§ Mannimmtan,dassdieZahlderbenutztenSchlüssel𝐾𝐾 vielkleiner
istalsdieDomäne𝑆𝑆.Abbildungℎ mussalsonurdiebenutzten
Schlüsselin𝐾𝐾 ordentlichabbilden.
§ GefahrvonKollisionen
§ Möglichkeiten,dieHashfunktionzuwählen
• ℎ(𝑘𝑘) = 𝑘𝑘𝑚𝑚𝑚𝑚𝑚𝑚𝑞𝑞,𝑞𝑞 bestimmtGrößedesAdressbereichs
• ℎ(𝑘𝑘) = 𝑘𝑘 B oderℎ(𝑘𝑘) = 𝑐𝑐 ∗ 𝑘𝑘,dannAuswahlgewisser
Bitpositionen,umgültigenAdressbereichzuerhalten.
§ FortgeschritteneHashmethoden(è DBSVLimWinter)
• DieseVerfahrensindsogenanntestatischeVerfahren
• EsgibtaberauchdynamischeVerfahren,diedieHashfunktion
andenBedarfanpassen(ErweiterbaresHashing).
Informationssysteme2017
Kapitel11:Indexstrukturen
60
StatischerHashIndex:Beispiel
Bucket
directory
key
h
Hash
function
123456
Melanie
701Broad
Eric
890890,…,
993889
336699
Merrie
555555,…,
678900
456789
Tom
197Cardiff
Houston
TX
123456, …,
246800
555555
Lee
221Post
Houston
TX
336699,…,
456789
678900
Jane
890890
Linda
123Speed
Tucson
AZ
246800
…
701Broad
Tucson
Tucson
AZ
Block 1
(Bucket)
AZ
Block 2
Block 3
197Cardiff
.
.
.
234Oak
Houston
TX
Houston
TX
Block n
993889
Informationssysteme2017
Davvid
564Alberca
Kapitel11:Indexstrukturen
Tucson
AZ
61
StatischerHashIndex
§ Suche(Lookup)
• EinZugriffaufaufdasVerzeichnis(directory)
• EinZugriffaufdieeigentlicheDatei
§ PerformancehängtvonWahlderHash-Funktionab
§ ÜberlaufvonBuckets
• Zuvieleverschiedene
bucket0
Schlüssel-Wertewerdenauf
gleichenBucket abgebildet
bucket1
overflow
• Lösung:Überlaufbehandlung
bucket2
mittelsVerkettungvon
Überlauf-Buckets
overflow
bucket3
Informationssysteme2017
Kapitel11:Indexstrukturen
62
IndexeinPostgres:B+Baum
CREATETABLEMeineTabelle (
IDint,
major int,
minorint,
name varchar
);
§ B+BaummitSchlüsselID
CREATEINDEXMeineTable_i1ONMeineTabelle ID;
§ B+BaummitSchlüssel(major,minor)
CREATEINDEXMeineTable_i2ONMeineTabelle (major,minor);
Informationssysteme2017
Kapitel11:Indexstrukturen
63
IndexeübermehrereSpalten
§ SogenannteComposite-KeyIndexe.
• AngabeeinerReihe(Achtung!Reihenfolgeistwichtig!)von
Spalten.
CREATEINDEXindexName ONMeineTabelle (att1,att2,att3);
§ TupelwerdendannimIndexsortiertanhanddieserAttribute
• "LexikographischeOrdnung":att1istprimäresKriterium,gefolgt
vonatt2,etc.
• OptionalmitOrdnungASCoderDESCdereinzelnenAttribute.
DefaultistASC.
CREATEINDEXindexName
ONMeineTabelle (att1DESC,att2,att3);
Informationssysteme2017
Kapitel11:Indexstrukturen
64
IndexeinPostgres:Hash
CREATEINDEXname ONtable USINGhash (column);
§ EinHash-IndexmachtSinn,falls:
• KeineBereichsanfragenbenötigtwerden
• Orderby (Schlüssel)nichtbenötigtwird
• KeineodernurkleineJoins überdenSchlüsselnnotwendigsind
Informationssysteme2017
Kapitel11:Indexstrukturen
65
Beispiel - Datenbank
customer
reserves
film
§ customer (customerID,name,street,city,state)
§ film(filmID,title,kind,rentalPrice)
§ reserved (customerID,filmID,resDate)
Informationssysteme2017
Kapitel11:Indexstrukturen
66
VerschiedeneSelektionen
§ Primärschlüssel,Punktanfrage
𝜎𝜎F,GHIJKB (𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓)
§ Punktanfrage
𝜎𝜎O,OGPKQRPSH,TUOVS Q (𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓)
§ Bereichsanfrage
𝜎𝜎WXSPTOUGYS,ZPX[ (𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓)
§ Konjunktion(d.h.logischesund)
𝜎𝜎\,T]KQ^ Q∧SPTOUGYS,ZPK[ (𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓)
§ Disjunktion(d.h.logischesoder)
𝜎𝜎SPTOUGYS,ZPXB∨\,T]KQJQ (𝑓𝑓𝑓𝑓𝑓𝑓𝑓𝑓)
Ziel
ErsetzedieBlätterdesAnfrageplansdurchspezifischeZugriffsMethoden,d.h.kann/sollicheinenIndexbenutzenoderbessereinen
sequenziellenScanderDatei?
Informationssysteme2017
Kapitel11:Indexstrukturen
67
StrategienfürkonjunktiveAnfragen
SELECT*
FROMcustomer
WHEREname ='Jensen'ANDstreet ='Elm'
ANDstate ='Arizona'
§
§
§
§
§
KönnendieIndexeauf(name)und(street)benutztwerden?
KannderIndexauf(name,street,state)benutztwerden?
KannderIndexauf(name,street)benutztwerden?
KannderIndexauf(name,street,city)benutztwerden?
KannderIndexauf(city,name,street)benutzt?
Informationssysteme2017
Kapitel11:Indexstrukturen
68
StrategienfürkonjunktiveAnfragen
SELECT*
FROMcustomer
WHEREname ='Jensen'ANDstreet ='Elm'
ANDstate ='Arizona'
§
§
§
§
§
KönnendieIndexeauf(name)und(street)benutztwerden?Ja
KannderIndexauf(name,street,state)benutztwerden?Ja
KannderIndexauf(name,street)benutztwerden?Ja
KannderIndexauf(name,street,city)benutztwerden?Ja
KannderIndexauf(city,name,street)benutzt?Nein
Informationssysteme2017
Kapitel11:Indexstrukturen
69
MehrdimensionaleIndexstrukturen
§ Bislang:EindimensionaleSchlüssel.
§ InvielenAnwendungenistdieAnzahlderDimensionenhöher,was
tun?
§ R-Baum
• RstehtfürRechteck/Rectangle
• KnotendefinierenminimaleRechtecke,diedieenhaltenen
Rechteckeumschließen
• Balanciert.Aufbau(Algorithmus)ähnlichzumB+Baum
• ÜberlappungderMBRs(=MinimumBounding Rectangles)
• ÜberlappungführtzuIneffizienzwährendderAnfrage.
Informationssysteme2017
Kapitel11:Indexstrukturen
70
R-Baum- Beispiel
A
D
K
E
J
F
B
I
D
H
G
Informationssysteme2017
B
A
L
C
E
C
F
J
G
Kapitel11:Indexstrukturen
H
K
L
I
71
NachteilevonIndexen
§ Platzverbrauch
§ Jedesinsert/delete/updatemussindenIndexennachgepflegt
werden
§ JedeÄnderungsoperationkostetetwas:CPUund/oderI/O
§ MengederÄnderungsoperationkannsovielkosten,dassdiese
KostendenNutzendesIndexüberwiegen
Grundregel:jemehrLeseoperationendestomehrlohnensichIndexe.
GenauereRegelnzum"Index Tuning",Anwendbarkeitundweitere
DetailszurphysischenOrganisationvonTupeln bzw.Referenzenauf
TupelinIndexenwerdeninderVLDatenbanksystemevorgestellt.
Informationssysteme2017
Kapitel11:Indexstrukturen
72
Herunterladen