zusammenfassungen/Writerside/topics/04/Datenbanken/02_semantischeDatenmodellierung.md
David Schirrmeister 8fc91f469f update
2025-06-12 13:22:57 +02:00

53 lines
1.9 KiB
Markdown

# 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
- ![image_895.png](image_895.png)
### 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
- ![image_896.png](image_896.png)
### 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
- ![image_897.png](image_897.png)
#### 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)$