Grundlagen der Datenbanken

Auf der Spalte MitgliedsNr einer Mitgliedertabelle mit 1 Million Zeilen wurde ein B+-Baum-Index angelegt. Welche Kombination aus allgemein zu erwartender Wirkung und deren Preis ist richtig?

  1. ASuchen wie WHERE MitgliedsNr = 12345 werden schneller, doch Schreibvorgänge werden langsamer, weil bei jedem Einfügen oder Ändern einer Zeile auch der Index aktualisiert werden muss
  2. BSuchen auf allen Spalten werden schneller, ohne jeden Preis
  3. CDie Zeilen der Tabelle werden nach MitgliedsNr sortiert, sodass jede Suche schneller wird, und der Speicherbedarf halbiert sich
Antwort und Erläuterung anzeigen

Antwort: A. Suchen wie WHERE MitgliedsNr = 12345 werden schneller, doch Schreibvorgänge werden langsamer, weil bei jedem Einfügen oder Ändern einer Zeile auch der Index aktualisiert werden muss

Ein Index ist eine Datenstruktur, mit der sich anhand eines Werts in einer bestimmten Spalte schnell die Position der Zeilen mit diesem Wert finden lässt; relationale Datenbanken verwenden häufig B+-Bäume. Ohne Index müsste man, um die Zeile WHERE MitgliedsNr = 12345 zu finden, 1 Million Zeilen der Reihe nach durchsuchen (Full Table Scan), mit einem B+-Baum findet man sie dagegen, indem man nur wenige Ebenen von der Wurzel bis zu einem Blatt durchläuft. Verzweigt jeder Knoten zum Beispiel 100-fach, gilt 100 × 100 × 100 = 1 Million, es genügen also etwa drei Ebenen. Da die Blätter eines B+-Baums in Wertereihenfolge verkettet sind, lässt sich der Index auch für Bereichssuchen wie BETWEEN und für die Sortierung mit ORDER BY nutzen. Andererseits muss der Index bei jedem Einfügen, Ändern oder Löschen einer Zeile mit aktualisiert werden, sodass Schreibvorgänge langsamer werden, und der Index braucht Speicherplatz. Suchen auf Spalten ohne Index werden nicht schneller.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. Für eine Mitgliedertabelle mit 1 Million Zeilen wird erwogen, auf den Spalten MitgliedsNr (alle verschieden), Präfektur (47 Werte) und Geschlecht (2 Werte, etwa je zur Hälfte) jeweils einen B+-Baum-Index anzulegen. Bei welcher Spalte ist ein Index bei einer Suche, die in der WHERE-Klausel einen Wert für eine Spalte angibt, voraussichtlich am wenigsten wirksam?
  2. Welche Aussage beschreibt unter den als NoSQL bezeichneten Datenbanken die Eigenschaften eines Key-Value-Stores im Allgemeinen richtig?
  3. Welche Beschreibung des CAP-Theorems für eine verteilte Datenbank, die Kopien der Daten auf mehreren Servern hält, ist zutreffend?
  4. Welcher Begriff der relationalen Datenbanken bezeichnet eine Zeile einer Tabelle (Relation)?
  5. Welche Bedingung muss die Spalte (oder Spaltenkombination) erfüllen, die in einer Tabelle einer relationalen Datenbank als Primärschlüssel festgelegt wird?