Kapitel 5: Objektorientierte DB-Modelle & ODMG

Ähnliche Dokumente
Kapitel 4: Historische DB-Modelle

Vorlesung Datenbanken II SS 2006

Kapitel 5: Objektorientierte DB-Modelle & ODMG

Vorlesung Datenbanken II SS 2006

Kapitel 3: Das relationale DB-Modell & SQL

Objektbasierte und objektorientierte Datenbanken

Objektorientierte Datenbanken

Objektorientierung in Oracle

Beispiele für Relationen

Das relationale Datenmodell

Objektorientierte Datenbanksysteme (OODBS)

Wiederholung VU Datenmodellierung

1. Einführung Seite 1. Kapitel 1: Einführung

Polymorphie. 15. Java Objektorientierung II

Java, OO und UML Fortsetzung

Polymorphie. 15. Java Objektorientierung II

7. Datenbankdefinitionssprachen

Wiederholung VU Datenmodellierung

Objektorientierte Programmierung OOP

Logischer Entwurf. Stufen der Entwicklung einer Datenbank. Inhalt. Übersicht. 1. Datenbank - Entwurf ( ER - Diagramm)

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Kapitel 3: Das relationale DB-Modell & SQL

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

SQL objektorientiert

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Teil 2: Objektorientierte deduktive Datenbanken (DOOD)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanken. Zusammenfassung. Datenbanksysteme

Algorithmen und Datenstrukturen

Objektrelationale Datenbanken

3. Das Relationale Datenmodell

Objektorientierte Programmierung

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Übersicht. Vorstellung des OO-Paradigmas

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Wie schreibe ich ein Powerbook

Moderne Datenbankkonzepte

Datenzugriffskomponente mit JPA 2.1

Datenbanken Das Relationale Datenmodell. Ralf Möller Universität zu Lübeck Institut für Informationssysteme

Einstieg in die Informatik mit Java

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Einführung in Datenbanksysteme

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Weitere Datenmodelle. Netzwerk-Datenmodell Historie

Einführung in die Programmiersprache Java II

SQL: Weitere Funktionen

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 3: Modellierung von betrieblichen Informationssystemen

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Geoinformation Abbildung auf Tabellen

2. Übung. Systemobjektmodell. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

Vererbung und Polymorphie

Relationale Datenbanken und SQL

22. Subtyping, Polymorphie und Vererbung

Java für Bauingenieure

Datenbanken Das Relationale Datenmodell. Ralf Möller Universität zu Lübeck Institut für Informationssysteme

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Konzeptueller Entwurf

Programmieren I. Kapitel 8. Vererbung

Objektorientierte Datenbanken

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Kapitel 1: Einführung 1.1 Datenbanken?

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

1. Einführung. Datenbanken Grundlagen

6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Daten Bank. 2. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

10. Datenbank Design 1

Datenbankmodelle und Datenbanksprachen

6. Trigger Charakterisierung von Triggern. 6. Trigger. Trigger definieren automatische Reaktionen auf Ereignisse, die durch Datenmanupilationen

Programmieren in Java

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Objektorientierte Datenbanken

Integritätsbedingungen für komplexe Objekte in objektrelationalen Datenbanksystemen

Entwurf des Datenbanksystems (DBS)

Objektorientierte Programmierung III

Anwendungsentwicklung Datenbanken Datenbankentwurf. Stefan Goebel

DB1. DB SQL-DQL 1 Mario Neugebauer

Kapitel 7: Referentielle Integrität

Vererbung, Polymorphie

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

ER-Modell, Normalisierung

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Datenbanksysteme 2015

Abschnitt 6: Klassen, Objekte und Methoden in Java

Konzepte der Programmiersprachen

Informationssysteme für Ingenieure

Kapitel 2: Das Relationale Modell

Transkript:

Vorlesung " WS 98/99 Kapitel 5: Objektorientierte DB-Modelle & ODMG Relationales Datenmodell (RDM) Netzwerk- und Hierarchisches Datenmodell (NDM, HDM) Objektorientierte Datenmodelle (OODM) Objektrelationale Datenmodelle Überblick über die Konzepte Darstellung von Assoziationen Datendefinition Anfragen 3.1 4.1 4.2 5.1 6.1 Aktualisierungsoperationen Spezifika 3.2 SQL 5.2 ODMG 6.2, 6.3 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 Anforderungen der der Typen und Klassen OO-Manifesti Methoden und Kapselung Vererbung Methodenredefinition und späte Bindung Objektorientierte Datenbankmodelle 5.1.2 1

Vorlesung " WS 98/99 OODM: Typkonstruktoren und komplexe Objekte Komplexe Objekte werden aus einfacheren Objekten durch die Verwendung von Konstruktoren aufgebaut. Grundbausteine sind die Basistypen Integer, Integer, Boolean Boolean Konstruktoren für Aggregattypen Tuple Tuple Konstruktoren für Kollektionen Ungeordnete UngeordneteKollektion: Set, Set, Bag Bag Geordnete GeordneteKollektion: List, List, Array Array Orthogonale Schachtelung der Konstruktoren Ein ODMG Objekt ist Instanz genau eines Typs. 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. Objektorientierte Datenbankmodelle 5.1.4 2

Vorlesung " WS 98/99 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-/Operand- Kompatibilitä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 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. Objektorientierte Datenbankmodelle 5.1.6 3

