Nachteile relationaler Modellierung Polyeder (4,*) Hülle (1,1) Flächen (3,*) Begrzg (2,2) Kanten (2,2) StartEnde (3,*) Punkte

Ähnliche Dokumente
Teil 2: Objektorientierte deduktive Datenbanken (DOOD)

Objektorientierte Datenbanken

Software-Engineering

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Wiederholung: Relationale Algebra

Objektorientierte Datenbanken

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Datenbanksysteme SS 2009

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Fortsetzung: Projektion Selektion. NULL Werte

Datenbanksysteme SS 2007

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Grundlagen des relationalen Modells

Grundlagen des relationalen l Modells

Datenbanksysteme SS 2007

HPI MOOC. n-äre Relationships. Rollen von Relationships. Konvertierung in binäre Relationships. Attribute an Relationships

Grundlagen des relationalen Modells

Architektur eines DBMS Logische Optimierung

Das relationale Modell

Objektbasierte und objektorientierte Datenbanken

konzeptueller Entwurf mittels E/R-Modell einfache Funktionalitäten n-stellige Relationships (n>2) (siehe nächste zwei Folien) schwache Entities

Grundlagen des relationalen Modells

Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert:

Wie definieren wir das Relationen-

Acknowledgments. Datenmodellierung. Übersicht. Das Relationale Modell: Begriffsklärung VU , WS Das relationale Modell

Wiederholung VU Datenmodellierung

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

Objektorientierte Datenbanken

Objektrelationale Datenbanken

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Referentielle Integrität

Referentielle Integrität

Objektorientierte Datenbanken

7. Datenbankdefinitionssprachen

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Rückblick: Entity-Relationship-Modell

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

Relationale Abfragesprachen

Objektrelationale und erweiterbare Datenbanksysteme

Datenbankentwurf. VO Datenmodellierung. Katrin Seyr. Institut für Informationssysteme Technische Universität Wien.

Datenmodellierung VU Einführung SS 2016

Das relationale Modell

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Übersicht. Vorstellung des OO-Paradigmas

Datenintegrität. Bisherige Integritätsbedingungen

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

E-R-Modell zu Relationenschema

Termin 12: Datenbanksysteme (2) - Einführung in SQL

UML (Unified Modelling Language) von Christian Bartl

Kapitel 6. Vererbung

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung

Datenbanksysteme (1)

Kapitel 6. Vererbung

Java, OO und UML Fortsetzung

Rückblick: Datenbankentwurf

Datenmodellierung. VU , WS 2016 Das relationale Modell. Nysret Musliu, Sebastian Skritek

Kapitel 6. Vererbung

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

10. Programmierungs-Phase: Objektorientierung Software Engineering

Gebundene Typparameter

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

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

Kapitel 1: Einführung 1.1 Datenbanken?

Kapitel 5: Objektorientierte DB-Modelle & ODMG

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Objektorientiertes Programmieren in C++

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

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

Theorie zu Übung 8 Implementierung in Java

Vorlesung. Grundlagen betrieblicher Informationssysteme. Prof. Dr. Hans Czap. Lehrstuhl für Wirtschaftsinformatik I

Probeklausur: Programmierung WS04/05

Objektorientierte Programmierung

Objektorientierte Programmierung. Kapitel 12: Interfaces

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Objektorientierte Programmierung

Javakurs für Anfänger

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

Arbeitsblätter zu Teil I des Praktikums

Die Unified Modeling Language UML

Programmieren 2 Java Überblick

Konzeptueller Entwurf

Datenbanksysteme 2011

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Vorlesung Programmieren

Präsentation Interfaces

Klassen- und Objektmodelle

Datenbanken I - Einführung

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Teil 2: OOP und JAVA (Vorlesung 11)

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

Repetitorium Informatik (Java)

Einführung in die Objektorientierung

Programmieren I. Kapitel 8. Vererbung

Objektorientierte Softwareentwicklung

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

