Objektorientierte Datenbanksysteme1 (OODBS) sind im Laufe der 80er Jahre entwickelt worden und seit dem Jahr 1987 kommerziell verfügbar. Mit OODBS versucht man heute die Komplexität vieler Anwendungen in den Griff zu bekommen. Doch gibt es im Gegensatz zu relationalen Datenbanksystemen kein allgemein einheitliches Datenmodell, das allen OODBS zugrundeliegt. OODBS beinhalten eine Kombination von Konzepten aus Programmiersprachen und Datenbanksystemen. Die Entwicklung von objektorientierten Datenbanksystemen2 begann in beiden Gebieten, dem der semantischen Datenbanksysteme und dem der objektorientierten Programmiersprachen, sowie späteren Neuentwicklungen. Die Entwicklung objektorientierter Datenbanken stellt den bisher letzten Schritt in der Datenbank-Evolution dar und schafft die Grundlage für die objektorientierte Datenverarbeitung.
Beispiele für die unterschiedlichen Entwicklungsrichtungen von OODBS:
Erweiterung objektorientierter Programmiersprachen mit Datenbank Konzepten (OOPLs: z.B.: ObjektStore, GemStone, u.a.) um:
[...]
INHALTSVERZEICHNIS
1. Bedeutung Objektorientierter Datenbanksysteme
1.1. Einleitung
1.2. Vorteile Objektorientierter Datenbanksysteme
1.3. Anwendung Objektorientierter Datenbanksysteme
2. Inhalt Objektorientierter Datenbanksysteme
2.1. Definition Objektorientierter Datenbanksysteme
2.2. Anforderungen an Objektorientierte Datenbanksysteme
2.3. Konzepte und Eigenschaften Objektorientierter Datenbanksysteme
2.4. Grundprinzipien von Objektorientierte Datenbanksystemen
2.5. Objektorientierte Datenbanksprachen
2.6. Das Model OODBS
2.7. Interne Ebene und Speicherstruktur eines Objektorientierten Datenbanksystems
2.8. Der ODMG Standard
3. Beispiel Objektorientierter Datenbanksysteme
3.1. Fallszenario: Objektorientierte Datenbanksysteme: Anwendung im Klinikbereich
4. Abkürzungsverzeichnis
5. Literaturverzeichnis
6. Weiterführende Links und Informationsmaterial
1. Bedeutung Objektorientierter Datenbanksysteme
1.1. Einleitung
Objektorientierte Datenbanksysteme1 (OODBS) sind im Laufe der 80er Jahre entwickelt worden und seit dem Jahr 1987 kommerziell verfügbar. Mit OODBS versucht man heute die Komplexität vieler Anwendungen in den Griff zu bekommen. Doch gibt es im Gegensatz zu relationalen Datenbanksystemen kein allgemein einheitliches Datenmodell, das allen OODBS zugrundeliegt. OODBS beinhalten eine Kombination von Konzepten aus Programmiersprachen und Datenbanksystemen. Die Entwicklung von objektorientierten Datenbanksystemen2 begann in beiden Gebieten, dem der semantischen Datenbanksysteme und dem der objektorientierten Programmier- sprachen, sowie späteren Neuentwicklungen. Die Entwicklung objektorientierter Datenbanken stellt den bisher letzten Schritt in der Datenbank-Evolution dar und schafft die Grundlage für die objektorientierte Datenverarbeitung.
Beispiele für die unterschiedlichen Entwicklungsrichtungen von OODBS:
- Erweiterung objektorientierter Programmiersprachen mit Datenbank Konzepten (OOPLs: z.B.: ObjektStore, GemStone, u.a.) um:
- Persistenz
- Transaktionsmanagement
- Object-sharing
- Ad Hoc Queries
- Erweiterung relationaler Datenbanksysteme mit objektorientierten Konzepten (z.B.:Uni-SQL,
POSTGRES u.a) um (komplexe) Objekte
- benutzerdefinierbare Typen und Operatoren
- Objektidentität
- Typen/Klassen Hierarchien/Vererbung
- Sprachvollständigkeit
- Einkapselung
- Überladen/Überschreiben/spätes Binden
- Neuentwicklungen (z.B.: O2, Jasmine, ITASCA u.a.)3
Motiviert wurde die Entwicklung von OODBS in erster Linie durch sogenannte Non-Standard- Anwendungen (CAD4, CASE5 usw.), als sich zeigte, dass die Möglichkeiten traditioneller, relationaler Systeme nicht mehr ausreichen, um die komplexen Zusammenhänge hochstrukturierter Informationen modellieren bzw. effizient verwalten zu können. Objektorientierte Modelle sollen hier Abhilfe schaffen. Als wesentliche Entwicklungsziele lassen sich nennen:
- Möglichkeit der weitgehend direkten Darstellbarkeit vernetzter Informationen
- Bereitstellung "höherer" Datentypen, wie Graphik- und Audiodaten, die auch manipulierbar sein sollen (d.h. Änderbarkeit und Wartbarkeit)
- Bereitstellung typspezifischer Operationen
- Die Unterstützung mächtiger Programmiersprachen
- Neue Datentypen sind definierbar, zusätzliche Flexibilität und Erweiterbarkeit werden erreicht
- Überschaubarkeit und Lesbarkeit
Durch die zwei Ursprünge objektorientierter Datenbanksysteme, bieten die zugrundeliegenden Modelle eine Vielzahl an Konzepten, die eine realitätsnahe Modellierung vieler Anwendungen ermöglichen. Die Vielzahl an Konzepten fordert aber auch ihre Unterstützung, das heißt, es müssen zusätzliche Operationen definiert werden, Optimierungsstrategien für diese Operationen entwickelt werden, Anfragesprachen angepaßt werden usw. Insgesamt aber werden die Problembereiche relationaler Datenmodelle in objektorientierten Modellen gut behoben.
Zunächst aber ein allgemeiner Überblick über die Vorteile der objektorientierten Datenbanksysteme, die sich im Laufe der Erstellung der Hausarbeit herauskristalisierten, und einen ersten spontanen Eindruck über die Bedeutung der Entwicklung erkennbar machen.
1.2. Vorteile objektorientierter Datenbanksysteme
Die wichtigsten Vorteile von objektorientierten Datenbanken sind eine übersichtliche und einfach zu wartende Struktur durch Zusammenfassung und Kapselung der Daten.
- Der Mensch ist eher gewohnt, in Objekten zu denken. Das Konzept eines Objekts ist verständlicher und anschaulicher als das einer Tabelle.
In einem Objekt bilden Methoden (Verhalten) und Merkmale (Zustand) eine Einheit.
- In relationalen Datenbanken müssen Objekte auf unterschiedliche Datensätze verteilt werden.
- Objektmerkmale können auch komplex sein. Dies wird im Bibliotheksbereich oft gewünscht (z.B. Verfasserlisten).
- Objekte können auf der Benutzungsoberfläche als Bildschirmobjekte (Fenster, Symbole) dargestellt werden. Die Merkmale der Objekte lassen sich so visualisieren, die Methoden können durch Operationen (Anklicken, Menüauswahl, Ziehen) mit der Maus ausgelöst werden.
- OODBMS lassen sich gut mit objektorientierten Programmiersprachen (z.B. Java, C++) koppeln.6
1.3. Datenbanksysteme in ihrer Anwendung
Vergleich RDBMS versus OODBMS
Unter den Datenbankmanagementsystemen (DBMS) sind Relationale Datenbankmanagementsysteme (RDBMS ) der derzeit meistverbreitete Typ von DBMS, ältere Typen von DBMS sind:
- Hierarchische DBMS
- Netzwerk- DBMS
Neuere Typen:
- Objektorientierte DBMS (derzeit nur für Spezialanwendungen in Gebrauch)
- Objektrelationale DBMS (um objektorientierte Merkmale erweiterte RDBMS, derzeit aktueller Trend)
Für kommerzielle und technische Anwendungen stehen heute ausgereifte relationale Datenbanken mit verschiedenen Anbindungen zu Programmiersprachen, Entwicklungsumgebungen und Graphical User Interfaces7 zur Verfügung. Gerade diese Schnittstellen und das wenig strukturierte Datenmodell sind aber Kritikpunkte an der RDB-Technologie. Objektorientierte Datenbanken bieten nebst Verbesserungen in der Datenmodellierung, der Funktionalität und der Abfragesprache eine engere und nahtlosere Verbindungen zu Programmiersprachen an8.
Wesshalb RDB dennoch quantitativ weiter verbreitet sind als OODB wird in Kapitel 3.1. nochmal behandelt und deutlich gemacht.
2. Inhalt Objektorientierter Datenbanksysteme
2.1. Basisdefinition eines Objektorientierten Datenbanksystems
Ein objektorientiertes Datenbanksystem ist ein System, das
- auf einem objektorientierten Datenbankmodell mit Strukturteil, Operationenteil und höheren Konzepten basiert
- auf der konzeptuellen Ebene durch neue Datentypen und neue Funktionen erweiterbar ist
- weitere Datenbank-Eigenschaften besitzt wie
-Persistenz (Objekte sollen dauerhaft gespeichert werden können),
-Speicherungsstrukturen und Zugriffspfade
-Transaktionen und Currency-Control-Komponenten sowie
-Recovery-Mechanismen
und neben den Operationen des Operationsteils (Anfrage- und Datenmanipulationssprache) auch eine komplette Programmierumgebung beinhaltet9.
Neben dieser von A. Heuer verfaßten Definition kann man ein OODBS bildhafter beschreiben, als einen flexiblen Datenbanktyp, der den Einsatz von abstrakten Datentypen, Objekten sowie Klassen unterstützt und eine Vielzahl unterschiedlicher Datenarten speichern kann, neben Texten und Zahlen auch Klänge, Videos und Grafiken.
Einige objektorientierte Datenbanken erlauben es, Daten auch außerhalb der physikalischen Datenbank (Datei) unterzubringen, was häufig wünschenswert ist, wenn die Dateien sehr groß werden. Dies ist beispielsweise in Verbindung mit Videodateien der Fall10 (z.B. Anwendung im Klinikbereich, siehe Kapitel 3. Fallszenario, Klinikanwendung).
2.2. Anforderungen an Objektorientierte Datenbanken
Ein OODBS sollte zwei Kriterien erfüllen: einerseits sollte es ein objektorientiertes System sein, andererseits aber auch ein Datenmanagementsystem (DBMS) 11
Unter einem objektorientierten Datenbanksystem versteht man ein Softwaresystem, das acht Regeln der Objektorientierung und fünf Grundsätze der Datenhaltung- und Nutzung erfüllt. Die ersten acht Regeln definieren Objekteigenschaften, während die folgenden fünf grundsätzliche Datenbankeigenschaften festlegen.
Unter dem Vorschlag des Manifesto12 wurden 1989 in einem Grundsatzpapier Kriterien für objektorientierte Datenbanksysteme aufgestellt, um dem jungen Markt objektorientierter Datenbanktechnologie Richtlinien zu geben, die im Kapitel 2.3 erläutert werden.
2.3. Konzept und Eigenschaften Objektorientierter Datenbanken
Die zentralen Eigenschaften Objektorientierter Datenbanken lassen sich in objektorientierte Eigenschaften, die Datenmodell- und Spracheigenschaften abdecken, sowie in DatenbankEigenschaften unterteilen:
1. Komplexe Objekte
Ein OODBS unterstützt komplexe Objekte, deren Attribute selbst wieder Objekte sein können.
Attribute können einerseits atomare Elemente einfacher Datentypen wie Integer, String, Character sein - andererseits auch Listen, Mengen oder ganze Objekte.
2. Objektidentität
Jedes Objekt trägt unabhängig von den Werten der Attribute eine eindeutige Identität. Die Identifikation eines Objekts muss systemweit eindeutig und unveränderbar sein.
3. Einkapselung/Datenabstraktion
Datenkapselung verlangt, Implementierungsdetails nach außen zu verbergen. Auf Attributwerte kann nur durch Methoden zugegriffen werden, d.h. ein Objekt besteht aus den Komponenten, die nach außen sichtbar sind-, und seiner internen Repräsentation, womit die Operationenimplementierung sowie verborgene Datenstruktur gemeint ist.
4. Typen und Klassen
Objekte mit gleichem Aufbau und Verhalten werden zu Klassen (Typen) zusammengefaßt.
5. Vererbung
Aus einer bereits bestehenden Klasse (Oberklasse) kann eine spezielle Klasse (Unterklasse) abgeleitet werden, indem die Unterklasse alle Attribute und Operationen der Oberklasse erbt und zusätzlich eigene hinzufügen kann.
6. Polymorphismus (Verschiedengestaltigkeit)
Überladen von Methoden meint die Möglichkeit, eine Operation auf Objekte unterschiedlicher Klassen anzuwenden, und in unterschiedlichen Klassen unterschiedliche Implementierungen zu besitzen.
7. Vollständige Datenbank-Programmiersprache
Ein OODBS sollte neben einer Anfragesprache auch mindestens eine Programmiersprache anbieten, in der Anwendungen vollständig implementiert werden können. Vollständiges OODBS bedeutet, dass deren zugehörige Sprache berechnungsvollständig sein muß. Jede Datenbankoperation kann durch die Sprache ausgedrückt werden.
8. Erweiterbarkeit
Das System kann um neue benutzerdefinierte Typen und Klassen ergänzt werden. Nach außen hin ist keine Unterscheidung zwischen systemeigenen und benutzerdefinierten Klassen ersichtlich. Die Erweiterung kann auf allen Ebenen um Typen, Funktionen und Speicherstrukturen erweitert werden. Dazu ist eine Erweiterungsmöglichkeit auf Zugriffspfad- und Speichersystemebene notwendig.
9. Mehrfach-Vererbung
Eine Subklasse (Unterklasse) in einer Klassenhierarchie kann Eigenschaften (Methoden und Attribute) von übergeordneten Klassen erben. Daneben darf die Unterklasse eigene Eigenschaften hinzufügen.
10. Polymorphismus
Dieselben Methodennamen können auf Objekte unterschiedlicher Klassen vielgestaltig (polymorph) angewendet werden, obwohl die entsprechenden Methoden je nach Klassenzugehörigkeit abweichende Implementierungen aufweisen. Subklassen können hiermit gleichnamige Methoden der Oberklasse überschreiben.
11. Vollständigkeit
Jede Operation in der Datenbank kann durch die Sprache ausgedrückt werden.
12. Persistenz
Ein Datenbankzustand muss über die Laufzeit eines Programmes hinweg erhalten bleiben. Diese Übertragung auf den externen Speicher erfolgt ohne explizite Kommandos.
13. Ad-hoc-Abfragemöglichkeit
Das OODBS beinhaltet eine mächtige Abfragesprache zur Auswertung von Daten.
2.4. Grundprinzipien von objektorientierten Systemen und Datenbanken
2.3.1. Was sind Objekte?
Objekte sind Grundbausteine, aus welchen objektorientierte Anwendungssysteme aufgebaut werden. Jedes Objekt ist eine eigenständige Einheit, die über Daten (Attributwerte des Objektes) und Verhalten (Methoden 13 oder Operationen des Objekts) verfügt. Objekte mit identischer Struktur und gleichem Verhalten werden zu Klassen abstrahiert. Auf die Daten (Attribute) innerhalb eines Objektes kann nur mit Hilfe der definierten Methoden zugegriffen werden. Ein direkter Zugriff auf Daten ist somit von außen nicht möglich. Attribute und Methoden werden auch als Komponente eines Objekttypes bezeichnet.
2.3.2. Prinzip der Kapselung
Die eigentlichen Attributwerte sind dem Anwender unzugänglich, außer er arbeitet mit den vorgeschriebenen Methoden. Die Kapselung verhindert unzulässige Zustandsänderungen von Objekten und führt zu einer wünschenswerten Entkoppelung von Anwendern dieser Klasse und interner Klassendetails.
2.3.3. Vererbungseigenschaft und Subklassen
Ein weiteres Grundprinzip der Objektorientierung bildet die Vererbung bezüglich einer Klassenhierarchie. Sind die Objekte einer Klasse (z.B. Patient X) spezieller als die einer anderen Klasse (z.B. Station), so kann man den Patienten X als Unterklasse von Station definieren. Dies bedeutet, dass die Attributwerte und das Verhalten von Station an Patient X vererbt werden - jeder Patient X besitzt die selben Eigenschaften der Station, jedoch haben Patient X weitere zusätzliche spezifischere Eigenschaften, die nur für sie gelten.
Eine Klasse kann eine beliebige Anzahl an Subklassen (Unterklassen) haben, die wiederum Subklassen aufweisen. Vererbungseigenschaften gelten sowohl für Attribute als auch für Methoden der Klassen einer Klassenhierarchie. Die Vererbungseigenschaft ist eine der wichtigsten Grundprinzipien objektorientierter Entwicklung.
2.3.3.1. Overriding
Methoden können bei der Vererbung durch Methoden der Subklasse überschrieben werden. So kann z.B. die Klasse Patient X eine andere Methode z.B. zur Abrechnung haben, als allgemein die Stationenklasse.
2.3.4. Types und Datentypen
In objektorientierten Datenbanksystemen sind nicht nur Standard-Datentypen für Eigenschaften von Objekten erlaubt, sondern auch die wiederholte Anwendung von Typenkonstruktoren.14
2.3.5. Identität
In relationalen Datenbankmodellen musste die Identität eines Datensatzes durch Schlüssel definiert werden, die geändert werden können. Objektorientierte Datenbanksysteme wahren die Objektidentität. Objekte existieren unabhängig von den Werten ihrer Eigenschaften (Attribute). Während sich die Werte der Eigenschaften ändern können, bleibt die Identität des Objektes unverändert. So sind auch Objekte mit gleichen Eigenschaften möglich. Ein Beispiel hierfür sind Personen mit den selben Vor- und Nachnamen. Im relationalen Modell müssten jetzt noch weitere Attribute als Schlüssel definiert werden - sind diese aber auch bei diesen Datensätzen identisch, so kann das System die Personen nicht mehr unterscheiden.
2.5. Objektorientierte Datenbanksprachen
Datendefinitionssprachen (Data Definition Languages, DDLs) sind Werkzeuge zum Umsetzen eines logischen Entwurfs, also eines Datenschemas in einem bestimmten Datenmodell, in ein konkretes Datenbanksystem15.
Die Objektdefinitionssprache ODL (Objekt Definition Language) bietet Schemadefinitionsmöglichkeiten für objektorientierte Datenbanksysteme nach dem ODMG Standard.16
Für Anfragesprachen an OODBen werden wenigstens die gleichen Eigenschaften erwartet, wie für Datenbanksprachen, die auf anderen Modellen basieren:
- Anwendungsunabhängkeit
- Deskriptivität
- Optimierbarkeit
- Abgeschlossenheit
- Vollständigkeit
- Mächtigkeit
- Effizienz
Bei OODBen kann aufgrund des Datenmodells zwischen mengenorientiertem und navigierendem Zugriff unterschieden werden. Datenbanksprachen müssen Datenbankmanipulation erlauben. Diese Manipulationen kann man unter dem Begriff Update-Operationen zusammenfassen. Dazu gehören:
- Erzeugen neuer Objekte
- Einfügen von Objekten in die Extension ihrer Klasse oder in sonstige Kollektionen
- Änderungen von Attributwerten
- Änderungen von Objektbeziehungen
Nach Datendefinitions- und Anfragesprachen objektorientierter Systeme sollen hier kurz die vier Programmiersprachen erwähnt werden, welche eine weite Verbreitung gefunden haben und die Konzepte der Objektorientierung umsetzen:
- Java
- Smalltalk
- C++
- Object-COBOL 17
2.6. Das Modell der OODB
Objektorientierte Datenbankmodelle erweitern die klassischen Datenbankmodelle:
- um mehr Konzepte zur besseren Darstellung der Struktur von Anwendungsobjekten, sowie
- um mehr Konzepte zur Darstellung objektspezifischer Operationen (Methoden, bei denen neben Strukturbeschreibung der Anwendungsdaten auch noch die Operationen festgelegt werden, mit denen die Anwendungsdaten manipuliert werden dürfen). 18
[...]
[1] Abkürzungsverzeichnis im Anhang S.13
[2] genauere Ausführung in Kapitel 3. “Basisdefinition OODB”
[3] [HEU00] S.129
[4] Abkürzung für »computer-aided design«, »computerunterstützte Konstruktion«
[5] Abkürzung für »computer-aided software engineering« »computergestützte Software-Entwicklung bzw. computergestützte Systementwicklung
[6] URL: http://v.hdm-stuttgart.de/~riekert/lehre/db/tsld120.htm
[7] GUI: Graphische Benutzeroberfläche
[8] URL: http://www.hta-be.bfh.ch/~wwwsws/studium/vorlesungen/oot-oodb.html
[9] [HEU00] S. 132
[10] Datenrückgewinnungsprozeduren und Datenverarbeitungsregeln werden zusammen mit den Daten oder anstelle der Daten gespeichert, diese Technik wird als «Stored Procedures» bezeichnet.
[11] [UNL95] S. 39
[12] [ABD+89]
[13] Methoden werden oft als Routinen bezeichnet
[14] Siehe Kapitel 2.6.1.1. Typenkonstruktoren
[15] [HeS97] S.168
[16] Der ODMG Standard siehe Kapitel 2.8.
[17] Object oriented data base
[18] [HEU00] S. 128
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.