Objektorientierte Datenbanksysteme • Konzepte • • • Objekt-Datenbanken Objekt-relationale und erweiterte relationale DBS SQL3 DBS1 2004 OODBS Seite 1 Klöditz Hochschule Anhalt (FH) Grundidee • Datenbanktechnologie ist Querschnittstechnologie der Informatik; breite Anwendung • Ingenieurwesen – CIM (Computer Integrated Manufacturing) – PPS (ProduktionsPlanungsSysteme) – CAD (Computer Aided Design): VLSI-Entwurf, Bau- und Konstruktionspläne – CASE (Computer Aided Software Engineering) – GIS (Geographic Information Systems) • • Biologie Chemie • Umwelttechnik • ... è Nicht-Standard-Anwendungen Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 2 Charakteristika von Nicht-Standard-Anwendungen • komplexe Datenobjekte, oft mit hierarchischer Struktur • • • raumbezogen Anfragen auf Geometrie-Objekte Anfragen bezogen auf Unterobjekte von komplexen Objekten lange Transaktionen mit anderen Eigenschaften als ACIDTransaktionen neue Datentypen (Bilder, große Textexemplare) mit anwendungsspezifischen Operationen • DBS1 2004 OODBS Seite 3 Klöditz Hochschule Anhalt (FH) Lösungsansätze • Einbau von oo Eigenschaften in relationale DBS führt zu objektrelationalen DBS • • Einbindung in SQL: SQL3 Entwicklung experimenteller Prototypen – – – – – – – – • ORION von MCC OPENOODB von Texas Instruments IRIS von HP ODE von AT&T GEMSTONE ONTOS ARDENT POET Einsatz bisher vorwiegend innerhalb entsprechender z.B. CADSysteme oder GIS Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 4 Objektorientierte Konzepte (1) • Objekt – – – – • hat Zustand (Wert) und Verhalten (Operationen) komplexe Datenstruktur spezifische Operationen kann in OODB persistent gespeichert werden und ist damit mehrfach nutzbar (im Unterschied zu OOPL) OODBMS – realisieren (analog zu RDBMS) Indexierung, Nebenläufigkeitskontrolle und Wiederanlauf – besitzen Schnittstellen zu OOPL – liefern (vom System generierten) Objekt-Identifikator (OID) zur Sicherung der direkten Entsprechung von Realwelt und DB, der Integrität und der leichten Identifizierbarkeit DBS1 2004 OODBS Seite 5 Klöditz Hochschule Anhalt (FH) Objektorientierte Konzepte (2) • Kapselung – Instanzvariablen sind im Objekt gekapselt – Zugriff nur über vordefinierte Operationen (wird in den meisten Systemen unterlaufen) – Operation besteht aus • Signatur (Schnittstelle mit Operationsnamen und Parametern) und • Methode (Rumpf mit der Implementierung der Operation) • Vererbung – erlaubt Definition von Typen, die Teile der Struktur und der Operationen von zuvor definierten Typen übernehmen – vereinfacht die Entwicklung und gestattet Wiederverwendung • Darstellung von Beziehungen – wegen vollst. Kapselung zunächst nur durch Methoden beschreibbar – jetzt (ODMG-Standard 2.0) durch Umkehrreferenzen (OID's zusammenhängender Objekte im Objekt enthalten) Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 6 Objektorientierte Konzepte (3) • Versionsverwaltung sollte unterstützt werden • Schema-Evolution sollte möglich sein (analog ALTER TABLE) Operator-Polymorphismus, Operator-Überladung (gleiche Operationen für verschiedene Objekttypen; Anpassung automatisch) • DBS1 2004 OODBS Seite 7 Klöditz Hochschule Anhalt (FH) Objekt-Identität • durch OID garantiert • • • • • vom System generiert, für Nutzer nicht sichtbar dient zur Identifizierung und Referenzierung ist unveränderlich wird auch nach Löschen des Objektes nicht wiederverwendet sollte nicht von Objekt-Eigenschaften (änderbar) abhängen und auch nicht die physische Adresse des Objektes sein (wird in manchen OODBS so realisiert aus Performancegründen) Realisierung meist über große int-Zahlen und Hash-Tabellen zur Adressrechnung • Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 8 Objekt-Struktur • Zustand (aktueller Wert) eines Objektes wird aus anderen Objekten (oder Werten) mit Typkonstruktoren gebildet • Objekt wird dargestellt als (i, c, v) – i = Objekt-Identifikator – c = Typkonstruktor – v = Objekt-Zustand (aktueller Wert) • • Typkonstruktoren sind z.B. Atom, Tupel, Menge, Liste, Bag, Array, ... beliebige Verschachtelung zulässig DBS1 2004 OODBS Seite 9 Klöditz Hochschule Anhalt (FH) Beispiel: Objekt Abteilung Atom Tupel o8 Menge ANAME ABTNR MGR STANDORT ANGESTELLTE PROJEKTE i 5: Atom v5 o5 i 4: Atom v4 o4 i 9: Tupel v9 o9 i 7: Menge v7 i 10 : Menge v10 o7 , i 1: Atom v1 o1 Houston MANAGER i 2: Atom v2 Bellaire o10 i 11 : Menge v11 , o2 o11 , i 3: Atom v3 o3 Sugarland i 15 : ... Tupel , , i 16 : ... Tupel i 17 : ... Tupel , MGR_ANFANGSDATUM i 16 : ... Tupel i 12 : Tupel VNAME Klöditz Hochschule Anhalt (FH) INITIAL i 17 : ... Tupel o12 NNAME ... ... ABT DBS1 2004 OODBS Seite 10 Objektbeschreibung Abteilung o1 = (i1, Atom, 'Houston') o2 = (i2, Atom, 'Bellaire') o3 = (i3, Atom, 'Sugarland') o4 = (i4, Atom, 5) o5 = (i5, Atom, 'Research') o6 = (i6, Atom, '1990-05-22') o7 = (i7, Menge, {i1, i 2, i 3}) o8 = (i8, Tupel, <ANAME: i 5, ABTNUMMER: i 4 , STANDORT: i 7, ANGESTELLTE: i 10 , PROJEKTE: i 11>) o9 = (i9, Tupel, <MANAGER: i 12, MGR_ANFANGSDATUM: i 6>) o10 = (i10, Mange, {i12 , i 13 , i 14}) o11 = (i11, Menge, {i15 , i 16 , i 17}) o12 = (i12, Tupel, <VNAME: i 18, INITIAL: i 19 , NNAME: i 20, ..., ABT: i 8>) ... DBS1 2004 OODBS Seite 11 Klöditz Hochschule Anhalt (FH) Definition von Objekt-Typen • • • define type Angestellter: tuple ( vname: initial: nname: ... abt: define type Datum: tuple ( jahr: monat: tag: define type Abteilung tuple aname: abtnummer: mgr: standort: angestellte: projekte: • string; char; string; Abteilung; ); integer; integer; integer; ); string; integer; tuple ( manager: Angestellter; anfangsdatum: Datum; ); set (string); set (Angestellter); set (Projekt); ); ... Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 12 Kapselung • • • • • • • bei relationalen DBMS nicht üblich Verhalten (Werte) hier ausschließlich durch objektbezogene Operationen zugreifbar: löschen, hinzufügen, aktualisieren, holen, Berechnungen ausführen, ... Nutzer sieht nur Operationen-Schnittstelle: Name und Parameter der Operation oo Prinzipien zu starr; bei Datenbanken oft sichtbare und verborgene Attribute; auf sichtbare kann mit OQL zugegriffen werden Aktualisierung i.d.R. verborgen; Integritätssicherung dort eingebaut Objekttyp-Definition dann zusammen mit den Operationen als Klasse häufige Operationen: Konstruktor, Destruktor, Modifier, Retrieval DBS1 2004 OODBS Seite 13 Klöditz Hochschule Anhalt (FH) Vererbung • Typhierarchien und Vererbung werden unterstützt • Beispiel: Typ PERSON Subtyp ANGESTELLTER Subtyp STUDENT Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 14 ODMG, ODL, OQL • ODMG-Standard (1993, 1997) – – – – • Objekt-Modell Objekt-Definitionssprache ODL Objekt-Anfragesprache OQL Bindings zu Programmiersprachen (C++, Smalltalk, Java) Objekt-Modell besteht aus – Objekten: OID, Name, Lebensdauer, Struktur – Literalen: Wert ohne OID • ODL – Klassendefinitionen • OQL select d.dname from d in departments where d.college = 'Engineering'; DBS1 2004 OODBS Seite 15 Klöditz Hochschule Anhalt (FH) Konzeptueller ODB-Entwurf • Unterschiede zum relationalen Datenmodell – Behandlung von Beziehungen: in ODB OID-Referenzen (auch als Sammlungen) in einer oder in beiden Richtungen – Abbildung von Vererbung: in ODB direkt vorhanden, bei RDB analog Regel 8 – Definition von Operationen: in ODB frühzeitig notwendig Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 16 Vom EER-Diagramm zum ODB-Schema • Aus jedem EER-Entitytyp oder jeder Subklasse wird eine ODLKlasse • Für jede binäre Beziehung werden Beziehungseigenschaften oder Referenzattribute zu den ODL-Klassen hinzugefügt Für jede Klasse werden entsprechende Operationen erstellt Eine Subklassen-ODL-Klasse erbt Typ und Methoden der Superklasse Schwache Entity-Typen werden wie reguläre behandelt Abbildung von Kategorien ist schwierig • • • • DBS1 2004 OODBS Seite 17 Klöditz Hochschule Anhalt (FH) Oracle Objektrelationale Eigenschaften (1) • Definition von eigenen Datentypen (Objekttypen) create type telnr_type as object (telnr varchar(15)); • Darstellung mehrwertiger Attribute als VARRAY create type telefon_liste as varray(5) of telnr_type; create type kunden_type as object (kname varchar(20), telnummern telefon_liste); create table kunde of kunden_type; select kname, telnummern from kunde; Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 18 Oracle Objektrelationale Eigenschaften (2) • Verwendung verschachtelter Tabellen – Attribute eines Objekts können selbst Objekte sein create type telnr_type as object (telnr varchar(15), beschreibung varchar(10)); create type telefon_liste as table of telnr_type; – – – – Definition von kunden_type und kunde bleiben unverändert verschachtelte Tabellen haben variable Länge auf die einzelnen Elemente kann zugegriffen werden Indexe können erstellt werden DBS1 2004 OODBS Seite 19 Klöditz Hochschule Anhalt (FH) Oracle Objektrelationale Eigenschaften (3) • Objekt-Views • Verwaltung großer Objekte – erzeugen virtuelle Objekte in einer sonst relationalen Datenbank – – – – BLOB: Binary Large Object CLOB: Character large Object BFILE: außerhalb der datenbank gespeichertes Binary File NCLOB: MultiByte-CLOB mit fester Breite Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 20 SQL3 • Standard besteht aus – – – – SQL/Framework, SQL/Foundation, SQL/Bindings, SQL/Object neue Teile bezüglich zeitlicher Transaktionsaspekte von SQL SQL Call Level Interface (CLI) SQL Persistent Stored Modules (PSM) DBS1 2004 OODBS Seite 21 Klöditz Hochschule Anhalt (FH) SQL3 (2) • SQL/Foundation – – – – – – – – • neue Datentypen neue Prädikate relationale Operationen Cursor Regeln, Trigger benutzerdefinierte Typen Transaktionsfähigkeiten stored procedures SQL/CLI – Regeln für die Ausführung von Anwendungscode – neue Art der Sprachbindung (dynamisches SQL) – etwa 50 Routinen z.B. für Verbindungsaufbau,Zuweisung und Freigabe von Ressourcen, Kontrollmechanismen zur Beendigung von Transaktionen, ... (analog ODBC-Standard) Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 22 SQL3 (3) • SQL/PSM – spezifiziert Möglichkeiten zur Aufgabenteilung zwischen Client und Server • SQL/Bindings – embedded SQL erweitert um zusätzliche Ausnahmesituationen Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 23 Neue Operationen und Konzepte in SQL3 • neue Operationstypen – SIMILAR für die Verarbeitung regulärer Ausdrücke zur Zeichenkettenbearbeitung – UNKNOWN erweitert Boolesche werte bei vergleichen – lineare Rekursion für rekursive Anfragen • neue Konzepte – Rolle: bestimmt die Autorisierung von Rechten – Trigger: aktive Regeln für INSERT, DELETE und UPDATE zu BEFORE oder AFTER – Trigger-Granularität: auf Zeilen- oder Anweisungsebene – Programmiersprachen-Werkzeug: SQL-Routinen • CALL / RETURN • BEGIN / END • FOR / END_FOR, LOOP / END_LOOP, WHILE / END_WHILE, REPEAT / UNTIL / END_REPEAT • CASE / END_CASE, IF / THEN / ELSE / END_IF • integrierte Funktionen Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 24 Objektrelationale Unterstützung von SQL3 • neue Datentypen: – Boolesche Zeichen – große binäre Objekte (LOB), Object-Locator • Objekte: – – – – – – benutzerdefinierte Datentypen Typkonstruktoren Kollektionstypen benutzerdefinierte Funktionen und Prozeduren Unterstützung großer Objekte Trigger DBS1 2004 OODBS Seite 25 Klöditz Hochschule Anhalt (FH) Objektrelationale Unterstützung von SQL3 (2) Objekt-Typen: Row- / Tupel-Typen create row type emp _row _type ( name varchar(30), hiredate date ); create row type comp_row_type ( compname varchar (20), location varchar (20) ); create table employee of type emp _row_type; create table company of type comp _row_type; create row type employment _row_type ( employee ref (emp_row _type ), company ref (comp_row _type ) ); create table employment of type employment_row_type; select employment..employee..name from employment where employment ..company..location = 'New York'; Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 26 Objektrelationale Unterstützung von SQL3 (3) Objekt-Typen: Abstrakte Datentypen (ADT) create type <type-name> ( Komponentenattribute mit den einzelnen Typen Deklaration der Funktionen EQAL und LESS THAN Deklaration weiterer Funktionen (Methoden) ); • • • • Konstruktor-, Observer- und Mutator-Funktionen Typ-Äquivalenz wird auf Namens- und auf Strukturebene definiert Attribut-Kategorien: public, private, protected Vererbung, Überladen sind geregelt DBS1 2004 OODBS Seite 27 Klöditz Hochschule Anhalt (FH) Kritik an OODBMS [DATE 2000] • • • • • • • keine wohldefinierte einheitliche Theorie, terminologische Verwirrung; Kompatibilität ist ein echtes Problem keine formalen Datenbank-Entwurfsmethoden wie z.B. Normalisierung; Ergebnis sind ineffiziente Systeme keine einfachen Abfragemöglichkeiten; Zugriff nur über vordefinierte Methoden keine allgemeinen Integritätsregeln, nur über Methoden (abhängig von DB-Entwicklern) navigierende Abfragen Verwaltung von Objektidentitäten, keine einheitliche Interpretation, hoher Aufwand z.T. durch ODMG-Standards und UML beseitigt, allerdings bisher nicht vollständig umgesetzt Klöditz Hochschule Anhalt (FH) DBS1 2004 OODBS Seite 28