Anfang des Inhaltsbereichs

Funktionsdokumentation B*-Bäume für Tabellen mit Indizes Dokument im Navigationsbaum lokalisieren

Verwendung

Für jeden Index, der für eine Basistabelle definiert ist, legt das Datenbanksystem einen B*-Baum an.

Achtung

Der Index einer Basistabelle wird explizit mit einer SQL-Anweisung definiert und hat nichts mit der B*-Baum-Indexebene zu tun.

Das Datenbanksystem legt die Invertierungslisten des Index folgendermaßen ab:

     1:1-Beziehung zwischen Sekundärschlüssel (Indexeintrag) und Primärschlüssel:

Das Datenbanksystem legt die Invertierungsliste direkt in der entsprechenden Blattseite des B*-Baums des Index ab.

     1:n-Beziehung zwischen Sekundärschlüssel und Primärschlüsseln:

Das Datenbanksystem legt die Invertierungsliste ebenfalls in der entsprechenden Blattseite des B*-Baums des Index ab (flache Liste).

Wenn die Invertierungsliste zu groß für die Blattseite wird, dann legt das Datenbanksystem einen zusätzlichen B*-Baum für diese Invertierungsliste an. In der Blattseite des B*-Baums des Index steht dann nur noch der Verweis auf den B*-Baum der Invertierungsliste.

Beispiel

Die Tabelle CUSTOMER enthält die Namen aller Kunden eines Hotels.

     Primärschlüssel: Kundennummer cno

     Index: Nachname name

Tabelle CUSTOMER

cno

name

firstname

2003

Miller

Frank

2011

Griffith

Mary

2078

Miller

Jane

2104

Miller

Susan

2295

Miller

Sally

Der Index enthält die folgenden Invertierungslisten.

Invertierungslisten

Bezeichnung

Sekundärschlüssel

Primärschlüssel

Invertierungsliste 1

Griffith

2011

Invertierungsliste 2

Miller

2003, 2078, 2104, 2295

Das Datenbanksystem legt die Invertierungsliste 1 direkt in der Blattseite des B*-Baums des Index ab.

Für die Invertierungsliste 2 legt das Datenbanksystem einen zusätzlichen B*-Baum an, weil auf der Blattseite des B*-Baums des Index nicht genügend Platz vorhanden ist.

Siehe auch:

Logische Zugriffsstrukturen

Ende des Inhaltsbereichs