2.1 Datenbanksysteme

2.1.4 Transaktionssysteme

In der kommerziellen Datenverabeitung werden Datenbanksysteme vorwiegend im Rahmen sogenannter Transaktionssysteme eingesetzt [Me88, Be90, GR93]. Solche Transaktionssysteme gestatten die Ausführung vorgeplanter Anwendungsfunktionen (Platzreservierung, Kontostandsabfrage, u.ä.), die durch entsprechende Anwendungs- oder Transaktionsprogramme realisiert werden. Die Zugriffe auf die Datenbank erfolgen durch entsprechende DB-Operationen in den Anwendungsprogrammen und sind daher für den Endbenutzer vollkommen unsichtbar. Die Verarbeitung findet meist im Dialog statt, so daß man auch häufig von Online Transaction Processing (OLTP) spricht.

Abb. 2-5 zeigt den Grobaufbau eines zentralisierten Transaktionssystems, welches auf einem einzelnen Verarbeitungsrechner abläuft. Demnach besteht ein Transaktionssystem neben dem DBS vor allem aus einem sogenannten DC-System (Data Communication System). Das DC-System wiederum besteht aus einem TP-Monitor (Transaction Processing Monitor) sowie einer Menge anwendungsbezogener Transaktionsprogramme.

Abb. 2-5: Grobaufbau eines zentralisierten Transaktionssystems

Der TP-Monitor kontrolliert die Ausführung der Transaktionsprogramme und realisiert die Kommunikation von Programmen mit Terminals sowie mit dem DBS. Insbesondere können so physische Eigenschaften der Terminals und des Verbindungsnetzwerks sowie Aspekte der Prozeß-Zuordnung von DBS und Programmen für den Anwendungsprogrammierer transparent gehalten werden ("Kommunikationsunabhängigkeit"). Zur Realisierung der Kommunikation benutzt der TP-Monitor typischerweise die entsprechenden Basisdienste des Betriebssystems. Programm- und Prozeßverwaltung werden dagegen aus Leistungsgründen meist durch den TP-Monitor selbst realisiert. So können durch eine prozeßinterne Auftragsverwaltung ("Multi-Tasking") große Transaktionssysteme mit tausenden Terminals effizient verwaltet werden. Die Bereitstellung eines eigenen Betriebssystem-Prozesses pro Benutzer/Terminal würde in diesem Fall zu inakzeptablem Leistungsverhalten führen.

Weitere Aufgaben des TP-Monitors betreffen Nachrichtenverwaltung, Transaktionsverwaltung (in Kooperation mit dem DBVS), Authentifikation sowie Autorisierung. Zur Realisierung von Kommunikationsunabhängigkeit werden Nachrichten zwischen Terminal und Programmen vom TP-Monitor von einem gerätespezifischen in ein neutrales Format transformiert (Konzept des "virtuellen Terminals"). Die Nachrichten werden ferner i.a. protokolliert, um Fehler wie Nachrichtenverlust automatisch behandeln zu können. Desweiteren unterstützen TP-Monitore oft Synchronisations- und Recovery-Funktionen auf Dateien, die nicht unter Kontrolle des DBVS liegen. Zur Gewährleistung der ACID-Eigenschaften wird daher auch ein Commit-Protokoll zwischen TP-Monitor und DBVS erforderlich. Eine ausführliche Beschreibung von TP-Monitoren bietet [GR93].

Ein relativ abstraktes Modell eines Transaktionssystems wurde von der X/Open-Organisation definiert, um die Interoperabilität zwischen Teilsystemen (TP-Monitore, DBS etc.) unterschiedlicher Hersteller zu ermöglichen. Zur Verbesserung der Portabilität von Transaktionsanwendungen soll ferner eine einheitliche Anwendungsschnittstelle festgelegt werden. Das Modell für den zentralen Fall ist in Abb. 2-6 gezeigt (die Übertragung auf verteilte Transaktionssysteme wird in Kap. 11.4.1 diskutiert). Dabei wird die Verallgemeinerung getroffen, daß im Rahmen einer Transaktion mehrere sogenannter Resource-Manager aufgerufen werden können. Ein Datenbanksystem ist dabei nur ein möglicher Typ eines Resource-Managers; weitere Resource-Manager können z.B. Dateisysteme, Window-Systeme, Mail-Server oder TP-Monitor-Komponenten wie die Nachrichtenverwaltung sein. Ein Transaction-Manager (TM) führt die Transaktionsverwaltung durch, insbesondere ein gemeinsames Commit-Protokoll mit allen Resource-Managern, die an einer Transaktionsausführung beteiligt sind, um die Alles-oder-Nichts-Eigenschaft von Transaktionen zu gewährleisten. Der TM ist dabei in einer realen Implementierung üblicherweise Teil des TP-Monitors oder des Betriebssystems. Die Mehrzahl der TP-Monitor-Funktionen sind in dem Modell jedoch nicht explizit repräsentiert, sondern werden als Teil der Ablaufumgebung angesehen.

Die Schnittstellen zwischen Anwendungen und TM (TX-Schnittstelle) sowie zwischen TM und Resource-Managern (XA-Schnittstelle) wurden standardisiert, um eine Interoperabilität zwischen ansonsten unabhängigen Resource-Managern zu erreichen. Die Transaktionsausführung sieht vor, daß eine Anwendung über die TX-Schnittstelle dem TM Beginn, Ende und Abbruch einer Transaktion mitteilt. Der TM vergibt bei Transaktionsbeginn eine eindeutige Transaktionsnummer, welche danach von der Anwendung bei allen RM-Aufrufen mitgegeben wird. Am Transaktionsende führt der TM dann über die XA-Schnittstelle ein Zweiphasen-Commit-Protokoll mit den Resource-Managern durch. Das X/Open-Modell unterstellt dabei, daß jeder Resource-Manager eine lokale Transaktionsverwaltung unterstützt, insbesondere Synchronisation, Logging und Recovery.

Abb. 2-6: X/Open-Modell eines zentralisierten Transaktionssystems [GR93]

Die Schnittstelle zwischen Anwendung und RM, welche vom jeweiligen RM abhängt (z.B. SQL für DBS), sowie die TX-Schnittstelle bilden das sogenannte Application Programming Interface (API).