update
This commit is contained in:
@ -0,0 +1,52 @@
|
||||
# Interne Datenorganisation
|
||||
## Index und B-Baum
|
||||
### Dünner Index
|
||||
- Indexeinträge für jede Page
|
||||
- Indizierte Daten müssen innerhalb der Page sortiert sein und einmalig vorkommen
|
||||
- Hat weniger Datensätze als eigentliche Tabelle
|
||||
- Enthält nur die Page-Nummer und den Schlüsselwert
|
||||
- Meistens verwendet für Primärschlüssel
|
||||
- 
|
||||
### Dichter Index
|
||||
- Indexeinträge für jeden Record
|
||||
- Indizierte Daten müssen nicht sortiert sein
|
||||
- Indexeinträge können mehrfach vorkommen
|
||||
- Hat gleiche Anzahl Datensätze wie die eigentliche Tabelle
|
||||
- Enthält Page-Nummer, Record-Nummer und den Schlüsselwert
|
||||
- 
|
||||
|
||||
### Mehrstufiger Index (Baum)
|
||||
- Indexeinträge sind in einem Baum organisiert
|
||||
- Jeder Knoten enthält Schlüsselwerte und Zeiger auf die Kinderknoten
|
||||
|
||||
### B-Baum
|
||||
- Balancierter mehrstufiger Index
|
||||
- 
|
||||
|
||||
#### Suchen in B-Bäumen
|
||||
- Suche beginnt an der Wurzel
|
||||
- Ist x im Knoten enthalten?
|
||||
- Ja: Suche beendet
|
||||
- Nein: Gehe zum Kindknoten, dessen Schlüsselwert am nächsten an x liegt
|
||||
- Ist Knoten Blattknoten?
|
||||
- Ja: Suche erfolglos beendet
|
||||
- Nein: Wiederhole Suche im Kindknoten
|
||||
- Zwischen welchen Schlüsselwerten liegt x?
|
||||
- Gehe zum jeweiligen Kindknoten (> → rechts / < → links)
|
||||
|
||||
#### Einfügen in B-Bäume
|
||||
- Suche nach der Position, an der x eingefügt werden soll
|
||||
- Ist der Knoten voll? (Anzahl der Schlüsselwerte = 2m)
|
||||
- Ja: Knoten teilen
|
||||
- Mittleren Schlüsselwert in den Elternknoten einfügen
|
||||
- Falls Elternknoten voll wiederhole Teilung nach oben
|
||||
- Falls Elternknoten Wurzel ist, wird eine neue Wurzel erstellt
|
||||
- B-Baum wächst um eine Stufe
|
||||
- Nein: Einfügen des Wertes in den Knoten
|
||||
|
||||
|
||||
### Variante B+ Baum
|
||||
- Keine Daten in den Knoten
|
||||
- Nur Schlüsselwerte und Zeiger auf die Kinderknoten
|
||||
- Daten befinden sich in den Blattknoten
|
||||
- Suche, Einfügen, Löschen immer $O(log n)$
|
Reference in New Issue
Block a user