Grundlagen der Datenbanken

Was ist der Hauptzweck der Normalisierung von Tabellen in einer relationalen Datenbank?

  1. ADie Zahl der Tabellen zu verringern, damit jede Suche ohne Joins schnell ausgeführt werden kann
  2. BDaten zu verschlüsseln, damit Unbefugte sie nicht lesen können
  3. CDoppelt gespeicherte Daten zu beseitigen und Anomalien zu verhindern, etwa dass Inhalte nach einer Änderung widersprüchlich werden
Antwort und Erläuterung anzeigen

Antwort: C. Doppelt gespeicherte Daten zu beseitigen und Anomalien zu verhindern, etwa dass Inhalte nach einer Änderung widersprüchlich werden

Die Normalisierung ist ein Entwurfsverfahren, das Tabellen anhand funktionaler Abhängigkeiten zwischen Spalten (eine Beziehung, bei der der Wert einer Spalte den Wert einer anderen eindeutig festlegt) aufteilt, damit dieselbe Tatsache nicht an mehreren Stellen gespeichert wird. Steht zum Beispiel in jeder Zeile einer Mitarbeitertabelle auch der Abteilungsname, müssen bei der Umbenennung einer Abteilung alle Zeilen ihrer Mitarbeiter geändert werden, und wird eine übersehen, sind die Inhalte widersprüchlich (Änderungsanomalie). Weitere Probleme entstehen: Eine Abteilung ohne Mitarbeiter lässt sich noch nicht erfassen (Einfügeanomalie), und das Löschen des letzten Mitarbeiters einer Abteilung löscht auch die Angaben zur Abteilung (Löschanomalie). Werden die Abteilungsangaben in eine eigene Abteilungstabelle ausgelagert, muss ein Abteilungsname nur an einer Stelle korrigiert werden. Andererseits erfordert die Aufteilung beim Suchen mehr Joins, sodass Normalisierung Suchen nicht unbedingt beschleunigt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. Der Primärschlüssel einer Auftragstabelle (AuftragsNr, ArtikelNr, Menge, KundenNr, Kundenname) ist {AuftragsNr, ArtikelNr}, und ihre funktionalen Abhängigkeiten sind {AuftragsNr, ArtikelNr} → Menge, AuftragsNr → KundenNr und KundenNr → Kundenname. Welches ist das richtige Ergebnis, wenn diese Tabelle bis zur dritten Normalform normalisiert wird?
  2. Der Primärschlüssel einer Mitarbeitertabelle (MitarbeiterNr, Name, Abteilungscode, Abteilungsname) ist MitarbeiterNr, und jede Spalte enthält nur einen einzigen Wert. Die funktionalen Abhängigkeiten sind MitarbeiterNr → Name, MitarbeiterNr → Abteilungscode und Abteilungscode → Abteilungsname. Welche Aussage über die Normalform dieser Tabelle ist richtig?
  3. 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?
  4. 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?
  5. 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?