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:
- 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
- Unbestätigte Einheit: Wenn eine Transaktion ein Tupel abruft oder aktualisiert, das von einer anderen Transaktion aktualisiert wurde, die noch nicht abgeschlossen ist.
- 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:
- Atomizität: Jede Transaktion wird entweder vollständig ausgeführt oder abgebrochen und rückgängig gemacht.
- Konsistenz: Die Integritätsanforderungen müssen am Anfang und am Ende erfüllt sein.
- Dauerhaftigkeit: Ein Commit kann nicht rückgängig gemacht werden.
- 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?
INTERSECT (R ∩ S)
(R ∪ S) - ((R - S) ∪ (S - R))
JOIN
RENAME
, gefolgt vonCARTESIAN PRODUCT
, gefolgt vonSELECT
undPROJECT
Der JOIN-Operator der relationalen Algebra
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.
Beispiel
Beispiel:
Snuff = Snuff-1 JOIN Snuff-2
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.