Databases Reference
In-Depth Information
K002 Hose
3
K003 Damenhut
1
L002 China-Tee
10
9.3.8 Object Views
Ein View ist eine virtuelle Tabelle, erzeugt durch eine Abfrage. Wir haben dies in
Kapitel 6 beschrieben. Ein object view ist das Gleiche als Objekttabelle. Jede Zeile
in einem object view ist ein Objekt mit Attributen und möglicherweise Methoden.
Ein interessanter Aspekt an dieser Form der Datensichten besteht darin, dass es
möglich ist, object views auf relationalen Basistabellen aufzubauen. Damit
gewinnt man Vorteile bei der objektorientierten Programmierung von Anwendun-
gen. 31 Die Zugriffe auf Daten können beispielsweise über die object views erfolgen,
so als wären die Datenstrukturen objektorientiert und nicht relational. 32 Ein weite-
rer Vorteil besteht darin, dass die Navigation zu den Werten komplexer, auf ab-
strakten Datentypen basierender Attribute einfacher sein kann 33 , als ein kompli-
zierter Join über 2 oder mehr Tabellen.
Wir zeigen ein Beispiel, in dem wir object views über den Basistabellen unserer
relationalen Versanddatenbank anlegen. Im Unterschied zu relationalen Daten-
sichten sind jeweils zwei Schritte erforderlich.
Zunächst erzeugen wir einen Datentyp für Kundenobjekte. Dabei wollen wir die
Adresse als benutzerdefinierten Datentyp verwalten.
create type otyp_KUNDE4view AS OBJECT
(
kunden_nr number (4,0) ,
status varchar2(1) ,
name varchar2(30) ,
adresse otyp_adresse,
letzte_bestellung date,
letzte_werbeaktion date,
zahlungsart char(1)
)
Im zweiten Schritt erzeugen wir den view über eine Abfrage, die natürlich objekt-
spezifische Eigenarten enthält. Die eine ist die optionale Festlegung, dass die OID
auf Basis des Primärschlüssels erzeugt werden soll. Weiterhin müssen wir den
Standardkonstruktor für eine Adresse benutzen, um mit den Werten von Straße,
Postleitzahl und Ort ein Objekt vom Typ otyp_adresse zu erzeugen.
31 Vgl. [Ora01b, S. 5-2],
32 Schreibende Zugriffe auf Views sind nicht immer zulässig, wie wir in Kapitel 6 ausgeführt
haben. Es gibt aber die Möglichkeit, über INSTEAD OF-Trigger das Verhalten eines UPDATE-
Befehls so umzudefinieren, dass er die gewünschten Operationen auf Basistabellen ausführt.
Vgl. [Ora01b, S. 5-14].
33 Darüber, was im Endeffekt einfacher ist, können sich nun Anhänger der Objektorientierung
und Verfechter des »klassischen« relationalen Ansatzes endlos streiten.
 
Search WWH ::




Custom Search