Grundlagen der Datenbanken

Welche Beschreibung des CAP-Theorems für eine verteilte Datenbank, die Kopien der Daten auf mehreren Servern hält, ist zutreffend?

  1. AIst das Netzwerk zwischen den Servern partitioniert, lassen sich Konsistenz (jeder Server liefert den neuesten Wert) und Verfügbarkeit (jede Anfrage erhält eine Antwort) nicht gleichzeitig vollständig erfüllen
  2. BBei geeignetem Entwurf lassen sich Konsistenz, Verfügbarkeit und Partitionstoleranz stets alle gleichzeitig erfüllen
  3. CPartitionstoleranz bedeutet, Netzwerkverbindungen doppelt auszulegen, damit das Netzwerk zwischen den Servern nie partitioniert wird
Antwort und Erläuterung anzeigen

Antwort: A. Ist das Netzwerk zwischen den Servern partitioniert, lassen sich Konsistenz (jeder Server liefert den neuesten Wert) und Verfügbarkeit (jede Anfrage erhält eine Antwort) nicht gleichzeitig vollständig erfüllen

Das CAP-Theorem zeigt, dass eine verteilte Datenbank die folgenden drei Eigenschaften nicht alle gleichzeitig vollständig erfüllen kann: Konsistenz (Consistency: Lesen von einem beliebigen Server liefert das Ergebnis des letzten Schreibvorgangs), Verfügbarkeit (Availability: Jeder nicht ausgefallene Server beantwortet jede Anfrage) und Partitionstoleranz (Partition Tolerance: Das System arbeitet weiter, auch wenn die Kommunikation zwischen Servern unterbrochen ist). Da sich Netzwerkpartitionen in der Praxis nicht vermeiden lassen, lautet der Kern: Tritt eine Partition auf, muss das System wählen, ob es der Konsistenz Vorrang gibt und die Antwort auf manche Anfragen einstellt oder der Verfügbarkeit Vorrang gibt und weiter antwortet, wobei veraltete Werte zurückgegeben werden dürfen. Ohne Partition lassen sich Konsistenz und Verfügbarkeit beide erfüllen. Viele NoSQL-Produkte geben der Verfügbarkeit Vorrang und setzen auf Eventual Consistency, bei der sich die Kopien mit der Zeit angleichen. Partitionstoleranz bedeutet nicht, Verbindungen doppelt auszulegen, sondern die Eigenschaft, auch bei einer Partition weiterzuarbeiten.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Datenbanken

  1. Welcher Begriff der relationalen Datenbanken bezeichnet eine Zeile einer Tabelle (Relation)?
  2. Welche Bedingung muss die Spalte (oder Spaltenkombination) erfüllen, die in einer Tabelle einer relationalen Datenbank als Primärschlüssel festgelegt wird?
  3. In einer Mitarbeitertabelle (MitarbeiterNr, EMail, Name, Abteilung) sind MitarbeiterNr und EMail für jeden Mitarbeiter verschieden und nie NULL. Name und Abteilung können mit denen anderer Mitarbeiter übereinstimmen. Welche Antwort nennt alle Schlüsselkandidaten dieser Tabelle?
  4. Eine Belegungstabelle (StudentNr, KursNr, Note) hält fest, welcher Studierende welchen Kurs mit welcher Note belegt hat. Ein Studierender belegt mehrere Kurse, und ein Kurs wird von mehreren Studierenden belegt. Welcher Primärschlüssel ist für diese Tabelle geeignet, wenn sich derselbe Studierende nie zweimal für denselben Kurs anmeldet?
  5. Der Primärschlüssel einer Kundentabelle (KundenID, Name) ist KundenID, und KundenID in einer Bestelltabelle (BestellID, KundenID) ist als Fremdschlüssel definiert, der auf KundenID der Kundentabelle verweist. Die Kundentabelle enthält nur die Zeilen mit KundenID 'C1' und 'C2'. Was geschieht, wenn in diesem Zustand INSERT INTO Bestellung VALUES ('O9', 'C5') ausgeführt wird?