Transkript:

Objektorientierte Datenbanken die nächste Generation der Datenbanktechnologie? Andreas Heuer: Objektorientierte Datenbanken: Konzepte, Modelle, Systeme, Auflage Addison-Wesley 997 A Kemper, G Moerkotte Object-Oriented Database Management: Applications in Engineering and Computer Science, Prentice Hall, 99 ca kommerzielle Produkte ischen-dasein Konzepte wurden in Relationalen Datenbanken übernommen Objekt-Relationale Datenbanken seit 993 erster Standard (ODMG) achteile relationaler Modellierung Polyeder (,*) Hülle (,) Flächen (3,*) Begrzg (,) Kanten (,) StartEnde (3,*) Punkte x y z Polyeder PolyID Gewicht Material cubo#5 5765 Eisen tetra#7 37985 Glas Flächen FlächenID PolyID Oberfläche f cubo#5 f cubo# f6 cubo#5 f7 tetra#7 Kanten KantenID F F P P k f f p p k f f p p3 Kanten PunktID X Y Z p 00 00 00 p 0 00 00 achteile relationaler Modellierung Visualisierung des Impedance Mismatch Anwendung A Anwendung B rotate rotate Segmentierung Künstliche Schlüsselattribute Fehlendes Verhalten Externe Programmierschnittstelle Transf T A Transf T B Polyeder Flächen Kanten Punkte relationale Datenbasis

Vorteile objektorientierter Datenmodellierung Anwendung A Anwendung B Vorteile objektorientierter Datenmodellierung somecuboid rotate( X,0); w := somecuboid weight(); rotate scale weight information hiding /Objektkapselung Wiederverwendbarkeit Operationen direkt in Sprache des Objektmodells realisiert (kein Impedance Mismatch) translate specweight volume objektorientierte Datenbasis ODMG-Standardisierung Beteiligte SunSoft (Organtor: R Cattell) Object Design Ontos O Technology Versant Objectivity Reviewer Hewlett-Packard Poet Itasca intellitic DEC Servio Texas Instruments Bestandteile des Standards Objektmodell Object Defintion Language (ODL) 3 Object Query Language (OQL) C++ Anbindung 5 Smalltalk Anbindung 6 Java Anbindung Motivation der Standardisierung Portabilitäts-Standard kein Interoperabilitäts-Standard

