Objektrelationale Datenbanken Studienarbeit für die Prüfung zum Diplom-Betriebswirt (BA) im Ausbildungsbereich Wirtschaft Fachrichtung: Wirtschaftsinformatik Kurs: WWI98G1 der von Name: Springmann Geburtsort: Achern Vorname: Michael Ausbildungsstätte: Badischer Gemeinde-Versicherungs-Verband Betreuender Dozent: Abgabedatum: 06.11.2000 Dipl.-Wirt. Ing. (FH) Uwe Faber Note: ......................... Inhaltsverzeichnis Seite Inhaltsverzeichnis .............................................................................................................II Darstellungsverzeichnis .................................................................................................. III Abkürzungsverzeichnis ................................................................................................... IV 1 Abgrenzung verschiedener Datenbanksysteme ......................................................... 1 1.1 Klassifizierung nach Stonebraker ...................................................................... 1 1.2 Kritik an der Klassifizierung nach Stonebraker................................................. 3 1.3 Differenzierung OODBS / ORDBS ................................................................... 4 2 Nachteile von RDBMS.............................................................................................. 6 2.1 Datenmodellierung ............................................................................................ 6 2.2 Datenbankentwurf.............................................................................................. 8 2.3 Anfragesprache .................................................................................................. 9 2.4 Fazit ................................................................................................................. 10 3 Erweiterungen des relationalen DBS in ORDBS .................................................... 11 3.1 Basisdatentypen ............................................................................................... 11 3.1.1 BLOB .................................................................................................... 12 3.1.2 CLOB .................................................................................................... 12 3.2 Benutzerdefinierte Datentypen ........................................................................ 12 3.2.1 Distinct Types ....................................................................................... 12 3.2.2 Row Types ............................................................................................ 13 3.2.3 Abstract Data Types.............................................................................. 15 3.2.4 Array Types .......................................................................................... 16 3.2.5 weitere Collections ............................................................................... 17 3.3 Objekt-Identitäten und Referenzen .................................................................. 17 3.4 Verhalten von Datenbankobjekten .................................................................. 18 3.5 Weitere Objektorientierte Konzepte ................................................................ 19 4 Können ORDBS Probleme der RDBS lösen? ......................................................... 21 4.1 Datenmodellierung .......................................................................................... 21 4.2 Datenbankentwurf............................................................................................ 21 4.3 Anfragesprache ................................................................................................ 21 4.4 Fazit ................................................................................................................. 22 Literatur-/Quellenverzeichnis ......................................................................................... 23 Objektrelationale Datenbanken Darstellungsverzeichnis Abbildung 1: DBMS-Klassifikationsmatrix .................................................................... 1 Abbildung 2: Relative Größe des DBMS-Marktes im Jahr 2005 ................................... 3 Abbildung 3: Marktübersicht über wichtige objektorientierte und objektrelationale Systeme ..................................................................................................... 5 Abbildung 4: Autotypen mit Ausstattungspaketen: geschachtelte Darstellung .............. 7 Abbildung 5: Autotypen mit Ausstattungspaketen: relationale Darstellung mit Informationsverlust ................................................................................... 7 Abbildung 6: Autotypen mit Ausstattungspaketen: relationale Darstellung mit künstlichen Schlüsseln .............................................................................. 8 Abbildung 7: Beispiel für Row data type ...................................................................... 14 Abbildung 8: Vergleichstabelle Zeilenreferenz mit Primär-/Fremdschlüsselbeziehung ................................................................................................ 18 Abbildung 9: Unterschied zwischen der Anordnung komplizierter Operationen in herkömmlichen Datenbankarchitekturen (links) und dem objektorientierten Fall (rechts) ................................................................ 19 Objektrelationale Datenbanken Abkürzungsverzeichnis ADT abstrakter Datentyp DDL Data Definition Language DML Data Manipulation Language DBMS Datenbank-Managementsystem ER Entity Relationship IT Informationstechnologie ODL Object Definition Language ODMG Object Database Management Group OID Object Identification OML Object Manipulation Language OODBS Objektorientiertes Datenbanksystem OOPL Objektorientierte Programmiersprache OQL Object Query Language ORDBS Objektrelationales Datenbanksystem ORDBMS Objektrelationales Datenbankmanagementsystem RDBS Relationales Datenbanksystem RDBMS Relationales Datenbankmanagementsystem SQL Structured Query Language UML Unified Modeling Language WWW World Wide Web Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 1 1 Abgrenzung verschiedener Datenbanksysteme Einleitend zu meiner Studienarbeit über objektrelationale Datenbanken möchte ich das Gebiet entsprechend dem Thema abgrenzen. Hierzu ist eine Einteilung der verschiedenen Datenbankkonzepte notwendig. Woimmer unter Zuhilfenahme der IT gearbeitet wird, fallen zwangsläufig Daten an. Diese müssen in irgendeiner Weise gespeichert werden, um erneut genutzt werden zu können. Hierbei gibt es jedoch eine Vielzahl von möglichen Anwendungsgebieten, die zu unterschiedlichen Anforderungen an die Datenhaltung führen. 1.1 Klassifizierung nach Stonebraker In „Objektrelationale Datenbanken – Die nächste große Welle“ führt Michael Stonebraker deshalb zunächst eine sog. DBMS-Klassifikationsmatrix ein. Diese richtet sich zum einen nach der Komplexität der Daten, die die Anwendung benutzt, und zum anderen danach, in wieweit diese eine Abfragemöglichkeit dieser Daten benötigt. Zur Vereinfachung und Veranschaulichung des Modells wird verallgemeinert, daß die Ausprägung der obigen Charakteristika nur die Werte „einfache Daten“ oder „komplexe Daten“ bzw. „benötigt Abfragen“ oder „benötigt keine Abfragen“ seien.1 Dadurch ergibt sich eine 2-mal-2-Matrix mit 4 Quadranten. Abhängig von den Charakteristika paßt jede Anwendung in mindestens eine der 4 Quadranten. Abfrage 2 4 keine Abfrage 1 3 einfache Daten komplexe Daten Abbildung 1: DBMS-Klassifikationsmatrix Als eine Anwendung des 1. Quadranten wird ein gewöhnlicher Texteditor wie Notepad oder vi angesehen, da dieser weder mit besonders komplexen Daten arbeitet noch wirklich Abfragen benutzt. Die einzige „Abfrage“ ist „hole Datei“, die einzige 1 Stonebraker, M., Objektrelationale DB, 1999, S. 1ff Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 2 „Aktualisierung“ ist „schreibe Datei“. Somit werden diese Anforderung zur genüge vom Dateisystem befriedigt. Als Anwendungen des 2. Quadranten sieht Stonebraker die herkömmlichen relationalen Datenbanken, da diese auf einfachen Datentypen beruhen und in einem sehr hohen Maße (SQL-)Abfragen benutzen. Er gibt jedoch gleich zu bedenken, daß der Markt für Anbieter von relationalen Datenbanksystemen ein „überfüllter Tummelplatz“ sei. Besonders seit Microsoft den Code von Sybase für dessen MS-SQL-Server erworben hat und nun auf dem Markt neben Größen wie Oracle, DB2, Informix und CA Ingres drängt sei ein Preisverfall abzusehen.2 Einen weiteren nicht unerheblichen Einfluß können die Open-Source-Projekte wie mSQL, MySQL oder PostgreSQL einnehmen. Z.B. beim Wachstumsmarkt der Webserver erfreut sich die kostenlose, LAMP abgekürzte Kombination aus Linux, Apache, MySQL und PHP großer Beliebtheit.3 Als Anwendungen des 3. Quadranten erwähnt Stonebraker CAD-Programme. Hierbei sei die Umwandlung der Daten, wie z.B. Nachbarschaftsbeziehungen von Punkten ins Dateisystem sehr aufwendig. Anforderungen an Abfragen werden zu Gunsten der Performance nicht gestellt. Als Plattform für Anwendungen dieses Quadranten sieht er Objektorientierte Datenbanken wie Produkte von Object Design, Ontologic, Versant, Servio, O2 und Mantisse. Schließlich bleiben für den 4. Quadranten komplexe Daten, wie z.B. umfangreiche Bilddaten, die u.a. auch durch benutzerdefinierte Funktionen abgefragt werden müssen. Dies sei der Markt für objektrelationale Datenbanksysteme, da diese um entsprechende Datentypen erweitert sind bzw. erweitert werden können, um komplexe Daten abzuspeichern, benutzerdefinierte Funktionen unterstützen und über eine Abfragesprache verfügen. Stonebraker schätzt das objektrelationale Paradigma als die nächste große Welle ein. Dies untermauert er zum einen auf die steigende Computerisierung neuer MultimediaAnwendungen. Nach Schätzungen lägen noch 85% der nützlichen Informationen der Welt nicht in elektronischer Form vor. Dem entgegen stehe eine unglaubliche Geschwindigkeit, in der sich z.B. das World Wide Web fülle. Auch die zunehmende Speicherung von Bild und Ton in digitaler Form führe zu enormem Bedarf an 2 3 Stonebraker, M., Objektrelationale DB, 1999, S. 6f Wölfer, T., Network Computing, 18.10.2000, S.70 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 3 Verwaltung von komplexen Daten. Mit ihrer Menge geht auch ein Bedarf an Abfragen dieser einher, weshalb der Markt an objektrelationalen Systemem in den nächsten 10 Jahren stark anwachse. Zum anderen verschieben sich kommerzielle Datenverarbeitungsanwendungen nach rechts, was bedeute, daß die Komplexität der verwendeten Daten steige. Z.B. sei dies die Folge der steigenden Leistungsfähigkeit der Datenverarbeitung und dem Interesse, z.B. in Versicherungen auch Bilder der Schadensdaten direkt im Datenverarbeitungssystem abzulegen. Insgesamt schätze er den Markt für Datenbankmanagementsysteme im Verhältnis zum heutigen Gesamtmarkt wie folgt dargestellt ein:4 Abfrage keine Abfrage relationales DBMS objektrelationales DBMS 100 150 Datei-System objektorientiertes DBMS 1 einfache Daten komplexe Daten Abbildung 2: Relative Größe des DBMS-Marktes im Jahr 2005 Hiernach würde der Markt für RDBMS ein hundertfaches des heutigen Gesamtmarktes einnehmen, wobei der Markt für ORDBMS dies noch einmal um 50% übersteigen würde, während OODBMS gerade mal auf die Größe des heutigen Marktes stoßen würden. Letztendlich verspräche diese „große Welle“ mindestens so bedeutend wie der letzte Paradigmenwechsel zu werden, der von CODASYL zu relationalen Systemen erfolgte. 1.2 Kritik an der Klassifizierung nach Stonebraker Ich habe dieses Klassifizierungssystem als Einstieg in meine Studienarbeit gewählt, da es im großen und ganzen die kommenden Entwicklungstendenzen aufzeigt und die Materie verdeutlicht. Aufgrund seiner starken Verallgemeinerungen und Beschränkung auf nur zwei Kriterien ist es jedoch wenig aussagekräftig. Schlimmer jedoch wiegt, daß Stonebraker verkennt, daß OODBMS sehr wohl Abfragemöglichkeiten bieten und somit 4 Stonebraker, M., Objektrelationale DB, 1999, S. 20f Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 4 auch für den 4. Quadranten geeignet wären.5 Selbst eine standardisierte Abfragesprache steht mit der Object Query Language (OQL) seit Verabschiedung des ODMG-2.0 Standards 1997 zur Verfügung.6 1.3 Differenzierung OODBS / ORDBS Ein deutlich differenzierteres Modell verwenden die Autoren Meier und Wüst zur Marktübersicht anhand der Datenbankeigenschaften und Eigenschaften der Objektorientierung zur Einordnung der verfügbaren kommerziellen Datenbanksysteme. Hinter diesen Charakteristika verbergen sich jeweils eine Vielzahl von Einzelkriterien. Unter den Prinzipien der Objektorientierung werden die Unterstützung für komplexe Objekte, Objektidentität, Polymorphismus, Datenkapselung, Vollständigkeit Datenbankgrundsätze werden und Typen und Klassen, Erweiterbarkeit Dauerhaftigkeit, Vererbung, bewertet. große Als Datenbestände, Mehrbenutzerbetrieb, Rekonstruierbarkeit und Ad-hoc-Abfragemöglichkeit bewertet. Zusätzlich fließt noch die Praxistauglichkeit im bezug auf Sprachunabhängigkeit, Datenunabhängigkeit, Autorisierung, Beziehungskonzept, Standardkonformität, Schemaevolution, Integration und Versionenkontrolle, Migration sowie Eigenschaften der Objektorientierung Objectivity/DB ObjectStore Itasca O2 POET GemStone Matisse Versant ONTOS DB Omniscience Informix/Illustra UniSQL/X objektorientierte Datenbanksysteme OSMOS objektrelationale Datenbanksysteme Oracle 8 DB2 Datenbankeigenschaften 5 6 vgl. Heuer, A., OODBs, 1997, S. 423 Heuer, A., OODBs, 1997, S. 431 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 5 Leistungsdurchsatz ein.7 Hiernach ergibt sich folgendes Schaubild: Abbildung 3: Marktübersicht über wichtige objektorientierte und objektrelationale Systeme Objektorientierte Datenbanksysteme müssen minimal die acht Regeln der Objektorientierung und die fünf Datenbankgrundsätze erfüllen, damit sie das Prädikat OODBS erhalten. Die neun Forderungen der Praxis können nicht allesamt verlangt werden, da die heutigen Produkte diesbezügliche Schwächen aufweisen.8 Objektrelationale Datenbanken sind Datenbanksysteme, die von relationalen Datenmodell ausgehen und objektorientierte Erweiterungen anbieten. Die Datenhaltung erfolgt also primär in Tabellen – eventuell um Tabellenspalten mit erweiterten Datentypen ergänzt – und die Sprachschnittstelle folgt dem neuesten Sprachstandard SQL-3. Bei objektrelationalen Datenbanksystemen wird dem objektorientierten Paradigma nur teilweise entsprochen.9 7 Meier, A. / Wüst, T., Objektorientierte DB, 1997, S. 144ff Meier, A. / Wüst, T., Objektorientierte DB, 1997, S. 1479 Meier, A / Wüst, T., Objektorientierte DB, 1997, S. 148 9 Meier, A / Wüst, T., Objektorientierte DB, 1997, S. 148 8 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 6 2 Nachteile von RDBMS Die Geschichte der Datenbanksysteme läßt sich schon 30 Jahre zurückverfolgen. IMS von IBM, eines der ersten Datenbanksysteme, kam 1968 auf den Markt. Seit dieser Zeit ist das Angebot durch die Entwicklung von hierarchischen Datenbanksystemen, Netzwerk-Datenbanksystemen und invertierten Listen zu den relationalen Datenbankmanagementsystemen (RDBMS). So werden bei Neuentwicklungen von DVAnwendungen fast ausschließlich relationale Datenbanksysteme eingesetzt. Allerdings ist trotz dieser Popularität kaum eine andere Entwicklung in der Datenverarbeitung nach so vielen Jahren noch so umstritten wie die relationalen Datenbanken. Diejenigen, die sich zu diesem Phänomen bisher geäußert haben, begründen dies damit, daß die von Codd im Jahre 1970 aufgestellten Theorien »nur« die mathematische Grundlagen darstellten und die meisten Datenbankhersteller die Implementierung dieser Theorien (Datenbanksysteme) bisher nur sehr mangelhaft realisieren konnten. Laut E.F: Codd ist das Relationenmodell ein Art, die Daten zu sehen. In der Praxis zeigt sich jedoch, daß der Anwender relationaler Datenbanken eine ganze Philosophie verstehen muß.10 2.1 Datenmodellierung Beim Entwurf einer Datenbank müssen die in der Realität existierenden Gegebenheiten möglichst exakt abgebildet werden. Hierzu haben wir im Relationenmodell die Konzepte Attribute, Relationenschema sowie Integritätsbedingungen wie Schlüssel und Fremdschlüssel.11 Die erste Normalform (1NF) bedingt, daß nur atomare Attributwerte in der Datenbank gespeichert werden können und ihnen stehen in der Regel nur die Standarddatentypen wie integer, string, real oder boolean zur Verfügung.12 An folgendem Beispiel wird diese Einschränkung und die Umgehung dieser deutlich: 10 Sauer, H., RDBs, 1998, S. 13 Heuer, A., OODBs, 1997, S. 72 12 vgl. Heuer, A./ Saake, G., Datenbanken, 1994, S. 94f 11 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Austattungspakete Autotyp Opel Astra VW Golf Seite 7 Pakete Paket Ausstattung Radio Kassettenfach Zentralverriegelung Radio Sportlenkrad Schalensitze Sportlenkrad Schalensitze Alu-Felgen Breitreifen Radio Servolenkung 5-Gang-Getriebe Servolenkung Zentralverriegelung Airbag Kopfstützen hinten Abbildung 4: Autotypen mit Ausstattungspaketen: geschachtelte Darstellung Würde man versuchen, diese Daten in eine Tabelle ohne irgendwelche Kunstgriffe zu speichern, so käme folgende Tabelle zustande, wobei ein wichtiger Teil der enthaltenen Informationen verloren ginge: Austattungspakete Autotyp Opel Astra Opel Astra Opel Astra Opel Astra Opel Astra Opel Astra Opel Astra VW Golf VW Golf VW Golf VW Golf VW Golf VW Golf Ausstattung Radio Kassettenfach Zentralverriegelung Sportlenkrad Schalensitze Alu-Felgen Breitreifen Radio Servolenkung 5-Gang-Getriebe Zentralverriegelung Airbag Kopfstützen hinten Abbildung 5: Autotypen mit Ausstattungspaketen: relationale Darstellung mit Informationsverlust Durch einen künstlichen Schlüssel läßt sich dies vermeiden, jedoch ist dazu das Einführen einer neuen Tabelle nötig: Ausstattungspakete Autotyp Opel Astra Opel Astra Opel Astra VW Golf VW Golf Paket OA-GL OA-GS OA-GT VG-GL VG-CD Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Pakete Paket OA-GL OA-GL OA-GL OA-GS OA-GS OA-GS OA-GT OA-GT OA-GT OA-GT VG-GL VG_GL VG-GL VG-CD VG-CD VG-CD VG-CD Seite 8 Ausstattung Radio Kassettenfach Zentralverriegelung Radio Sportlenkrad Schalensitze Sportlenkrad Schalensitze Alu-Felgen Breitreifen Radio Servolenkung 5-Gang-Getriebe Servolenkung Zentralverriegelung Airbag Kopfstützen hinten Abbildung 6: Autotypen mit Ausstattungspaketen: relationale Darstellung mit künstlichen Schlüsseln Aus dieser Eigenschaft ergeben sich nun zwei Nachteile in der Datenmodellierung: 1. Attribute, die aus Wertemengen oder aus mehreren Komponenten bestehen, können simuliert, aber nicht direkt im Relationenmodell dargestellt werden.13 2. Beziehungen zwischen verschiedenen Relationen eines Objekttyps (Assoziation), Isa-Beziehungen zwischen verschiedenen Objekttypen (Generalisierung) und ObjektKomponentenobjekt-Beziehungen Datenbankmodell nicht (Aggregation) unterschieden werden. können Sie im werden relationalen jeweils über Fremdschlüssel-Beziehungen dargestellt.14 2.2 Datenbankentwurf Aus den Nachteilen eines RDBMS bei der Datenmodellierung folgt ein erhöhter Aufwand beim Datenbankentwurf. So muß beispielsweise die verlorengegangene Information, welche Art von Beziehung in einem Fremdschlüssel gespeichert ist, in der Programmlogik nachgereicht werden. Neben der ersten Normalform (1NF), die zwingende Voraussetzung für die Nutzung eines RDBMS 13 14 darstellt, ist die Modellierung in Heuer, A., OOBDs, 1997, S. 74 vgl. Heuer, A., OODBs, 1997, S. 78 Objektrelationale Datenbanken „höheren“ Normalformen Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 9 wünschenswert, weil hierdurch z.B. bei der dritten Normalform (3NF) Redundanzen vermieden werden.15 Um diese Normalformen zu erreichen, gibt es formale Algorithmen. Diese sind der Dekompositions- und der Synthesealgorithmus, sowie das Sichtintegrationsverfahren. Diese hier zu erläutern würde den Rahmen der Arbeit sprengen. Es bleibt jedoch zu erwähnen, daß das Ergebnis der Dekomposition nicht abhängigkeitstreu, nicht minimal und sehr reihenfolgeabhängig ist. Teilweise werden Attribute völlig getrennter Objekttypen in ein Relationenschema aufgenommen, Informationen eines Objekttyps dagegen auf mehrere Relationenschemata verteilt oder gar nicht berücksichtigt.16 Beim Synthesealgorithmus hingegen werden zwar alle formalen DatenbankschemaEigenschaften erreicht, trotzdem können Attribute unterschiedlicher Objekttypen nicht getrennt werden. Außerdem werden nur funktionale und keine mehrwertigen Abhängigkeiten berücksichtigt.17 Beim Sichtintegrationsverfahren treten eventuell unentscheidbare Probleme auf, die ihre Ursache in der uneingeschränkten Form der zugehörigen Abhängigkeiten haben.18 2.3 Anfragesprache Ein generelles Problem aller Anfragesprachen relationaler DBMS (nicht nur SQL) liegt in deren Grundlage. Codd fordert von einem voll relationalen Datenbanksystem, daß die Anfragesprache relational vollständig ist, also zumindest das leistet, was die Relationenalgebra oder der Kalkül können und diese Vollständig mit rein deskriptiven Mitteln, also ohne Wiederholungsanweisungen (Repeat, While, Loop) oder anderen navigierenden Operationen erreicht wird. Dies führt in der praktischen Verwendung zu folgenden drei Hauptproblemen: Strukturmangel im Ergebnis, keine Unterstützung komplexer Strukturen und Notwendigkeit expliziter Verbundoperationen.19 Auch lassen sich ohne Schleifenkonstrukte nur schwer Rekursionen ausführen. Will man komplexe Operationen in relationalen Datenbanksystemen durchführen, so bleibt einem in vielen Fällen nur die Einbettung der Datenbankoperationen in allgemeine Programme, die in einer höheren Programmiersprache geschrieben werden. 15 vgl. Heuer, A. / Saake, G., Datenbanken, 1994, S. 195ff Heuer, A., OODBs, 1997, S. 89 17 Heuer, A., OODBs, 1997, S. 91 18 Heuer, A. / Saake, G., Datenbanken, 1994, S. 220 19 Heuer, A., OODBs, 1997, S. 93 16 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Der Hauptnachteil bei derzeit existierenden Datenbanksystemen Seite 10 und Programmiersprachen ist der sog. impedance mismatch, das Nicht-Zusammenpassen von Programmiersprachen- und Datenbankkonzepten. Was nicht zusammenpaßt, sind vor allen Dingen das Typsystem sowie die Paradigmen der Programmiersprache (etwa imperativ) und der Datenbank (etwa kalkülartig). Einschränken läßt sich dieses Problem durch Verwendung einer Datenbankprogrammiersprache.20 Diese bieten jedoch nicht einen so großen Funktionsumfang, so daß sich nicht alle benötigte Funktionalität hierdurch realisieren läßt. 2.4 Fazit Die Liste der Nachteile von RDBMS ließe sich noch lange fortsetzen und es liegt im Interesse der Datenbankhersteller, diese zu umgehen. Hierbei gibt es Grundsätzlich zwei Möglichkeiten, nachdem ersichtlich ist, daß die Beschränkung auf das relationale Datenmodell Ursache hierfür ist: Entweder man verwendet ein anderes Datenmodell oder man erweitert das verwendete. Objektorientierung ist in der Informatik eines der großen Schlagwörter der neunziger Jahre geworden.21 Und so verwundert es nicht, daß auch aus diesem Gebiet ein Ausweg aus den Beschränkungen des RDBMS gesucht wurde. Dabei wurde entweder mehr oder weniger ausgehend von einer objektorientierten Programmiersprache (OOPL) wie Smalltalk oder C++ durch Realisierung von Datenbankkonzepte wie Persistenz, Speicherstrukturen und Zugriffspfade, Transaktionen und Concurrency Control sowie Recovery-Mechanismen ein objektorientiertes Datenbanksystem (OODBS) entwickelt. Oder aber es wurde ein bestehendes (meist relationales) Datenbanksystem strukturell und / oder verhaltensmäßig objektorientiert erweitert.22 Bei weitgehenden Erweiterungen des relationalen Systems um objektorientierte Eigenschaften spricht man von objektrelationalen Datenbanksystemen,23 denen ich mich noch genauer widmen möchte. 20 Heuer, A., OODBs, S. 102ff vgl. Heuer, A., OODBs, S. 1 22 Heuer, A., OODBs, S.413f 23 Heuer, A., OODBs, S.420 21 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 11 3 Erweiterungen des relationalen DBS in ORDBS Im Strukturteil bieten ORDBS Typen, Typkonstruktoren und oft auch abstrakte Datentypen (ADTs), Objektidentititäten für komplexe Tupel in Relationen (die häufig auch Klassen genannt werden) eine getrennte Klassen- und Typhierarchie (die Klassenhierarchie wird bei objektrelationalen Systemen häufig Relationenhierarchie oder Tabellenhierarchie genannt) sowie bei den höheren Konzepten Methoden, Vererbung und eventuell auch Overriding. Im Operationenteil fällt auf, daß nur relationale Anfragen erlaubt sind. Trotz vieler objektorientierter Konzepte im Datenmodell ist das Grundlegende Konstrukt immer noch die Relation oder Tabelle.24 Als Datenmanipulationssprache (DML) verwenden alle auf dem Markt erhältlichen ORDBS eine an SQL-3 angelehnte Sprache25, so daß ich mich im weiteren an diesem Standard „gemeinsamen Nenner“ orientieren werde. 3.1 Basisdatentypen In SQL-3-Standard (gelegentlich auch als SQL-99 bezeichnet) wurden weitere Basisdatentypen gegenüber SQL-2 (gelegentlich auch als SQL-92 bezeichnet) festgelegt. Zudem wurden die bestehenden Datentypen teilweise verändert. So wurde die interne Repräsentation der BOOLEAN-Werte im Standard festgelegt.26 24 Heuer, A., OODBs, 1997, S. 422f vgl. Meier, A. / Wüst, T., Objektorientierte DB, 1997, S. 173 26 vgl. Fortier, P. J., SQL3, 1999, S. 119ff 25 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 12 3.1.1 BLOB Binary Large Object ist ein Datentyp, der für große Binärdaten, wie z.B. Bilder verwendet werden kann. Diese Objekte werden in der Datenbank abgelegt – also nicht in einer separaten Datei – und besitzen Datenbankfunktionen zur Manipulation, damit diese nicht auf dem Client-System bearbeitet und gecached werden müssen. 3.1.2 CLOB Character Large Object ist ein Datentyp, der für lange Texte verwendet werden kann. Auch für diese bieten viele Anbieter spezielle Datenbankfunktionen, um das Netzwerk und die Clients zu entlasten. 3.2 Benutzerdefinierte Datentypen Im Standard wurde ebenfalls festgelegt, welche Möglichkeiten der Benutzer hat, eigene Datentypen anzulegen. Hierdurch wird eine sehr große Anzahl von Anwendungsfällen unterstützt, ohne daß der Datenbankanbieter hierfür jeden erforderlichen Datentyp bei der Programmierung implementieren muß und hält dadurch auch die Anzahl der Typen überschaubar.27 3.2.1 Distinct Types Die elementarste Form eines benutzerdefinierten Datentyps ist der distinkte Typ. Hierbei handelt es sich um die Definition eines neuen Namens für einen bereits existierenden Typ.28 Dies läßt sich einsetzen, um verschiedene Argumente, die intern gleich dargestellt werden von einer fehlerhaften Benutzung zu schützen, z.B. bei Währungen. Beispiel: CREATE DISTINCT TYPE euro_t AS DECIMAL (7,2) CREATE DISTINCT TYPE dm_t AS DECIMAL (7,2) In einer Tabelle seien durch eine Auswertung die Gewinne durch die Vermittler gespeichert, in einer anderen die an sie gezahlte Provisionen. 27 28 vgl. Sauer, H., RDBs, 1998, S. 127ff Sauer, H., RDBs, 1998, S. 128 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 13 Nach der Umstellung auf Euro werden die Gewinne in Euro erfaßt, während die gezahlten Provisionen nicht umgerechnet wurden. CREATE TABLE provisionen ( provision dm_t, vermittler_nr INTEGER, ) CREATE TABLE gewinn ( gewinn vermittler_nr ) euro_t, INTEGER, Will nun jemand auswerten, welcher Vermittler mehr Provision erhalten hat, als das Unternehmen an den durch ihn abgeschlossene Verträge verdient hat, so könnte er fälschlicherweise folgende Abfrage ausführen wollen: SELECT provisionen.vermittler_nr, provisionen.provision, gewinne.gewinn FROM gewinne, provisionen WHERE gewinne.vermittler_nr = provisionen.vermittlernummer AND gewinne.gewinn < provisionen.provision Diese Abfrage wird die Datenbank nicht ausführen, da die Datentypen von Gewinn und Provision verschieden sind und somit ein Vergleichsoperator nicht zulässig ist. Durch eine Funktion läßt sich jedoch die korrekte Auswertung ermöglichen: FUNCTION betrag_in_euro(dm dm_t) RETURNS euro_t BEGIN DECLARE euro euro_t; SET euro = dm / 1,95583; RETURN euro; END Die korrekte Abfrage lautet nun: SELECT provisionen.vermittler_nr, provisionen.provision, gewinne.gewinn FROM gewinne, provisionen WHERE gewinne.vermittler_nr = provisionen.vermittlernummer AND gewinne.gewinn < betrag_in_euro(provisionen.provision) 3.2.2 Row Types Über diesen Datentyp lassen sich wie für Tabellen auch für Spalten einer Tabelle eine Reihe von Attributname-Datentyp-Paaren zuweisen. Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 14 Abbildung 7: Beispiel für Row data type Beispiel:29 CREATE TABLE employees emp_id KEY, last_name first_name NULL, emp_address emp_phone emp_full_time emp_signature emp_picture emp_resume ) ( INTEGER CONSTRAINT employees_emp_id_pk PRIMARY name_t CONSTRAINT employees_last_name NOT NULL, name_t CONSTRAINT employees_first_name NOT ROW ( street CHARACTER city CHARACTER state CHARACTER zip CHARACTER ), CHARCTER (10), BOOLEAN, BLOB (1M), BLOB (10M), CLOB (50K) VARYING (30) VARYING (20) (2), VARYING (9) Es lassen sich auch Row types Namen zuweisen, um diese wie andere Datentypen in den Tabellendefinitionen verwenden und wiederverwenden zu können. In diesem Beispiel würde dies wie folgt vorgegeben werden: CREATE ROW TYPE address_t ( street CHARACTER city CHARACTER state CHARACTER zip CHARACTER ), CREATE TABLE employees emp_id KEY, last_name first_name NULL, emp_address emp_phone emp_full_time emp_signature emp_picture emp_resume ) 29 VARYING (30) VARYING (20) (2), VARYING (9) ( INTEGER CONSTRAINT employees_emp_id_pk PRIMARY name_t CONSTRAINT employees_last_name NOT NULL, name_t CONSTRAINT employees_first_name NOT address_t, CHARCTER (10), BOOLEAN, BLOB (1M), BLOB (10M), CLOB (50K) Fortier, P. J., SQL3, 1999, S. 135f Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 15 3.2.3 Abstract Data Types Abstrakte Datentypen zählen wohl zu den bedeutendsten Erweiterung des Typsystems in ORDBS. Sie erlauben nicht nur das Neubenennen von bestehenden Datentypen (wie die Distinct Types) oder die Kombination aus bestehenden Typen (wie die Row Types), sie erlauben darüber hinaus auch die Definition von Methoden und Kapselung der internen Darstellung der Werte. Der Zugriff auf die Attribute eines so erzeugten Objekts erfolgt ausschließlich über Funktionen. Durch das Schlüsselwort PUBLIC werden die benötigten Zugriffsfunktionen für das entsprechende Attribut automatisch erstellt.30 CREATE TYPE person_t ( PUBLIC first_name name_t, PUBLIC last_name name_t, PUBLIC date_of_birth DATE ) CREATE TABLE students ( student person_t, course course_t ) SELECT last_name(student) FROM students WHERE ... Jedoch wird meist die aus OOPL bekannte Kaskaden-Punkt-Notation verwendet, die auch schon in früheren SQL-Standards zum Zugriff auf Spalten einer Tabelle erwendet wurde.31 Der SQL-3-Standard sieht vor, daß zwei Punkte verwendet werden müssen:32 SELECT students.student..last_name FROM students WHERE ... Die Leistungsfähigkeit von ADT liegt dabei darin, komplexe Objekte und deren Verhalten recht genau im Datenbankmodell ablegen zu können. Es lassen sich nun auch Funktionen zu diesen Typen definieren, z.B. eine Funktion, die das aktuelle Alter in Jahren einer Person als Differenz aus Systemdatum und Geburtsdatum ausgibt. Damit wäre folgende Abfrage möglich: SELECT student..last_name, student..first_name FROM students WHERE student..age > 35 Einige Datenbankhersteller erlauben auch, Methoden von ADT in C++, Smalltalk oder Java zu programmieren.33 Sie bieten dadurch die Grundlage für Unterstützung von 30 vgl. Sauer, H., RDBs, 1998, S. 131 vgl. Stonebraker, M., Objektrelationale DB, 1999, S.55 32 vgl. Fortier, P. J., SQL3, 1999, S. 157; anders hierzu Notation in Illustra mit einfachem Punkt, vgl. Stonebraker, M., Objektrelationale DB, 1999, S. 55 33 vgl. Stonebraker, M., Objektrelationale DB, 1999, S.30ff; ebenso Meier, A. / Wüst, T., Objektorientierte DB, 1997, S. 161 31 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 16 beispielsweise Texten, Bildern, Filmen, Ton, geometrische Formen, geographische Daten und Zeitreihen mit eigenen Vergleichs-, Sortierungs und Umwandlungsoperatoren und Verwendung weiterer Zugriffpfade neben B/B*-Bäume auch über R-, KdB-, Quad-Bäume oder Gitterdateien.34 Die so „erweiterten ADTs“ sind nicht im SQL-3-Standard enthalten und werden von den Datenbankherstellern unter verschiedenen Namen angepriesen, so heißt dieser Datentyp in Oracle 8i „Data Cartrige“35, in IBM DB2 Universal Database „Reltional Extenders“36 und in Illustra / Informix Universal Server „Data Blades“37 3.2.4 Array Types Über diesen Datentyp lassen sich aus Programmiersprachen schon lange genutzte Feldspeicher (Array) als Attribute in der Datenbank speichern. Da ein Array mehrere Argumente eines Datentyps aufnehmen kann, wird hiermit die Einschränkung der ersten Normalform bei RDBS außer Kraft gesetzt. Sollen 1:n-Beziehungen abgebildet werden, wobei für n eine Obergrenze gegeben ist, z.B. sollen mehrere Telefonnummern eines Mitarbeiters hinterlegt werden, so ließe sich dies wie folgt realisieren: CREATE TABLE employees emp_id KEY, last_name first_name emp_address emp_phone emp_full_time emp_signature emp_picture emp_resume ) ( INTEGER CONSTRAINT employees_emp_id_pk PRIMARY name CONSTRAINT employees_last_name NOT NULL, name CONSTRAINT employees_first_name NOT NULL, address_t, CHARCTER (10) ARRAY (5), BOOLEAN, BLOB (1M), BLOB (10M), CLOB (50K) Es handelt sich hierbei um eine geschachtelte Relation oder auch NF² relation genannt. NF² steht hierbei für Non First Normal Form (NFNF). Genauer betrachtet handelt es sich um eine sog. PNF-Relation, wobei PNF für Partitioned Normal Form steht. Darunter werden jene NF²-Relationen zusammengefaßt, die sich immer entschachtelt durch eine äquivalente 1NF-Relation darstellen lassen.38 In SQL-3 wird zum entschachteln solcher PNF der THE-Operator verwendet.39 Die verwendete Abbildung 34 vgl. Stonebraker, M., Objektrelationale DB, 1999, S. 41 vgl. Kumar, S. / Nori, A.,Oracle8 ORDBS Overview, 1997 36 vgl. Meier, A. / Wüst, T., Objektrientierte DB, 1997, S. 161 37 vgl. Heuer, A., OODBs, 1997, S. 589 u. S. 518ff 38 Heuer, A. / Saake, G., Datenbanken, 1994, S. 111ff 39 vgl. Fortier, P. J., SQL3, S. 270; ebenso Koch, G. / Loney, K., Oracle8, 1998 35 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 17 der Ausstattungspakete in ihrer nicht normalisierten Darstellung (Abbildung 4, Seite 7) ist so eine PNF-Relation. 3.2.5 weitere Collections Wie Array Types werden auch noch weitere Sammlungen von mehreren Instanzen eines Datentyps (Collections) vorgesehen. Diese sind SET, LIST und MULTISET. Sie alle haben im Gegensatz zu einem Array keine bestimmte Obergrenze für die 1:nKardinalität. Sie können Basisdatentypen ebenso wie komplexe Datentypen aufnehmen.40 SET ist hierbei eine ungeordnete Liste ohne Duplikate. LIST ist eine geordnete Liste ohne Duplikate. MULTISET erlaubt im Gegensatz zu SET und LIST Duplikate. Eventuell werden SET, LIST und MULTISET erst in den SQL-4-Standard aufgenommen. 3.3 Objekt-Identitäten und Referenzen In einem RDBS werden Datensätze durch Schlüssel identifiziert. Dies kann jedoch zu Problemen führen, wenn sich dieser ändert. Denn wird dieser Schlüssel als Fremdschlüssel in einer anderen Relation benutzt, so muß er auch dort abgeändert werden. Um dies zu vermeiden, werden in RDBS anstelle von „sprechenden Schlüsseln“ häufig abstrakte Schlüssel ohne offensichtliche Aussagekraft verwendet, wie z.B. eine fortlaufende Bestellnummern. In ORDBS kann vom System intern ein Surrogat-Wert41 erzeugt, der einen Datensatz repräsentiert. Dieser wird objekt identity (OID) genannt, ist in der Datenbank immer eindeutig, wird nie geändert, wird bei der Erzeugung eines Objektes generiert und ist solange gültig, wie auch das Objekt in der Datenbank existiert. 40 41 Fortier, P. J., SQL3, 1999, S. 140f vgl. Heuer, A., OODBs, 1997, S. 101 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 18 Auf ein solches Objekt kann über eine (Zeilen-)Referenz mit REF verwiesen werden. Um nun eine Referenz aufzulösen gibt es umgekehrt den DEREF-Operator. Durch OID und REF lassen sich somit in Tabellen eine Art Fremdschlüsselbeziehung modellieren. Art der Beziehung Kardinalitäten Unabhängigkeit von logischen Datenstrukturen Unabhängigkeit von Datenänderungen Referentielle Integrität Zugriffsoptimierung Besondere Eignung Zeilenreferenz Explizit durch Referenzen. Die Referenzen einer Spalte können auf verschiedene Tabellen zeigen. 1:1 und n:1 (1:n und n:m zukünftig durch Collection-Typen) Gering Primär- / Fremdschlüsselbeziehung Beziehung wird dynamisch durch Wertevergleich (JOIN) rekonstruiert. 1:1, 1:n und n:1 Hoch Wenn sich der Schlüsselwert ändert, Wenn sich der Schlüsselwert ändert, bleiben Referenzen gültig. müssen alle Werte, auf die referenziert wird, geändert werden. Typprüfung und Scope-Anweisung Referentielle Integrität kann verhindern ungültige Referenzen. jederzeit vom Datenbanksystem Referenzen auf gelöschte Zeilen sichergestellt werden. werden beim zugriff erkannt. Durch Indizes und durch die in der Durch einen Index Zeilenreferenz enthaltene interne Satzadresse Komplexe Beziehungsgeflechte Einfache Beziehungen (z.B. Stücklisten, geometrische Strukturen, ...) Abbildung 8: Vergleichstabelle Zeilenreferenz mit Primär-/Fremdschlüsselbeziehung42 3.4 Verhalten von Datenbankobjekten In ORDBS gibt es die Möglichkeit, Methoden an Objekte zu binden, z.B. indem man bei ADT solche Funktionen definiert. Eine weitere Möglichkeit stellen Trigger dar. Trigger sind meist kleine Programme, die immer dann aufgerufen werden, wenn ein für sie definiertes Ereignis an einem bestimmten Objekt eintritt, z.B. wenn es aktualisiert wird.43 Durch die Zuweisung von Verhalten an Objekte läßt sich ein großer Teil der Programmlogik großer Anwendung bewältigen und wiederverwendbarer und gekapselt speichern. 42 43 Sauer, H., RDBs, 1998, S. 120f vgl. Fortier, P. J., SQL3, S. 275ff Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Anwendungsprogramme Sichten ... ... Personen Personen Angestellte Seite 19 Angestellte Abbildung 9: Unterschied zwischen der Anordnung komplizierter Operationen in herkömmlichen Datenbankarchitekturen (links) und dem objektorientierten Fall (rechts) 44 3.5 Weitere Objektorientierte Konzepte ORDBS besitzen eine Typ- und Tabellenhierarchie, die Vererbung45 unterstützt. So lassen sich speziellere Untertypen (sub types) des ADT person_t erzeugen, z.B. Angestellte employee_t, bei denen das Datum des Beginns der Beschäftigung mitgespeichert werden soll. CREATE TYPE employee_t UNDER person_t ( PUBLIC hire_date DATE ) Ebenso wäre es möglich, eine Untertabellen (sub tables) zu erzeugen, um beispielsweise die leitenden Angestellten von Abteilungen abzuspeichern: CREATE TABLE employees ( emp_id INTEGER, emp employee_t ) CREATE TABLE dept_managers UNDER employee ( dept REF(department_t) ) Je nach Grad der objektorientierten Implementierung erhält das erbende Objekt nicht nur die Argumente (Struktur), sondern auch sämtliche Methoden (Verhalten). Hier wird dann das Merkmal Overiding interessant: Es erlaubt, geerbte Information mit an den Wünschen angepaßten zu „überschreiben“. Auf der Seite der Funktionen bietet Polymorphismus die Möglichkeit, unter gleichem Namen angepaßt an den übergebenen Objekttyp Routinen auszuführen. Beispielsweise 44 45 Heuer, A., OODBs, 1997, S. 103 vgl. Sauer, H., RDBs, 1998, S.109ff Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 20 ließe sich so zu der bereits erwähnten Funktion betrag_in_euro(dm_t) die entsprechende für französische Franc erzeugen: CREATE DISTINCT TYPE ffr_t AS DECIMAL (7,2) FUNCTION betrag_in_euro(ffr ffr_t) RETURNS euro_t BEGIN DECLARE euro euro_t; SET euro = ffr / 6,55957; RETURN euro; END Wird nun die Funktion betrag_in_euro aufgerufen, entscheidet die Datenbank anhand des übergebenen Objekttyps selbstständig, welche Routine aufgerufen werden muß (und somit welcher Umrechnungskurs Verwendung findet). Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 21 4 Können ORDBS Probleme der RDBS lösen? Abschließend möchte ich darauf eingehen, inwieweit die objektorientierten Ergänzungen des relationalen Modells dessen Nachteile beseitigen. 4.1 Datenmodellierung Attribute, die nicht nur aus einem Wert bestehen, sondern aus einer Wertemenge können je nach Anforderung als variables Array, Set, List oder Multi Set modelliert werden. Beziehungen (Assoziationen) zwischen Objekten können durch Referenzen, Is-aBeziehungen (Generalisierung) durch Typ- und Tabellenhierarchien mittels Vererbung und Objekt-Komponentenobjekt-Beziehungen (Aggregation) mittels abstrakter Datentypen und falls nötig Referenzen und Collections modelliert werden. Somit lassen sich diese verschiedenen Beziehungstypen auch im Modell unterscheiden. 4.2 Datenbankentwurf Auf die 1NF kann in ORDBS verzichtet werden. Dadurch lassen sich auch die Algorithmen für die höheren Normalformen nicht mehr anwenden. Jedoch lassen sich nun leichter Datenbankmodell anhand beispielsweise eines ER-Diagrams46 oder UML47 erstellen. 4.3 Anfragesprache Rekursionen wurden in den SQL-3-Standard mitaufgenommen.48 Durch die Einführung von Methoden in ADTs, SQL Persistent Stored Modules49 und Triggers wird die Notwendigkeit auf Programmiersprachen außerhalb der Datenbank auszuweichen, deutlich gesenkt. Das Typsystem ähnelt nun dem objektorientierter Programmiersprachen, so daß impedance mismatch reduziert sein sollte. 46 vgl. Heuer, A., OODBs, 1997, S. 134ff vgl. Heuer, A., OODBs, 1997, S. 176f und Meier, A. / Wüst, T., Objektorientierte DB, 1997, S. 11 48 vgl. Fortier, P. J., SQL3, 1999, S. 345-356 49 vgl. Fortier, P.J., SQL3, 1999, S. 301-339 47 Objektrelationale Datenbanken Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here. Seite 22 Zudem steht mit dem Call-Level-Interface eine normierte Schnittstelle zu modernen Programmiersprachen zur Verfügung50 und es besteht die Möglichkeit, Methoden auf den Servern in C++ oder Java zu schreiben.51 4.4 Fazit Die objektorientierten Erweiterungen bieten Lösungen für den Großteil der Probleme relationaler Datenbanksysteme. Und so verwundert es nicht, daß die großen Datenbankhersteller auch alle derartige Produkte inzwischen auf den Markt gebracht haben. Durch die Vielzahl von Möglichkeiten und das beibehalten der Relation kann beim erstellen des Datenmodells jedoch die Designentscheidung erschwert werden.52 Im Vergleich mit vollständig objektorientierten Datenbanksystemen können ORDBS von der Ausgereiftheit der zugrundeliegenden Systeme profitieren. So stellen OODBS bei Transaktionen und Anfragen keine echte Konkurrenz für ORDBS dar.53 Und ein wichtiges Argument darf hierbei nicht vergessen werden: Anwendungen und Daten für bestehende RDBMS lassen sich meist nahtlos in ORDBMS überführen, da diese die direkte Nachfolgeversion darstellt. Somit wird meiner Meinung nach die Objektorientierung in kleinen Schritten Einzug in die Datenbankwelt erhalten – in Form von ORDBS. Mit zunehmendem Reifegrad und neuentwickelten Anwendungen werden auch OODBS mehr Verbreitung finden – doch bis dahin eine Speziallösung bleiben. „Jedoch leiten objektorientierte Datenbanksysteme einen Paradigmenwechsel ein, der im Markt recht schwer zu etablieren ist. Genau darin besteht der Unterschied zu objektrelationalen Datenbanken und somit zu SQL-3: Hier wird eine objektorientierte Evolution statt einer objektorientierten Revolution durchgeführt. Zudem liegen Objektdatenbanken bezüglich Stabilität und verfügbaren Administrationswerkzeugen noch hinter relationalen zurück.“54 50 vgl. Fortier, P. J., SQL3, 1999, S. 79f vgl. Sauer, H., RDBs, 1998, S. 138 52 vgl. Sauer, H., RDBs, 1998, S. 139 53 vgl. Heuer, A., OODBs, 1997, S. 429 54 Sauer, H., RDBs, 1998, S. 104 51 Objektrelationale Datenbanken Literatur-/Quellenverzeichnis Seite 23 Literatur-/Quellenverzeichnis Foutier, Paul J. [SQL3, 1999]: SQL-3 – Implementing the Object-Relational Database, Implementing the SQL Foundation Standard, New York: McGraw-Hill, 1999 Heuer, Andreas [OODBs, 1997]: Objektorientierte Datenbanken – Konzepte, Modelle, Standards und Systeme, 2., aktualisierte und erweiterte Aufl., Bonn: AddisonWesley-Longman, 1997 Heuer, Andreas / Saake, Gunter [Datenbanken, 1997]: Datenbanken – Konzepte und Sprachen, 1. korrigierter Nachdruck, Bonn, Albany, Attenkirchen: Internat. Thomson Publ., 1997 Heuer, Andreas u.a. [E-Mail-Verwaltung, 1999]: Electronic-Mail-Verwaltung auf objektrelationalen Datenbank-Systemen, http://e-lib.informatik.unirostock.de/fulltext/1999/preprints/cs-07-99-1999.ps.gz Koch, George / Loney, Kevin [Oracle8, 1998]: Oracle8 – Die umfassende Referenz, München, Wien: Hanser, 1998 Kumar, Sanjeev / Nori, Anil [Oracle8 ORDBS Overview, 1997]: Oracle8 Object Relational Database: An Overview, An Oracle Technical White Paper, http://technet.oracle.com, 1997 Meier, Andreas / Wüst, Thomas [Objektorientierte DB, 1997]: Objektorientierte Datenbanken – Ein Kompaß für die Praxis, 1. Auflage, Heidelberg: dpunktVerl., 1997 Sauer, Hermann [RDBs, 1998]: Relationale Datenbanken – Theorie und Praxis, 4., aktulisierte und erweiterte Auflage, Bonn: Addison-Wesley-Longman, 1998 Stonebraker, Michael / Moore, Dorothy [Objektrelationale DB, 1999]: Objektrelationale Datenbanken – Die nächste Große Welle, München, Wien: Hanser, 1999 Wölfer, Thomas [Der LAMP-Server]: Der LAMP-Server, in: Network Computing, 18. Oktober 2000, S. 70 - 72 Objektrelationale Datenbanken Ich versichere hiermit, daß ich meine Studienarbeit mit dem Thema „Objektrelationale Datenbanken“ selbständig verfaßt und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. ......................... Ort ......................... ......................................... Datum Unterschrift Objektrelationale Datenbanken