Grundlagen der Datenbanken

In einer Datenbank, die überwiegend zum Lesen und Aggregieren dient, werden normalisierte Tabellen manchmal absichtlich zu einer zusammengeführt, sodass dieselben Daten mehrfach gehalten werden (Denormalisierung). Welche Kombination aus Vorteil und Nachteil dieses Entwurfs ist richtig?

  1. ADer Speicherbedarf sinkt, weil Duplikate verschwinden, doch das Lesen wird langsamer, weil mehr Joins nötig sind
  2. BLesen und Ändern werden beide schneller, und die Datenkonsistenz bleibt automatisch gewahrt
  3. CDas Lesen wird schneller, weil weniger Joins nötig sind, doch der Aufwand für Änderungen steigt, um die mehrfach gehaltenen Daten konsistent zu halten
Antwort und Erläuterung anzeigen

Antwort: C. Das Lesen wird schneller, weil weniger Joins nötig sind, doch der Aufwand für Änderungen steigt, um die mehrfach gehaltenen Daten konsistent zu halten

Normalisierung beseitigt doppelt gespeicherte Daten und verhindert Änderungsanomalien, doch dann erfordert jede Suche Joins über mehrere Tabellen. Wo die Leseleistung zählt, wird die Normalisierung manchmal absichtlich aufgebrochen, indem häufig gemeinsam verwendete Spalten in einer Tabelle zusammengeführt oder aggregierte Ergebnisse als Spalten gespeichert werden. Das nennt man Denormalisierung. Mit weniger Joins wird das Lesen schneller, doch da dieselben Daten an mehreren Stellen gespeichert sind, muss jede Änderung alle Stellen korrekt aktualisieren, was den Änderungsaufwand und das Risiko von Widersprüchen erhöht. Auch der Speicherbedarf steigt im Allgemeinen. Datenbanken für die Transaktionsverarbeitung mit vielen Änderungen werden daher grundsätzlich normalisiert, und Denormalisierung wird nur dort eingesetzt, wo sie nötig ist, nachdem Nutzen und Preis abgewogen wurden.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. In einem E-R-Diagramm besteht zwischen Studierenden und Kursen eine Viele-zu-viele-Beziehung: Ein Studierender belegt mehrere Kurse, und ein Kurs wird von mehreren Studierenden belegt. Wie lässt sich diese Beziehung mit Tabellen einer relationalen Datenbank geeignet umsetzen?
  2. In einer Kontentabelle wird eine Transaktion gestartet, und ein UPDATE, das vom Saldo von Konto A 300 abzieht, sowie ein UPDATE, das zum Saldo von Konto B 300 addiert, werden ausgeführt. Danach wird statt COMMIT ein ROLLBACK ausgeführt. Was geschieht mit der Kontentabelle?
  3. Welche der ACID-Eigenschaften, die eine Transaktion haben sollte, besagt, dass eine Überweisung, die Konto A belastet und Konto B gutschreibt, entweder vollständig oder gar nicht ausgeführt wird, selbst wenn zwischendurch ein Fehler auftritt?
  4. Der Bestand eines Produkts in einer Lagertabelle ist 10. Transaktion T1 liest den Bestand und schreibt den Wert minus 3 zurück, T2 liest den Bestand und schreibt den Wert minus 5 zurück. Wie hoch ist der Endbestand, wenn beide ohne Sperren in der Reihenfolge T1 liest, T2 liest, T1 schreibt, T2 schreibt ablaufen?
  5. Welche Aussage beschreibt unter den Problemen, die bei gleichzeitig laufenden Transaktionen auftreten, einen Dirty Read richtig?