Serialisierbarkeit und relationale Algebra

Classified in Informatik

Written at on Deutsch with a size of 3,2 KB.

Serialisierbarkeitsprobleme

Unter der Annahme, dass die Operation ein Commit der Transaktion beinhaltet, ist sie serialisierbar. Andernfalls wäre sie nicht serialisierbar (man stelle sich den Pfeil als T3 vor). Abschließend lässt sich sagen, dass die oben genannte Graphentechnik nur angewendet werden kann, wenn es Module mit gleichzeitigen Transaktionen gibt.

Eine erfolgreiche Transaktion kann selbst ein falsches Ergebnis erzeugen, wenn sie in eine andere Transaktion eingreift. Drei mögliche Probleme:

  1. Lost Update (Verlorenes Update):
    • t1 A liest x
    • t2 B liest x
    • t3 A schreibt x
    • t4 B schreibt x
    • Update von A geht verloren
  2. Unbestätigte Einheit: Wenn eine Transaktion ein Tupel abruft oder aktualisiert, das von einer anderen Transaktion aktualisiert wurde, die noch nicht abgeschlossen ist.
  3. Inkonsistente Analyse: Wenn zwei Transaktionen an denselben Daten arbeiten und eine vor der anderen committet.

Definition einer Transaktion

Eine Sequenz von Operationen, deren Ausführung durch eine oder mehrere Eingangs-Nachrichten (D-Eingang) ausgelöst wurde und eine oder mehrere Ausgangs-Nachrichten erzeugt, die folgende Voraussetzungen erfüllen:

  1. Atomizität: Jede Transaktion wird entweder vollständig ausgeführt oder abgebrochen und rückgängig gemacht.
  2. Konsistenz: Die Integritätsanforderungen müssen am Anfang und am Ende erfüllt sein.
  3. Dauerhaftigkeit: Ein Commit kann nicht rückgängig gemacht werden.
  4. Isolation: Garantiert, dass für jedes Paar von Transaktionen T1 und T2 gilt, dass T1 entweder vor oder nach T2 endet.

Relationale Algebra Operatoren

Welche relationalen Algebra-Operatoren können die folgenden Operationen direkt ausführen?

  1. INTERSECT (R ∩ S)

    (R ∪ S) - ((R - S) ∪ (S - R))

  2. JOIN

    RENAME, gefolgt von CARTESIAN PRODUCT, gefolgt von SELECT und PROJECT

Der JOIN-Operator der relationalen Algebra

  1. Definition

    Der JOIN von zwei Relationen R1 und R2, die nicht unbedingt vereinbar sind, erfordert, dass es mindestens ein gemeinsames Attribut mit derselben Domäne gibt, das eine Qualifikation Q erfüllt.

    R3 ist eine neue Relation, deren Intension die Verkettung der Intensionen von R1 und R2 ist, und deren Extension durch die Tupel aus dem kartesischen Produkt R1 x R2 gebildet wird, die die Qualifikation Q erfüllen.

  2. Beispiel

    Beispiel: Snuff = Snuff-1 JOIN Snuff-2

  3. Arten von JOIN

    • Equi-Join (Q ist =)
    • Theta-Join (Q ist ≠)
    • Natural Join (Equi-Join über gemeinsame Attribute von R1 und R2)
    • Self-Join (Natural Join auf derselben Relation)
    • Semi-Join: R3 hat das Schema von R1 und enthält die Tupel von R1, die am Join von R1 und R2 beteiligt sind.

Entradas relacionadas: