Objektorientierte Datenmodelle

Werbung
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
Kapitel 5: Objektorientierte DB-Modelle & ODMG
Relationales
Datenmodell
(RDM)
Netzwerk- und
Hierarchisches
Datenmodell
(NDM, HDM)
Objektorientierte
Datenmodelle
(OODM)
Objektrelationale
Datenmodelle
5.1
5.1
6.1
6.1
5.2
5.2 ODMG
ODMG
6.2,
6.2,6.3
6.3
Überblick über
die Konzepte
Darstellung von
Assoziationen
3.1
3.1
Datendefinition
Anfragen
4.1
4.1
4.2
4.2
Aktualisierungsoperationen
Spezifika
3.2
3.2 SQL
SQL
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.1
5.1: Überblick über objektorientierte DB-Modelle
Nachfolgend wird das ODMG Datenbankmodell als das wichtigste OO-Datenmodell
behandelt.
Das ODMG-Datenmodell basiert auf dem Core Component Objektmodell der Object
Management Group (OMG) und stellt ein spezielles Objektorientiertes Datenmodell dar.
Modellierungsmächtigkeit gegenüber dem RDM stark erweitert durch:
❏ Orthogonale Persistenz
❏ Typkonstruktoren und komplexe Objekte
❏ Objektidentität
❏ Typen und Klassen
Anforderungen
Anforderungender
der
OO-Manifesti
OO-Manifesti
❏ Methoden und Kapselung
❏ Vererbung
❏ Methodenredefinition und späte Bindung
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.2
1
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Typkonstruktoren und komplexe Objekte
Komplexe Objekte werden aus einfacheren Objekten durch die Verwendung von
Konstruktoren aufgebaut.
❏ Grundbausteine sind die Basistypen
❏ Konstruktoren für Aggregattypen
❏ Konstruktoren für Kollektionen
Integer,
Integer, Boolean
Boolean
Tuple
Tuple
Ungeordnete
UngeordneteKollektion:
Kollektion:
Set,
Set, Bag
Bag
Geordnete
GeordneteKollektion:
Kollektion:
List,
List, Array
Array
❏ Orthogonale Schachtelung der Konstruktoren
❏ Ein ODMG Objekt ist Instanz genau eines Typs.
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.3
OODM: Objektidentität
Jedes Objekt besitzt eine von seinem Wert unabhängige Identität. Es erhält bei seiner
Erzeugung eine Objektidentifikator:
❏ Der Identifikator ist systemweit eindeutig. Ein Objekt ist damit von allen anderen
Objekten unterscheidbar.
❏ Der Identifikator ist unabhängig vom Zustand und den Zustandsänderungen des
Objektes.
❏ Der Objektidentifikator wird vom System verwaltet und kann vom Benutzer nicht
geändert werden.
Vorteil: Objekte können durch mehrere andere Objekte referenziert werden (object
sharing), wodurch sich beliebige (auch zyklische) Objektgraphen aufbauen lassen.
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.4
2
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Typen und Klassen
❏ Typen dienen der statischen Klassifikation von Werten und Operationen. Zweck:
Vermeidung von Laufzeitfehlern, Wahl von Speicherungsstrukturen und
Optimierungen.
❏ Typen sind syntaktische Bedingungen auf Ausdrücken, die die Operator-/OperandKompatibilität (zum Übersetzungszeitpunkt) sicherstellen sollen.
❏ Ein Typ definiert das Verhalten und die möglichen Zustände seiner Instanz.
• Methodensignaturen
• Attributtypen
❏ Bei der Typdefinition können Attribute für das Objekt und Beziehungen zu anderen
Objekten festgelegt werden.
❏ Zu einem Typ kann eine Extension verwaltet werden, in die Objekte dieses Typs bei
ihrer Erzeugung automatisch eingefügt werden.
❏ Zu einem Typ kann es mehrere Implementationen geben. Eine Typdefinition
zusammen mit einer seiner Implementierungen wird als Klasse bezeichnet.
• Methodenrümpfe
• Attributinitialisierungen
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.5
OODM: Kapselung
❏ Kapselung ist ein aus dem Bereich der Programmiersprachen bekanntes Konzept
(→ Modulkonzept, Abstrakter Datentyp).
❏ Ein Objekt besitzt einen Zustand (die aktuellen Attributwerte) und eine Menge von
Methoden, über die auf den Zustand des Objektes zugegriffen werden kann.
❏ Die Kapselung heißt strikt, wenn ausschließlich über die Objektmethoden auf den
Zustand zugegriffen werden kann. Das ODMG-Modell erzwingt strikte Kapselung.
Vorteile der Kapselung:
❏ Die Implementationen der Methoden können geändert werden, ohne
Anwendungsprogramme zu invalidieren (logische Datenunabhängigkeit).
❏ Integritätsbedingungen können in den Methoden überprüft werden.
❏ Zugriffsberechtigungen können überprüft werden.
❏ Objekte stellen Einheiten dar, die potentiell über die Grenzen von Anwendungen,
Sitzungen, Systemen und Plattformen hinaus, also global, aufbewahrt, verteilt und
verwendet werden können. Andererseits können sie zentral definiert, implementiert
und gewartet werden.
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.6
3
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Vererbung
❏ Typen sind in einer Subtyp-/Supertyphierarchie organisiert, wobei ein Typ mehrere
Supertypen besitzen darf.
❏ Es gibt eine vordefinierte, durch Subtypen erweiterbare ODMG-Typhierarchie.
Die Subklassen erben die Attribute und Methoden der Superklassen. In der Subklasse
können Methoden und Attribute redefiniert werden.
Name
Mitarbeiter
U
Gehalt
Festangestellte
U
d
Beginn
Werksstudenten
Dauer
❏ Vererbung ist ein mächtiges Modellierungskonzept zur Beschreibung von
Gegebenheiten der realen Welt (is-a Beziehungen = Spezialisierungsbeziehung).
❏ Vererbung unterstützt die Wiederverwendung von Definitionen und
Implementationen unter Berücksichtigung von Klassenunterschieden.
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.7
OODM: Methodenredefinition
Name
Mitarbeiter
urlaubNehmen
print
U
Gehalt
Festangestellte
urlaubNehmen
U
d
Beginn
Werksstudenten
Dauer
urlaubNehmen
Begriffe:
❏ Overloading: Für einen Methodennamen (urlaubNehmen) existieren
unterschiedliche Methodenimplementationen.
❏ Overriding: Die Methodenimplementation der Subklasse hat Vorrang vor der
ererbten gleichnamigen Methodenimplementation der (transitiven) Superklasse(n).
Beispiel:
Festangestellte.urlaubNehmen redefiniert Mitarbeiter.urlaubNehmen
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.8
4
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Späte Bindung (late binding)
❏ In Abhängigkeit von der Klassenzugehörigkeit eines Objektes wird zur Laufzeit eine
Methodenimplementation für eine überladene Methode ausgewählt.
Vergleiche: frühe statische Bindung für überladene Bezeichner in C.
❏ Die auszuführende Methode kann durch Konsultieren des Klassenobjektes
(Metaobjekts) und entsprechendes Traversieren der Klassenhierarchie gefunden
werden.
Der
DerMechanismus
Mechanismusder
derdynamischen
dynamischenBindung
Bindung
erlaubt
erlaubtsowohl
sowohldem
demKlienten
Klientenals
alsauch
auchdem
dem
Implementierer
Implementierereiner
einerMethode
Methodevon
vonder
derAuswahl
Auswahl
der
derkorrekten
korrektenImplementation
Implementationzu
zuabstrahieren.
abstrahieren.
Mitarbeiter.urlaubNehmen()
Mitarbeiter.urlaubNehmen()
for
for each
each mm in
in Mitarbeiter
Mitarbeiter
m.urlaubNehmen()
m.urlaubNehmen()
end
end
Entscheidung zur
Laufzeit "dynamic
dispatch"
Werkstudent.urlaubNehmen()
Werkstudent.urlaubNehmen()
Festangestellte.urlaubNehmen()
Festangestellte.urlaubNehmen()
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.9
OODM: Durchgängiges Beispiel
Zur Erinnerung das durchgängige Beispiel:
Kurz
Name
Abteilung
n
n
Aufgaben
führt
aus
Nr
m
Projekt
Betreuung
Titel
Budget
1
ist Oberabteilung
von
Oberabteilung
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.10
5
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Darstellung von Assoziationen
Beispiel: ODL-Schemadefinition der Firmendatenbank (Ausschnitt)
database
database schema
schema FirmenDB
FirmenDB
interface
interface Abteilung
Abteilung
(( extent
extent Abteilungen
Abteilungen
keys
keys Kurz)
Kurz)
{{ attribute
attribute string
string Kurz;
Kurz;
attribute
attribute string
string Name;
Name;
relationship
set<Projekt>
relationship set<Projekt> Aufgaben
Aufgaben
inverse
Projekt::Betreuung;
inverse Projekt::Betreuung;
relationship
relationship Abteilung
Abteilung Oberabt;
Oberabt;
boolean
boolean neuesProjekt(in
neuesProjekt(in Projekt
Projekt p)
p) raises
raises (...)
(...)
};
};
Typ & Klasse
interface
interface Projekt
Projekt
(( extent
extent Projekte
Projekte
keys
keys Nr)
Nr)
{{ attribute
attribute unsigned
unsigned short
short Nr;
Nr;
attribute
attribute string
string Titel;
Titel;
attribute
float
Budget;
attribute float Budget;
relationship
relationship set<Abteilung>
set<Abteilung> Betreuung
Betreuung
inverse
inverse Abteilung::Aufgaben;
Abteilung::Aufgaben;
};
};
Typ & Klasse
Assoziation
Assoziationüber
über
OID-Mengen
OID-Mengen
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.11
OODM: ODMG-Objektmodell (1)
Zustand der Projektdatenbank:
FirmenDB
Projekte
Nr Titel
100 DB Fahrpläne
Abteilungen
Budget
300.000
Betreuung
Budget
100.000
Betreuung
➀➂➄
Nr Titel
200 ADAC Kundenstamm
Kurz
Name
UXSW Unix SW
Kurz
Name
PCSW PC SW
➃➅
Nr Titel
300 Telekom Statstik
Kurz
Name
MFSW Mainframe SW
Budget
200.000
Aufgaben
➀➁
Aufgaben
➂➃
Oberabt
Oberabt
Aufgaben
Oberabt
Aufgaben
Oberabt
NULL
Aufgaben
Oberabt
NULL
Betreuung
Kurz
LTSW
Name
Leitung SW
Kurz
PERS
Name
Personal
➁
➄
➅
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.12
6
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: ODMG-Objektmodell (2)
❏ Definition der ODMG-Typen Abteilung und Projekt
❏ Die Datenbank besteht aus einem Aggregat mit den beiden benannten Mengen
Projekte und Abteilungen als Komponenten.
❏ Diese Mengen sind die Extensionen der beiden Objekttypen Projekt und Abteilung.
❏ Die Mengen enthalten Referenzen auf die Objekte (Objektidentifikatoren), die als
Instanzen des entsprechenden Objekttyps existieren.
❏ Die einzelnen Objekte sind Aggregate, die sich aus den Eigenschaften des Objekts
zusammensetzen:
• Die Attribute der Objekte können wieder Kollektionen oder Aggregate sein, die
sich mit beliebiger Schachtelungstiefe aus den Basisdatentypen
zusammensetzen.
• Im Beispiel treten allerdings nur atomare (flache) Attributwerte auf.
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.13
OODM: Assoziationen im ODMG-Objektmodell
❏ Darstellung von Beziehungen zu anderen Objekten nicht wertbasiert durch die
Verwendung von Fremdschlüsseln, sondern durch Objektidentifikatoren (OIDs)
❏ Assoziationen werden ähnlich wie Attribute definiert:
Assoziierter
Typ
relationship
relationship set
set <Abteilung>
<Abteilung> Betreuung
Betreuung
inverse
inverse Abteilung
Abteilung ::
:: Aufgaben;
Aufgaben;
RollenBezeichner
zum
Traversieren
inverse
Beziehung
❏ Diese speziellen Attribute besitzen Referenzen auf andere Objekte als Werte
(→ Kollektionen von Referenzen werden möglich).
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.14
7
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Datendefinition im ODMG-Objektmodell (1)
Die Datendefinitionssprache ODL im ODMG-Standard:
❏ ODL: Object Description Language definiert eine Datenbank als Sammlung von
Typdefinitionen (interface)
❏ Objekttyp:
• Eigenschaften für die Objekte dieses Typs
– Attribute (Name und Typ)
– Assoziationen (Name, Typ und Inverse-Assoziation)
– Methoden (Name und Signatur)
• Eigenschaften für den Typ selbst
– Extension
– Schlüssel
– Supertypen und Vererbung
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.15
OODM: Datendefinition im ODMG-Objektmodell (2)
Attribut:
❏ Extern sichtbarer Zustand des Objekts
❏ Nur Literale (auch zusammengesetzte) als Attributwerte
❏ Attribut spezifiziert zwei Methoden:
getValue() → Literal
setValue(new_Value :Literal)
❏ Attribute können mit benutzerdefinierten Funktionen überschrieben werden:
Beispiel: Alter-Berechnung
getValue()
→ Tagesdatum - Geburtsdatum
setValue(...) → Differenz berechnen und Geburtsdatum aktualisieren
❏ Invariante:
getValue(setValue(x)) = x
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.16
8
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Extension
❏ Automatische Verwaltung der aktuellen Objektmenge zu einem Typ (optional)
❏ Enthält alle erzeugten und nicht wieder gelöschten Objekte zu diesem Typ
❏ Wichtig im DB-Bereich für die Verwaltung von Massendaten
❏ Typ als Objektfabrik und Sammelbehälter
FirmenDB
Projekte
interface
interface Projekte
Projekte
(extent
(extent Projekte)
Projekte)
Nr Titel
100 DB Fahrpläne
Budget
300.000
Betreuung
...
Datenbanken und Informationssysteme
(Typ Projekte)
database
database FirmenDB
FirmenDB
Objektorientierte Datenbankmodelle 5.1.17
OODM: Supertypen und Vererbung
❏ Typen können in Subtyphierarchien angeordnet werden
❏ Angabe mehrerer Supertypen möglich (Mehrfachvererbung)
❏ Vererbung von Attributen, Assoziationen und Methoden
❏ Methodenredefinition und Verfeinerung weiterer Eigenschaften ist möglich
❏ Extension eines Subtyps ist Teilmenge der Extension seines Supertyps
(z.B. Werkstudenten ⊆=Mitarbeiter)
database
database FirmenDB
FirmenDB
FirmenDB
Werkstudenten
Studenten
interface
interface Werkstudent:
Werkstudent: Student,
Student, Mitarbeiter
Mitarbeiter
(extent
Werkstudenten)
(extent Werkstudenten)
{{ attribute
attribute Datum
Datum Beginn;
Beginn;
attribute
attribute unsigned
unsigned short
short Dauer;
Dauer;
attribute
DM
Verguetung;
attribute DM Verguetung; };
};
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.18
9
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Datendefinition
Modellinhärente Bedingungen:
❏ Eindeutigkeit von Schlüsseln
❏ Referentielle Integrität beim Löschen von Objekten
❏ Inklusionsbedingung bei Subtypbeziehungen
Benutzerdefinierte Bedingungen:
❏ Überprüfung in den Methoden
❏ Kapselung verhindert unkontrollierten Zugriff
❏ Aber: Ausprogrammierung der Tests notwendig
(in aktueller Version des ODMG-Standards)
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.19
OODM: Anfragen
Die Anfragesprache OQL im ODMG-Objektmodell:
❏ OQL: Object Query Language
❏ Deskriptiv, mengenorientiert
❏ Obermenge der relationalen Anfragesprache SQL
❏ Wichtigste Erweiterungen gegenüber SQL:
• Berücksichtigung von Werten und Objekten
• Offenheit gegenüber verschiedenen Arten von Kollektionen (Anfragen gegen
Kollektionen und Werte und Objekte als Anfrageergebnisse möglich)
• Höhere Sprachorthogonalität: Die OQL-Konstrukte sind frei kombinierbar.
• Keine Beschränkung auf flache Strukturen (geschachtelte und mengenwertige
Attribute)
• Neben einem Satz vordefinierter Funktionen können beliebig definierte
Methoden in Anfragen verwendet werden.
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.20
10
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Anfragen in OQL
Beispiel:
vgl. 5.1.11 und 5.1.12
Ermittlung der Titel aller Projekte, an denen die Abteilung Mainframe SW arbeitet.
select p.Titel
from Projekte p
where exists a in p.Betreuung : a.Name = "Mainframe SW";
Hier:
• keine Join-Operation notwendig (wg. der direkten Darstellung der Beziehung
zwischen den Projekten und den Abteilungen, von denen es betreut wird)
• Zugriff auf die Abteilungen, die das Projekt p betreuen über p.Betreuung
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.21
OODM: Anfragen in OQL: Orthogonalität
Beispiel: Geschachtelte Bereichsrelation und OIDs im Ergebnis
Selektiere alle Angestellten, die am DB-Fahrplan-Projekt arbeiten,
und gib zu deren Abteilungen die Kurzbezeichnung aus.
Kurz
Angestellte
...
select
select (abt.Kurz,
(abt.Kurz, (select
(select ang
ang
from
from abt.Angestellte
abt.Angestellte ang
ang
where
where dbFahrplaeneProjekt
dbFahrplaeneProjekt in
in
ang.Projekte))
ang.Projekte))
from
from Abteilungen
Abteilungen abt
abt
where
where ...
...
...
...
...
...
...
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.22
11
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Aktualisierungsoperationen (1)
Operationen im ODMG-Objektmodell:
❏ Die Operationen (Einfügen, Löschen, Modifizieren von Daten der Datenbank) treten
sowohl für Objekte als auch für Assoziationen zwischen Objekten auf.
❏ Operationen auf Beziehungsstrukturen sind stets einem konkreten Objekt
zugeordnet und manipulieren die Assoziationen, an denen dieses Objekt beteiligt
ist.
❏ Bei bidirektionalen Beziehungen bewirken die Operationen unabhängig von ihrer
Zuordnung zu einem konkreten Objekt eine Aktualisierung beider Richtungen der
Assoziation:
FirmenDB
Projekte
Nr Titel
100 DB Fahrpläne
Budget
300.000
Betreuung
Budget
200.000
Betreuung
Aufgaben
Oberabt
Aufgaben
Oberabt
Kurz
Name
MFSW Mainframe SW
➀
➀
Nr Titel
300 Telekom Statistik
°: durch Benutzer
*: durch System
Abteilungen
*
Kurz
Name
UXSW Unix SW
°
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.23
OODM: Aktualisierungsoperationen (2)
Einfügen:
❏ Die Extensionen der Typen repräsentieren die Massendatenstrukturen, in denen die
Objekte des Typs verwaltet werden.
❏ Bei der Objekterzeugung geschieht das Einfügen von Objekten in die zugehörige
Extension automatisch. In diesem Fall stellt die Einfügeoperation eine
Teilfunktionalität der Objekterzeugung dar.
❏ Aufgrund des orthogonalen Persistenzkonzepts können beliebige Objekte
persistent gemacht werden und in der Datenbank eingefügt werden (vgl. RDM, wo
die Datenbank mit den Relationen auf die persistente Speicherung der
Massendatenstrukturen beschränkt ist).
❏ Das Einfügen neuer Beziehungen geschieht durch Operationen, die ein Objekt mit
einem einzelnen Objekt oder einer Menge von Objekten des assoziierten Typs in
Beziehung setzen.
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.24
12
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Aktualisierungsoperationen (3)
Löschen:
❏ Jedes Objekt besitzt eine Methode delete, die vom Supertyp Object aller
Objekttypen ererbt wird. Diese Methode löscht das Objekt, für das sie aufgerufen
wird und macht noch existierende Referenzen auf das Objekt ungültig.
❏ Für das Löschen von Assoziationen zwischen Objekten gilt:
• Selektives Löschen: Die Beziehungen zu einzelnen Objekten werden gelöst.
• Vollständiges Löschen: Die Beziehungen zu allen assoziierten Objekten werden
gelöst.
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.25
OODM: Aktualisierungsoperationen (4)
Modifizieren:
❏ Es existiert keine allgemeine Funktion update für die Änderung beliebiger Attribute.
❏ Für jedes Attribut eines Objekttyps existiert eine vordefinierte Methode
set-value, die redefiniert werden kann.
❏ Außerdem kann der Objektzustand durch benutzerdefinierte Methoden verändert
werden.
❏ Eine Beziehung kann, ausgehend von einem konkreten Objekt, modifiziert werden.
❏ Dabei kann dem Objekt abhängig von der Schemadefinition nicht nur ein einzelnes
Objekt, sondern eine Menge von Objekten zugeordnet werden.
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.26
13
Vorlesung "Datenbanken und Informationssysteme“ WS 98/99
© F. Matthes, J.W. Schmidt
OODM: Aktualisierungsoperationen (5)
Beispiel: Aktualisierungsoperationen sind in Host-Sprache (hier: C++) eingebettet:
Ref<Abteilung> aOID = Abteilungen.select_element(
"select a in Abteilungen where a.Name = \"Unix SW\"");
Ref<Projekt> pOID = Projekte.select_element(
"select p in Projekte where p.Titel = \"Telekom Statistik\"");
aOID.Projekte.insert_element(pOID);
/* pOID.Abteilungen.insert_element(aOID); AUTOMATISCH DURCH SYSTEM
s. Folie 5.1.23 */
Datenbanken und Informationssysteme
Objektorientierte Datenbankmodelle 5.1.27
OODM: Bewertung
❏ Hohe Ausdrucksmächtigkeit bei der Datenstrukturierung
❏ Integrierte Verhaltensmodellierung (Methoden, Späte Bindung)
❏ Noch keine Standardisierung in Sicht
❏ Keine systematische Schemaentwurfsmethodik vorhanden
Datenbanken und Informationssysteme
5.1 Objektorientierte Datenbankmodelle
Objektorientierte Datenbankmodelle 5.1.28
14
Herunterladen