Modul 5 - Dateiorganisation und Zugriffsstrukturen Flashcards
Agenda
- Allgemeines
- Primär- und Sekundärindizes
- Speicherverfahren
a) Heap
b) Sequentiell
c) Indexsequenziell
d) Indiziert-nichtsequenziell - Baumverfahren (evtl. weglassen da in DBI)
- Hash Verfahren
- Spezielle Speicherverfahren
Was bedeutet Dateiorganisation und Zugriffsstrukturen im Kontext von Datenbanken und welchen Zweck haben die beiden Konzepte in der Datenbankdomäne?
• Datenbankinhalte werden in physischen Dateien auf Seiten gespeichert
• Auf den Seiten sind die Tupel der Relation in Datensätzen organisiert
• Reines Speichern der Datensätze nicht ausreichend: müssen effizient
zugreifbar sein
Datensätze müssen innerhalb der Dateien geschickt organisiert werden
• Außerdem müssen zusätzliche Strukturen (Indexdateien, Zugriffspfade)
eingerichtet werden
• Verschiedene Zugriffsverfahren (unterscheiden sich nach verschiedenen
Kriterien)
Definition Dateiorganisationsform
Dateiorganisationsform:
• Form der Speicherung der internen Relation
• Grundlegende Dateiorganisationsformen (ohne Index) :
o Heap-Organisation: unsortierte Speicherung
o Sequenzielle Organisation: sortierte Speicherung
o Hash-Organisation: gestreute Speicherung
Definition Zugriffspfad
Zugriffspfad:
• jede über die grundlegende Dateiorganisationsform hinausgehende
Zugriffsstruktur
• Wie jede Indexdatei über eine interne Relation
Worst Case: Unsortierte Daten ohne Zugriffspfad
Statistisch gesehen müsste hierbei die Hälfte aller Datensätze durchsucht werden bis zu
einem Treffer
Deshalb liegen Daten meist sortiert vor und/oder haben mindestens einen
Index
Composite Index
Indizierung von mehreren Spalten. Höhepunkt:= ganze Tabellenzeilen werden indiziert
Beispiel:
o Nachname, Vorname
o „Müller“ gibt es viele, „Hans Müller“ weniger
o Suche nach Hans bringt allerdings nichts
Definition Primärschlüssel
Unterstützung durch Primärschlüssel:
o Wesentliche Eigenschaft: Duplikatfreiheit der zugeordneten Attributwerte
o Identifizierende Attributmenge
o Verknüpfung von Relationen
Definition Sekundärschlüssel
o Neben dem Primärschlüssel zusätzliches Suchkriterium zum Auffinden von Datensätzen
o Sehr sinnvoll zur Unterstützung bestimmter Anfragen
o Kann auch eines oder mehrere Attribute umfassen
o Nicht unbedingt eindeutig (im Gegensatz zu einem Primärschlüssel)
o Kann also mehrere Datensätze als Ergebnis einer Suche liefern:
• Z.B.: In einer Adressdatenbank wird nach dem Namen Müller als Suchkriterium gesucht. Es gibt zahlreiche
Treffer, da der Name Müller ein häufiger Nachname ist
Primärindex vs. Sekundärindex
- Pro interne Relation ein Primärindex, mehrere Sekundärindexe
- Ein Primärindex ist ein Zugriffspfad auf die interne Relation
- Primärindex über Primärschlüssel definiert
•Sekundärindex: jeder weitere Zugriffspfad auf die interne Relation
• Nicht jede interne Relation muss einen Primärindex besitzen
• Einige kommerzielle relationale DBSysteme nutzen in der Regel nur
Sekundärindexe als Zugriffspfad
Indexdatei
Einträge der Form (K, s)
o K = Wert eines Primär- oder Sekundärschlüssels („Suchschlüssel“, Zugriffsattributwert/en)
o s = Datensatz oder Verweis auf einen Datensatz, der K als Attributwert des Schlüssels hat
Definition Dünn besetzter Index
Dünn besetzter Index:
• Nur einige Datensätze sind im Index repräsentiert.
• Interne Relation sortiert nach den Zugriffsattributen => im Index reicht nur
jeweils 1 Eintrag pro Seite der internen Relation:
o Index verweist mit (K1
, S1
) auf den Seitenanführer, d.h. auf den bezüglich der Ordnung ersten Wert auf dieser
Seite
o Nächster Indexeintrag (K2
, S2
) verweist auf Seitenanführer der Nachfolgeseite
o Datensatz mit Zugriffsattributwert Kn wobei K1 ≤ Kn < K2 muss auf Seite von S1 zu finden sein.
Definition Dicht besetzter Index
Dicht besetzter Index:
• Speichert für jeden Datensatz der internen Relation einen Eintrag
in der Indexdatei
• Ermöglicht die Bearbeitung einiger Anfragen ohne Zugriff auf die
gespeicherte Tupel:
o Index nimmt weniger Speicherplatz ein, als die Originaldatei => Kann
deutlich bessere Antwortzeiten ergeben.
Definition Geclusterter Index
Geclusterter Index:
• In der gleichen Form sortiert, wie die interne Relation:
o Z.B. interne Relation mit Kundendaten nach Kundennummern sortiert => Indexdatei über dem Attribut KNr
üblicherweise geclustert
• nicht unbedingt dünn besetzt
• Beispiel Telefonbuch
o Einträge sind sortiert nach Nachname, Vorname und enthalten die komplette Information
Definition nicht-Geclusterter Index
Anders organisiert als die interne Relation
• Beispiele
o Inhaltsverzeichnis in einem Kochbuch: Suche nach Kartoffelpuffer ergibt Seitenanzahl, Rezept findet sich auf
der entsprechenden Seite
o Sekundärindex für Kundendaten-Relation über Attribut Name, aber Datei selbst sortiert nach
Kundennummern -> Sekundärindex nicht geclustert
Statische vs. dynamische Struktur
• Statische Zugriffsstruktur: optimal nur bei bestimmter (fester) Anzahl von zu
verwaltenden Datensätzen
• Dynamische Zugriffsstrukturen: können die Datensätze unabhängig von der
Anzahl optimal verwalten
o in DBMS üblich
Statische Verfahren
Heap → wahllos
• Indexsequenziell → Daten sortiert nach Index
• Indiziert-nichtsequenziell → Index greift auf Daten zu, aber Daten unsortiert