Vorlesung " WS 98/99 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. Mitarbeiter Name U d U Beginn Gehalt Festangestellte 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. Objektorientierte Datenbankmodelle 5.1.7 OODM: Methodenredefinition Mitarbeiter Name U d urlaubnehmen print U Beginn Gehalt Festangestellte Werksstudenten Dauer urlaubnehmen 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 Objektorientierte Datenbankmodelle 5.1.8 4

Vorlesung " WS 98/99 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 der derdynamischen Bindung erlaubt erlaubtsowohl sowohldem demklienten als alsauch auchdem Implementierer einer einermethode von vonder derauswahl der derkorrekten Implementation zu zuabstrahieren. Mitarbeiter.urlaubNehmen() for for each each m in in Mitarbeiter Mitarbeiter m.urlaubnehmen() end end Entscheidung zur Laufzeit "dynamic dispatch" Werkstudent.urlaubNehmen() Festangestellte.urlaubNehmen() Objektorientierte Datenbankmodelle 5.1.9 OODM: Durchgängiges Beispiel Zur Erinnerung das durchgängige Beispiel: Kurz Name n ist Oberabteilung von Abteilung 1 n Oberabteilung Aufgaben führt aus m Betreuung Projekt Nr Titel Budget Objektorientierte Datenbankmodelle 5.1.10 5

Vorlesung " WS 98/99 OODM: Darstellung von Assoziationen Beispiel: ODL-Schemadefinition der Firmendatenbank (Ausschnitt) database database schema schema FirmenDB FirmenDB interface interface Abteilung Abteilung Typ & Klasse ( extent extent Abteilungen Abteilungen keys keys Kurz) Kurz) { attribute attribute string string Kurz; Kurz; attribute attribute string string Name; Name; relationship relationship set<projekt> set<projekt> Aufgaben Assoziation Aufgaben über über inverse inverse Projekt::Betreuung; OID-Mengen relationship relationship Abteilung Abteilung Oberabt; Oberabt; boolean boolean neuesprojekt(in Projekt Projekt p) p) raises raises (...) (...) }; }; interface interface Projekt Typ & Klasse Projekt ( extent extent Projekte Projekte keys keys Nr) Nr) { attribute attribute unsigned unsigned short short Nr; Nr; attribute attribute string string Titel; Titel; attribute attribute float float Budget; Budget; relationship relationship set<abteilung> set<abteilung> Betreuung Betreuung inverse inverse Abteilung::Aufgaben; }; }; Objektorientierte Datenbankmodelle 5.1.11 OODM: ODMG-Objektmodell (1) Zustand der Projektdatenbank: FirmenDB Projekte Abteilungen Nr Titel Budget 100 DB Fahrpläne 300.000 ➀➂➄ Nr Titel Budget 200 ADAC Kundenstamm 100.000 ➃➅ Nr Titel Budget 300 Telekom Statstik 200.000 ➁ Betreuung Betreuung Betreuung Kurz Name Aufgaben Oberabt MFSW Mainframe SW ➀➁ Kurz Name Aufgaben Oberabt UXSW Unix SW ➂➃ Kurz Name Aufgaben Oberabt PCSW PC SW Kurz Name Aufgaben Oberabt LTSW Leitung SW NULL Kurz Name Aufgaben Oberabt PERS Personal NULL ➄ ➅ Objektorientierte Datenbankmodelle 5.1.12 6

Vorlesung " WS 98/99 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. 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 set set <Abteilung> Betreuung inverse Abteilung :: :: Aufgaben; Rollen- Bezeichner zum Traversieren inverse Beziehung Diese speziellen Attribute besitzen Referenzen auf andere Objekte als Werte ( Kollektionen von Referenzen werden möglich). Objektorientierte Datenbankmodelle 5.1.14 7

Vorlesung " WS 98/99 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 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 Objektorientierte Datenbankmodelle 5.1.16 8

Vorlesung " WS 98/99 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 database FirmenDB Projekte interface Projekte (extent Projekte) Nr Titel Budget 100 DB Fahrpläne 300.000... Betreuung (Typ Projekte) 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 FirmenDB interface Werkstudent: Student, Mitarbeiter (extent Werkstudenten) { attribute Datum Datum Beginn; attribute unsigned short short Dauer; attribute DM DM Verguetung; }; }; FirmenDB Werkstudenten Studenten Objektorientierte Datenbankmodelle 5.1.18 9

Vorlesung " WS 98/99 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) 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. Objektorientierte Datenbankmodelle 5.1.20 10

Vorlesung " WS 98/99 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 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. select (abt.kurz, (select ang ang from from abt.angestellte ang ang where where dbfahrplaeneprojekt in in ang.projekte)) from from Abteilungen abt abt where where...... Kurz.................. Angestellte Objektorientierte Datenbankmodelle 5.1.22 11

Vorlesung " WS 98/99 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 : durch Benutzer Projekte Abteilungen *: durch System Nr Titel Budget 100 DB Fahrpläne 300.000 ➀ Nr Titel Budget Betreuung * 300 Telekom Statistik 200.000 Betreuung Kurz Name Aufgaben Oberabt MFSW Mainframe SW Kurz Name Aufgaben Oberabt UXSW Unix SW ➀ 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. Objektorientierte Datenbankmodelle 5.1.24 12

Vorlesung " WS 98/99 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. 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. Objektorientierte Datenbankmodelle 5.1.26 13

Vorlesung " WS 98/99 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 */ 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 Objektorientierte Datenbankmodelle 5.1.28 14