chapter06.pdf

72
Anwendersoftware (AS) Anwendersoftware (AS) Datenbanken und Informationssysteme Kapitel 6: Zugriffspfade Bernhard Mitschang Universität Stuttgart Wintersemester 2013/2014 Teile zu diesem Folienskript beruhen auf einer ähnlichen Vorlesung, gehalten von Prof. Dr. T. Härder am Fachbereich Informatik der Universität Kaiserslautern und Prof. Dr. N. Ritter am Fachbereich Informatik der Universität Hamburg. Für dieses Skriptum verbleiben alle Rechte (insbesondere für Nachdruck) bei den Autoren.

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