Integration des ODMG-Objektmodells C++ Java Objektmodell Anwendung DBMS Anwendung Smalltalk Anwendung Einige Objekte aus der Universitätswelt class { Persr: 37 attribute long Persr; ame: Kant Rang: C attribute string ame; residiertin: id 9 attribute string Rang; hatgeprüft {} liest: {id, id 3 } id 3 Vorlr: 630 id Titel: Die 3 Kritiken Vorlr: 500 SWS: Titel: Grundzüge gelesenvon: SWS: Hörer: {} gelesenvon: achfolger: {} Hörer: {} Vorgänger: {} achfolger: {} Vorgänger: {} : -Beziehungen Beispielausprägungen residiert in class { attribute long Persr; relationship Räume resisdiertin; class Räume { attribute long Raumr; attribute short Größe; relationship beherbergt; Räume Persr: ame: Rang: residiertin: hatgeprüft liest: Profesoren 37 Kant C id 9 {} {} id 9 Raumr: Größe beherbergt: Räume 007 8

Persr: ame: Rang: residiertin: hatgeprüft liest: id 9 Raumr: Größe beherbergt: Beispielausprägungen Profesoren 37 Kant C id 8 {} {} Räume 007 8 id 8 Raumr: Größe beherbergt: Räume 7 achteile Verletzung der Symmetrie Verletzung der :- Einschränkung Bessere Modellierung mit inverse class { attribute long Persr; relationship Räume residiertin inverse Räume::beherbergt; class Räume { attribute long Raumr; attribute short Größe; relationship beherbergt inverse ::residiertin : -Beziehungen : M-Beziehungen lesen hören M class { relationship set() liest inverse ::gelesenvon; class { relationship gelesenvon inverse ::liest; class { relationship set() hört inverse ::Hörer; class { relationship set() Hörer inverse ::hört;

Rekursive : M-Beziehungen M voraussetzen class { relationship set() Vorgänger inverse ::achfolger; relationship set() achfolger inverse ::Vorgänger; Ternäre Beziehungen prüfen class Prüfungen { attribute struct Datum { short Tag; short Monat; short Jahr} Prüfdatum; attribute float ote; relationship Prüfer inverse ::hatgeprüft; relationship Prüfling inverse ::wurdegeprüft; relationship Inhalt inverse ::wurdeabgeprüft; Vervollständigtes Universitäts-Schema class { attribute long Persr; attribute string ame; attribute string Rang: relationship Räume residiertin inverse Räume::beherbergt; relationship set() liest inverse ::gelesenvon relationship set(prüfungen) hatgeprüft inverse Prüfungen::Prüfer; class { attribute long Vorlr; attribute string Titel; attribute short SWS; relationship gelesenvon inverse ::liest; relationship set() Hörer inverse ::hört; relationship set() achfolger inverse ::Vorgänger; relationship set() Vorgänger inverse ::achfolger; relationship set(prüfungen) wurdeabgeprüft inverse Prüfungen::Inhalt; class { relationship set(prüfungen) wurdegeprüft inverse Prüfungen::Prüfling; Modellierung von Beziehungen im Objektmodell Räume beherbergt resisiertin wurdegeprüft hatgeprüft hört Prüfungen liest Prüfling Prüfer Inhalt wurdeabgeprüft Hörer Vorgänger achfolger gelesenvon

Einige Objekte aus der Universitätswelt Profesoren Persr: 37 ame: Kant Rang: C residiertin: id 9 hatgeprüft {} liest: {id, id 3 } id 3 Vorlr: 630 id Titel: Die 3 Kritiken Vorlr: 500 SWS: Titel: Grundzüge gelesenvon: SWS: Hörer: {} gelesenvon: achfolger: {} Hörer: {} Vorgänger: {} achfolger: {} Vorgänger: {} Eigenschaften von Objekten Im objektorientierten Modell hat ein Objekt drei Bestandteile: - Identität - Typ - Wert/Zustand Uni-Schema Matr r ame Semes ter Pers r am e Fachg ebiet ote Assistenten voraus setzen achfolger Vorgänger hör en prü fen arbeit enfü r M Vorlesunge n M Pers r M les en ame Vorl r SWS Titel Rang Raum Persr 5 6 7 33 3 36 37 ame Rang Raum Matrr ame Sokrates C 6 00 Xenokrates Russel Kopernikus Popper Augustinus Curie Kant C C3 C3 C3 C C voraussetzen 3 30 5 309 36 Vorgänger achfolger 500 50 500 500 50 503 50 505 503 509 56 505 505 559 Matrr Vorlr Persr ote 806 500 6 503 7550 prüfen 50 630 5 37 7 503 60 6830 7550 Schopenhauer 806 90 9555 Matrr 60 7550 7550 806 806 806 806 90 90 90 9555 503 Jonas Fichte Aristoxenos Carnap Theophrastos Feuerbach hören Vorlr 500 500 05 50 505 56 559 500 50 509 50 50 Semester 8 0 8 6 3 Perslr 300 3003 300 3005 3006 3007 Vorlr 500 50 503 509 05 505 56 559 50 630 ame Platon Aristoteles Wittgenstein Rhetikus ewton Spinoza Titel SWS Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik 3 3 Sprachtheorie Planetenbewegung Keplersche Gesetze Gott und atur gelesen Von 37 5 6 5 5 6 6 33 3 37 Boss 5 5 6 7 7 6

Einige Objekte aus der Universitätswelt Profesoren Persr: 37 ame: Kant Rang: C residiertin: id 9 hatgeprüft {} liest: {id, id 3 } id 3 Vorlr: 630 id Titel: Die 3 Kritiken Vorlr: 500 SWS: Titel: Grundzüge gelesenvon: SWS: Hörer: {} gelesenvon: achfolger: {} Hörer: {} Vorgänger: {} achfolger: {} Vorgänger: {} Objekt-Identität Das wesentliche Charakteristikum objekt-orientierter Datenmodellierung Verweise werden über die OID realisiert Zwei Realisierungsformen Physische OIDs Enthalten den Speicherort des Objekts Im wesentlichen entsprechen diese den Tupel IDentifikatoren (TIDs) Logische OIDs Unabhängig vom Speicherort der Objekte Dh Objekte können verschoben werden Indirektion über eine Mapping -Struktur B-Baum Hash-Tabelle Direct Mapping Realisierung physischer OIDs Drei Realisierungstechniken für logische OIDs

Typeigenschaften: Extensionen und Schlüssel class (extent Alle key Matrr) { attribute long Matrr; attribute string ame; attribute short Semester; relationship set() hört inverse ::Hörer; relationship set(prüfungen) wurdegeprüft inverse Prüfungen::Prüfling; Modellierung des Verhaltens: Operationen Operationen um Objekte zu erzeugen (instanziieren) und zu initialisieren, die für Klienten interessanten Teile des Zustands der Objekte zu erfragen, legale und konsistenzerhaltende Operationen auf diesen Objekten auszuführen und letztendlich die Objekte wieder zu zerstören Modellierung des Verhaltens: Operationen II Drei Klassen von Operationen: Beobachter (engl observer): oft auch Funktionen genannt Objektzustand erfragen Beobachter-Operationen haben keinerlei objektändernde Seiteneffekte Mutatoren: Änderungen am Zustand der Objekte Einen Objekttyp mit mindestens einer Mutator-Operation bezeichnet man als mutierbar Objekte eines Typs ohne jegliche Mutatoren sind unveränderbar (engl immutable) Unveränderbare Typen bezeichnet man oft als Literale oder Wertetypen Modellierung des Verhaltens: Operationen III Konstruktoren und Destruktoren: Erstere werden verwendet, um neue Objekte eines bestimmten Objekttyps zu erzeugen Instanziierung Der Destruktor wird dazu verwendet, ein existierendes Objekt auf Dauer zu zerstören Konstruktoren werden sozusagen auf einem Objekttyp angewandt, um ein neues Objekt zu erzeugen Destruktoren werden dem gegenüber auf existierende Objekte angewandt und können demnach eigentlich auch den Mutatoren zugerechnet werden

Klassen-Definition von Operationen in ODL Man spezifiziert den amen der Operation; die Anzahl und die Typen der Parameter; den Typ des Rückgabewerts der Operation; eine eventuell durch die Operationsausführung ausgelöste Ausnahmebehandlung (engl exception handling) Klassen-Definition von Operationen in ODL Beispiel-Operationen class { exception hatochichtgeprüft { exception schonhöchstestufe { float wiehartalsprüfer() raises (hatochichtgeprüft); void befördert() raises (schonhöchstestufe); Aufruf der Operationen im Anwendungsprogramm: in OQL: meinlieblingsprof befördert(); select pwiehartalsprüfer() from p in Alle where pame = Curie ; Vererbung und Subtypisierung ame Uni-Mitglieder Objekttypen Typ A Terminologie Instanzen Typ A: is-a is-a Typ B id A: B: Typ Matrr Fachgebiet Angestellte Persr is-a Rang Assistenten Raum is-a Typ3 id 3 A: Typ3 C B: C: Untertyp / Obertyp Instanz eines Untertyps gehört auch zur Extension des Obertyps Vererbung der Eigenschaften eines Obertyps an den Untertyp

ExtTyp Darstellung der Subtypisierung A ExtTyp ExtTyp3 A B A B C Abstrakte Typhierarchie bei Einfach-Vererbung AY OT Ot n- Inklusionspolymorphismus Subtituierbarkeit - Eine Untertyp-Instanz ist überall dort einsetzbar, wo eine Obertyp-Instanz gefordert ist OT n eindeutiger Pfad: Ot n Ot n- OT OT AY OT is- Vererbung von Eigenschaften Persr ame Angestellte GebDatum Persr Alter() ame Gehalt() is-a GebDatum Persr Alter() ame Assistenten Gehalt() GebDatum Rang Alter() resisidertin Gehalt() hatgeprüft Fachgebiet liest Interface-Definition in ODL class Angestellte (extent AlleAngestellte) { attribute long Persr; attribute string ame; attribute date GebDatum; short Alter(); long Gehalt(); class Assistenten extends Angestellte (extent AlleAssistenten) { attribute string Fachgebiet; class extends Angestellte (extent Alle) { attribute string Rang; relationship Räume residiertin inverse Räume::beherbergt; relationship set() liest inverse ::gelesenvon; relationship set(prüfungen) hatgeprüft inverse Prüfungen::Prüfer;

Darstellung der Extensionen AlleAngestellten AlleAssistenten Verfeinerung und spätes Binden Die Extension AlleAngestellten mit (nur) drei Objekten AlleAngestellten: {,,id 7 } Alle Persr: ame: GebDatum: 37 Kant Persr: ame: GebDatum: Assistenten 300 Platon id 7 Persr: ame: GebDatum: Angestellte 600 Maier Verfeinerung (Spezialisierung) der Operation Gehalt Angestellte erhalten: 000 + (Alter() ) * 00 Assistenten bekommen: 500 + (Alter() ) * 5 erhalten: 3000 + (Alter() ) * 50 select sum(agehalt()) from a in AlleAngestellten für das Objekt wird die -spezifische Gehalts- Berechnung durchgeführt, für das Objekt die Assistenten-spezifische und für das Objekt id 7 die allgemeinste, also Angestelltenspezifische Realisierung der Operation Gehalt gebunden Graphik: Mehrfachvererbung Angestellte is-a HiWis geht so in ODMG nicht eine Klasse kann nur von einer Klasse erben sie kann aber auch mehrere Interfaces implementieren à la Java Angestellte IF Angestellte implementiert Schnittstelle erbt HiWis

Interface- / Klassendefinition in ODL class HiWis extends, Angestellte (extent AlleHiWis) { attribute short Arbeitsstunden; interface AngestellteIF { short Alter(); long Gehalt(); class HiWis extends : AngestellteIF (extent AlleHiWis) { attribute long Persr; attribute date Gebdatum; attribute short Arbeitsstunden; Die Anfragesprache OQL Einfache Anfragen finde die amen der C- select pame from p in Alle where prang = C ; Generiere amen- und Rang-Tupel der C- select struct(n: pame, r: prang) from p in Alle where prang = C ; Die Anfragesprache OQL Geschachtelte Anfragen und Partitionierung select struct(n: pame, a: sum(select vsws from v in pliest)) from p in Alle where avg(select vsws from v in pliest) > ; Gruppierung select * from v in Alle group by kurz: vsws<=, mittel: vsws=3, lang:vsws>; struct(kurz: boolean, mittel: boolean, lang: boolean, partition: bag<struct(v: )>) Pfadausdrücke in OQL-Anfragen select same from s in Alle, v in shört where vgelesenvoname = Sokrates ; Visualisierung des Pfadausdruckes hört gelesenvon ein längerer Pfadausdruck einevorlesunggelesenvonresidiertingröße Räume float am e

Erzeugung von Objekten (Vorlr: 5555, Titel: Ethik II, SWS:, gelesenvon: ( select p from p in Alle where pame = Sokrates )); Operationsaufruf in OQL-Anfragen select aame from a in AlleAngestellte where agehalt() > 00000; Programmiersprachen-Anbindung Entwurfsentscheidung Entwurf einer neuen Sprache - eleganteste Methode, - hoher Realisierungsaufwand - Benutzer müssen eine neue Programmiersprache lernen Erweiterung einer bestehenden Sprache - Benutzer müssen keine neue Sprache lernen - manchmal unnatürlich wirkende Erweiterungen der Basissprache Datenbankfähigkeit durch Typbibliothek - einfachste Möglichkeit für das Erreichen von Persistenz - mit den höchsten Reibungsverlusten - evtl Probleme mit der Transparenz der Einbindung und der Typüberprüfung der Programmiersprache - ODMG-Ansatz ODL Klassendeklarationen Präprozessor Metadaten Objekte C++-Einbindung Headerdateien Objektbank C++-Compiler Objektcode Quellcode Linker Anwendung Laufzeit-System ODBMS Laufzeit-Bibliothek Objektidentität class { String Titel; short SWS; Ref gelesenvon inverse ::liest; Objekterzeugung und Ballung Ref Russel = new(unidb) (6, Russel, C,); Ref Popper = new(russel) (33, Popper, C3,);

Transaktionen Schachtelung von Transaktionen notwendig um Operationen, die TAs repräsentieren, geschachtelt aufrufen zu können void ::Umziehen(Ref Räume neuerraum) { Transaction TAumziehen; TAumziehenstart(); if ( /*Fehler? */ ) TAumziehenabort(); TAumziehencommit(); Einbettung von Anfragen d_bag Schüler; char*profname = ; d_oql_query anfrage( select s from s in vhörer, v in pliest, p in Alle where pame = $ ); anfrage «profname; d_oql_execute(anfrage, Schüler); Graphische Darstellung des Pfadausdrucks liest Hörer ame Objektorientierte Modellierung Matrr : integer ame : string Semester : integer Prüfling Assistenten Fachgebiet : string Prüfungen Datum : date ote : number hören Angestellte GebDatum : date ame : string Persr : integer M Inhalt arbeiten_für SWS : integer Titel : string Vorlr : integer lesen Prüfer Rang : string Büro Räume Größe : integer Raumr : integer

Objektorientierte Entwurfsmethode Booch-otation - Grady Booch: Object-oriented Analysis and Design, The Benjamin/Cummings Publication Company, Inc, Redwood City, California, 99 - Rational Rose ist ein System, das die Booch-otation unterstützt Rumbaugh-otation UML- Modellierung +Matrr : int +ame : String +Semester : int +otenschnitt() : float +SummeW ochenstunden() : short +Prüfling * Prüfungen +ote : Decimal +Datum : Date +verschieben() * * +Hörer * hören * voraussetzen +achfolger * +Vorlr : int +Titel : S tring +SW S : int +AnzHörer() : int +DurchfallQuote() : float +Prüfer +Prüfungsstoff * * gelesenvon - Rumbaugh, Blaha, Premerlani, Eddy, Lorenson: Objectoriented Modelling and Design, - Prentice Hall,Englewood Cliffs, ew Jersey, 99 Assistenten +Fachgebiet : String +Gehalt() : short * arbeitenfür +Boss +Rang : String +otenschnitt() : float +Gehalt() : short +Lehrstundenzahl() : short +Dozent Mittlerweile wurden die beiden Methoden (otationen) vereinigt Angestellte UML-Standard (Unified Modelling Language) +Persr : int +ame : String +Gehalt() : short Kommerziell verfügbare Produkte GemStone Illustra Itasca MATISSE Objektrelationale Datenbanken Mengenwertige Attribute Typdeklarationen O Objectivity/DB ObjectStore Ontos OpenOBD POET UniSQL Statice Versant Referenzen Objektidentität Pfadausdrücke Vererbung Operationen Siehe Kapitel