19.2 Oracle

19.2.1 Verteilte DB-Verarbeitung

Oracle gestattet, in einer Transaktion und auch innerhalb einer SQL-Operation auf mehrere unabhängige Datenbanken zuzugreifen (verteilte Join-Berechnung u.ä.). Die Übertragung von Operationen und Ergebnissen erfolgt über die Kommunikationskomponente SQL*NET, die eine Reihe unterschiedlicher LAN- und WAN-Kommunikationsprotokolle unterstützt (TCP/IP, SNA, DECnet etc.). SQL*NET ist dabei auf jedem Client- und Server-Rechner zu installieren. Die Übersetzung und Optimierung der SQL-Anweisungen erfolgt stets auf Server-Seite durch eines der Oracle-DBS, das mit anderen DBS (DB-Servern) zusammenarbeitet. Für diese Zusammenarbeit sind zuvor sogenannte DB-Links zu spezifizieren. Um systemweit eindeutige Objektnamen zu bekommen, werden sie mit dem jeweiligen Knotennamen erweitert. Durch Definition von Synonymen kann dem Benutzer gegenüber jedoch Ortstransparenz erreicht werden (Kap. 4.4).

Verteilte Änderungstransaktionen sind erst seit Einführung eines verteilten Zwei-Phasen-Commit-Protokolls in Oracle V7 (1992) möglich. Seit dieser Version wird auch eine Schnappschuß-Replikation unterstützt.

Für den Zugriff auf DBS anderer Hersteller bietet Oracle eine Reihe von Gateways im Rahmen der Produktfamilie SQL*CONNECT. SQL*CONNECT läuft dabei (zusätzlich zu SQL*NET) stets auf dem Server-Rechner des Fremd-DBS. Anwendungen können damit auf das Fremd-DBS quasi wie auf eine Oracle-Datenbank zugreifen. Beim Gateway-Einsatz sind drei Zugriffsformen zu unterscheiden:

Oracle-DBS können auch zur verteilten Transaktionsverarbeitung unter Kontrolle verschiedener TP-Monitore eingesetzt werden. Zudem unterstützt Oracle die XA-Schnittstelle von X/Open DTP (Kap. 11.4.1), so daß es in ein verteiltes Commit-Protokoll eingebunden werden kann. Ferner wird Microsofts ODBC-Schnittstelle (Kap. 11.4.5) über entsprechende Treiber abgedeckt, worüber Client-Anwendungen in standardisierter Weise auf Oracle-Datenbanken zugreifen können.