Databases Reference
In-Depth Information
Die zweite Aufgabe können wir mithilfe zweier zusätzlicher Tabellen 17 für die
Wa r e n z u g änge und Warenabgänge lösen, in die die Bestandsänderungen mit
Datum, Uhrzeit, gegebenenfalls Veranlasser und Art der Änderung einzutragen
sind. Für diese Tabellen darf es kein DELETE-Privileg und kein UPDATE-Privileg
geben: Buchungen dürfen nicht gelöscht und nicht nachträglich verändert werden;
eine falsche Buchung muss durch eine weitere Korrekturbuchung mit umgekehr-
tem Vorzeichen rückgängig gemacht werden. Des Weiteren darf auf der Spalte
bestand der Tabelle artikel kein UPDATE- oder INSERT-Privileg existieren.
Es ist dann sicherzustellen, dass für jede Bestandsänderung die entsprechende
Tabelle gleichzeitig mit aktualisiert wird. Dies lässt sich auf zwei Weisen erledigen:
Es wird ein Satz in die Buchungstabelle geschrieben. Dafür muss ein INSERT-
Privileg vorhanden sein. Die entsprechenden Änderungen im Bestand werden
durch Trigger veranlasst.
Es wird kein Recht auf die Buchungstabellen vergeben. Änderungen erfolgen
jetzt über Datenbankprozeduren (vgl. Kapitel 7.3.1, dort finden Sie auch die
Beispiele). Die berechtigten Benutzer bekommen dafür ein EXECUTE-Privileg
für die entsprechenden Prozeduren.
Die Benutzung von Datenbankprozeduren ist die direktere Lösung dieses Prob-
lems. Sie entspricht dem aus der Programmierung bekannten Verfahren der ab-
strakten Datentypen und der Datenkapselung bei der objektorientierten Program-
mierung.
Die Verwendung von Triggern hat aber einen Vorteil, der für eine Reihe von mittle-
ren Anwendungen ins Gewicht fallen kann: Falls für die Entwicklung des Front-
end-Systems ein über ODBC angeschlossenes PC-Datenbanksystem wie z.B.
Access verwendet wird, können wir die Oberfläche unabhängig vom Backend ent-
wickeln. Die Daten werden in die Buchungstabellen eingetragen, und die Trigger
sorgen dafür, dass die Bestandsänderung veranlasst wird. Es müssen keine ODBC-
Prozeduren für den Aufruf der Datenbankprozeduren erstellt werden.
17 Es reicht im Prinzip eine Tabelle, in der die Zugänge durch positive Zahlen, die Abgänge durch
negative Zahlen einzutragen sind. Die Formulierung der Konsistenzregeln und die Regelung
der Zugriffsrechte ist dann eventuell etwas umständlicher. Es können auch mehr als zwei Ta-
bellen genommen werden - für jede Art der Bestandsänderung eine eigene Tabelle. Dies führt
aber schnell zu einer unübersichtlichen Menge von Tabellen.
 
Search WWH ::




Custom Search