6.2.3 Die Objekt-Definitionssprache ODL (3/24) • Objekteigenschaften und -operationen geben an, wie sich ein Objekt der Klasse verhält. Im folgenden wird der Begriff Klasse anstelle von Typ verwendet (gewohnte OO Begriffswelt) Besonderheiten der ODL: • Eine Beziehung (relationships) kann ebenfalls Schlüssel oder Teil eines Schlüssels sein • Klassenattribute oder Klassenoperationen können nicht deklariert werden. • Keine Unterscheidung zwischen abstrakten und konkreten Klassen. RelationentheorieObjektorientierte Datenbanken AIFB SS2001 • Typeigenschaften legen die Klasseneigenschaften fest. 3 6.2.3 Die Objekt-Definitionssprache ODL (4/24) • Direkte Oberklassen der beschriebenen Klasse (angegeben hinter dem Klassennamen nach: mehrere Oberklassen werden durch Komma getrennt) • Extent der Klasse (Name des „Behälters“, der alle erzeugten Objekte einer Klasse aufnimmt (i.allg. wird der Plural des Klassennamens dafür verwendet) • Schlüssel der Klasse, d.h. Schlüsselattribute & Beziehungen der Klasse, die es erlauben, Objekte der Klasse eindeutig zu identifizieren (Jedes Objekt hat eigene interne OID, d.h. kein Primärschlüssel nötig) RelationentheorieObjektorientierte Datenbanken AIFB SS2001 Festlegen von Klasseneigenschaften 4 6.2.3 Die Objekt-Definitionssprache ODL (5/24) • Attribute der Objekte - Attributtyp - Attributname • Beziehungen der Objekte - Assoziationen oder Aggregationen zu Objekten anderer oder der eigenen Klasse - Für jede Beziehung wird • die Klasse angegeben, zu deren Objekten die Beziehung bestehen kann, und • der Name der Beziehung oder der entsprechende Rollenname - Beziehungen sind binär RelationentheorieObjektorientierte Datenbanken AIFB SS2001 Festlegen von Objekteigenschaften und -operationen 5 6.2.3 Die Objekt-Definitionssprache ODL (6/24) - 1:1, 1:n, n:m • Objektoperationen - Namen - Ein- und Ausgabeparameter mit ihren Typen - Namen für Ausnahmen (exceptions) RelationentheorieObjektorientierte Datenbanken AIFB SS2001 • Kardinalitäten 6 6.2.3 Die Objekt-Definitionssprache ODL (23/24) interface Dozent: Person ( extent Dozenten key Dozenten_Nummer ) : persistent { // Attribute attribute Unsigned_Short Dozenten_Nummer; attribute String Biographie; attribute Float Umsatz; attribute Bag <Float> Praemien; // Multimenge RelationentheorieObjektorientierte Datenbanken AIFB SS2001 Beispiel 6-3: (Fortsetzung von Beispiel 6-1: und Beispiel 6-2: ) 23 6.2.3 Die Objekt-Definitionssprache ODL (24/24) relationship Set <Seminartyp> kann_fachlich_abhalten inverse Seminartyp :: kann_abgehalten_werden_von ; relationship Set <Veranstaltung> Referent inverse Veranstaltung :: abgehalten_von; relationship Set <Veranstaltung> Seminarleiter inverse Veranstaltung :: geleitet_von; // Operationen void Praemien_berechnen (out Float Praemie); Geldeinheit Gehalt(); }; RelationentheorieObjektorientierte Datenbanken AIFB SS2001 // Beziehungen 24