Databases Reference
In-Depth Information
Der SQL-Standard war hier früher recht restriktiv. 1 Die Datensicht musste auf einer
Tabelle basieren und durfte praktisch nur aus einer einfachen Auswahl und Pro-
jektion bestehen, die keine virtuellen Spalten erzeugt. Mittlerweile sind die Krite-
rien für die Aktualisierbarkeit erheblich erweitert und differenziert worden. Bei-
spielsweise ist es nicht mehr grundsätzlich ausgeschlossen, Daten über Views zu
ändern, die auf einem Verbund mehrerer Tabellen beruhen. Wenn die Query einen
Schlüssel einer der unterliegenden Basisrelationen enthält und jedem Tupel der
Datensicht genau ein Tupel in jener Basisrelation entspricht und wenn gewisse
Spalten des View unmittelbar Spalten der Basistabelle entsprechen, ist es möglich,
die Werte eben dieser Spalten über die Datensicht zu ändern. Im Ganzen sind die
Kriterien recht kompliziert - sie müssen aber insgesamt die logische Bedingung
erfüllen, dass die Änderungen in der virtuellen Tabelle auf eindeutige Weise in
eine Änderung einer oder mehrerer Basistabellen überführt werden können.
INSERT
Bei der INSERT-Anweisung ist eine Besonderheit zu beachten. Auch für aktuali-
sierbare Datensichten kann es unmöglich sein, einen neuen Satz einzufügen. Eine
Einfügeoperation über eine Datensicht muss auch dann zurückgewiesen werden,
wenn die Sicht nicht alle Spalten enthält, die bei der Tabellendefinition als NOT NULL
deklariert wurden und für die kein expliziter DEFAULT angegeben wurde (vgl.
hierzu das Beispiel auf Seite 248).
DELETE
Die Verwendung der DELETE-Anweisung ist bei dieser Art Datensichten sowohl
logisch als auch praktisch unproblematisch. Die betreffenden Tupel können über
ihren Primärschlüssel eindeutig identifiziert werden. Und bei der Löschung ver-
schwinden die Spalten, die der virtuellen Spalte zugrunde liegen, ebenfalls.
Probleme für Nutzer
Je umfassender die Klasse der änderbaren Datensichten ist, desto besser für die
logische Datenunabhängigkeit (Kapitel 1), die ja fordert, dass der Nutzer auf der
externen Sicht der Datenbank (auf Datensichten) arbeitet und die konzeptionelle
Sicht (Basistabellen) nicht zu kennen braucht. Ein Problem liegt bei INSERT und
UPDATE auf Datensichten mit virtuellen Spalten allerdings darin, daß der Benutzer
unter Umständen gar nicht weiß, warum seine Angaben zu Fehlern führen. Damit
sind Datensichten einerseits die Voraussetzung und andererseits zugleich das Hin-
dernis für eine konsequente Trennung der externen Datensicht von der logischen.
Lösbar ist die Problematik der Änderungsbeschränkungen auf dem jetzigen Stand
von SQL nur durch organisatorische Konventionen für die Arbeit mit der Daten-
bank. Hilfreich ist dabei auch eine Aufklärung der Nutzer über das logische
Schema der Datenbank, so dass sie sich über die Grundlage ihrer Datensicht im
1
Vgl. [DaDa 93; S. 174].
Search WWH ::




Custom Search