DB2 10.5 for Linux, UNIX and Windows

Aspekte des gemeinsamen Zugriffs

Da viele Benutzer auf Daten in einer relationalen Datenbank zugreifen und sie ändern, muss der Datenbankmanager einerseits Benutzern diese Änderungen ermöglichen und andererseits sicherstellen, dass die Datenintegrität erhalten bleibt.

Der Begriff gemeinsamer Zugriff bezeichnet die Möglichkeit, dass mehrere interaktive Benutzer oder Anwendungsprogramme die Ressourcen zur gleichen Zeit verwenden können. Der Datenbankmanager steuert diesen Zugriff, um unerwünschte Folgen zu vermeiden. Solche Folgen könnten zum Beispiel sein:
  • Verlorene Aktualisierungen. Zwei Anwendungen A und B lesen zum Beispiel dieselbe Zeile und berechnen aufgrund der Daten, die von den Anwendungen gelesen werden, neue Werte für eine der Spalten. Wenn die Anwendung A die Zeile aktualisiert und anschließend B die Zeile ebenfalls aktualisiert, geht die von A durchgeführte Aktualisierung verloren.
  • Zugriff auf nicht festgeschriebene Daten. Anwendung A könnte einen Wert in der Datenbank aktualisieren, den Anwendung B liest, bevor er festgeschrieben wurde. Wenn dann A diese Aktualisierung rückgängig macht, basieren die von B ausgeführten Berechnungen vielleicht auf ungültigen Daten.
  • Nichtwiederholbare Lesevorgänge. Anwendung A liest zum Beispiel eine Zeile, bevor sie andere Anforderungen verarbeitet. In der Zwischenzeit ändert oder löscht Anwendung B die Zeile und schreibt diese Änderung fest. Später, wenn Anwendung A versucht, die ursprüngliche Zeile erneut zu lesen, erhält sie die geänderte Zeile oder stellt fest, dass die ursprüngliche Zeile gelöscht wurde.
  • Lesevorgänge mit Phantomzeilen. Anwendung A führt möglicherweise eine Abfrage aus, die eine Menge von Zeilen entsprechend einer Suchbedingung liest. Anwendung B fügt neue Daten ein oder aktualisiert vorhandene Daten, die die Abfrage von Anwendung A erfüllen würden. Anwendung A führt die Abfrage innerhalb derselben UOW erneut aus und es werden zusätzliche Werte ("Phantomzeilen") zurückgegeben.

Der gemeinsame Zugriff ist für globale temporäre Tabellen kein Problem, da diese nur für die Anwendung verfügbar sind, die sie deklariert oder erstellt.

Steuerung des gemeinsamen Zugriffs in Systemen föderierter Datenbanken

Ein System föderierter Datenbanken unterstützt von Anwendungen und Benutzern übergebene SQL-Anweisungen, die auf zwei oder mehr Datenbankverwaltungssysteme (DBMS) innerhalb einer Anweisung verweisen. Zum Verweisen auf solche Datenquellen (die jeweils aus einem DBMS und Daten bestehen) verwendet der DB2-Server Kurznamen. Kurznamen sind Aliasnamen für Objekte in anderen Datenbankverwaltungssystemen. In einem föderierten System verlässt sich der DB2-Server auf die Protokolle zur Steuerung des gemeinsamen Zugriffs des Datenbankmanagers, der die angeforderten Daten bereitstellt.

In einem föderierten DB2-System besteht für Datenbankobjekte Positionstransparenz. Wenn zum Beispiel Informationen von Tabellen und Sichten versetzt werden, können Verweise auf diese Informationen (durch Kurznamen) aktualisiert werden, ohne die Anwendungen ändern zu müssen, die diese Informationen anfordern. Wenn eine Anwendung auf Daten über Kurznamen zugreift, verlässt sich der DB2-Server darauf, dass die Protokolle zur Steuerung des gemeinsamen Zugriffs an den Datenquellen die Umsetzung der Isolationsstufen sicherstellen. Obwohl der DB2-Server versucht, die angeforderte Isolationsstufe an der Datenquelle mit einem logischen Äquivalent abzugleichen, können die Ergebnisse je nach Funktionsspektrum der Datenquelle unterschiedlich sein.