3.7 Objektorientierte Datenbankmodelle
- es ex. verschiedene Ansätze
- im Folgenden
- theoretisch fundiertes Modell von Beeri
- das Modell von O2
Objektorientierte Datenbankmodelle
Referenz-Modell von Beeri (1989):
Gliederung in Strukturteil, Operationenteil, höhere Konstrukte
Strukturteil:
- Typen und Typkonstruktoren
- Objektidentität
- Klassen
- Beziehungen
- Strukturvererbung (Klassen- und Typhierarchie)
- Integritätsbedingungen
Operationenteil:
- SQL-Erweiterungen
- kalkülartige Sprachen
- deduktive Systeme
mit
- relationale Operationen
- objekterzeugende Operationen
- objekterhaltende Operationen
Höhere Konstrukte:
- Metaklassen
- Funktionen
- Methoden
- Vererbung und Overriding von Methoden
- Einkapselung
Objektorientierte Datenbankmodelle
Strukturteil:
- Typen und Typkonstruktoren
- Standarddatentypen wie INTEGER, STRING,..
- Typkonstruktoren wie SET OF und TUPLE OF: kompliziertere Typen
- Objektidentität
- vom System vergeben
- eindeutig
- unveränderbar
- für den Benutzer unsichtbar
- Klassen
- beschreiben Objekte mit ähnlichen Eigenschaften
- Typ, Objektvorrat und Objektbehälter
- Methoden
- Komponenten-Beziehungen bei Klassen (z.B. Verlage Komponente von Büchern)
- Is-a-Beziehungen
- Klassenhierarchie
Objektmenge der Unterklasse ist Teilmenge der Objektmenge der Oberklasse
(Studenten sind eine Teilmenge von Personen)
- Typhierarchie
Typ der Unterklasse hat mehr Eigenschaften als Typ der Oberklasse (Studenten
haben zusätzlich noch Matrikelnr. und Fach)
- Integritätsbedingungen: die meisten (Schlüssel, Fremdschlüssel, teilweise Kardinalitäten,) inhärent in anderen Konzepten enthalten; weitere Bedingungen: z.B. Kardinalitäten an Mengen, dynamische Integritätsbedingungen)
Objektorientierte Datenbankmodelle
Operationenteil:
- Operationen
- mindestens die Möglichkeiten wie in Relationenalgebra/SQL
- relationale Semantik: man extrahiert Werte aus Zuständen von Objekten;
liefert Relationen
- objekterzeugende Semantik: man erzeugt neue Objekte als Anfrageergebnis
mit Zuständen, die von vorhandenen Objekten extrahiert wurden;
Ergebnis ist dynamisch erzeugte Klasse
- objekterhaltende Semantik: man erhält eine Auswahl der in der DB
vorkommenden Objekte mit neuen Zuständen; Ergebnis ist dynamisch erzeugte
Ober-/Unterklasse
- Relationenmodell: generische Anfragen und Updates auf flachen Relationen
Objektorientierte Datenbankmodelle
Höhere Konzepte:
z.B. Methoden
- objekt- oder klassenspezifische Operationen
- werden wie Eigenschaften von Ober- zu Unterklasse vererbt
- Implementierung einer Methode kann bei Vererbung verändert werden
(Overriding)
- System wählt selbständig zur Laufzeit passende Implementierung (dynamisches Binden)
Objektorientierte Datenbankmodelle
O2:
Typen, Typkonstruktoren
- atomare: integer, char, boolean, string,...
- komplexe: tuple, set, list
- Klassen
- alles beliebig geschachtelt
Klassen
- mit Extension definierbar
- Objekt kann mehrere Rollen spielen
Klassenhierarchie
- Typhierarchie: Subtypen, in ihren Komponenten spezieller bzw. mehr
Komponenten
- Klassenhierarchie: Typ der Sohnklasse ist Subtyp von Typ der Vaterklasse
- Mehrfachvererbung, bei Namenskonflikten: teilweise Umbenennung, teilweise
Zurückweisung der Mehrfachvererbung
Generische Operationen
- O2QUERY vollständige relationale Semantik
- eingeschränkte objekterhaltende Semantik
- keine dynamischen Typen
Jutta Goeers
Tue May 20 14:25:53 MET DST 1997