Objektorientierte und objektrelationale Datenbanken Ein Kompass für die Praxis von Andreas Meier, Thomas Wüst 3., überarb. u. aktualis. Aufl. Objektorientierte und objektrelationale Datenbanken – Meier / Wüst schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung: Zeichen- und Zahlendarstellungen dpunkt.verlag 2003 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 89864 191 3 Inhaltsverzeichnis: Objektorientierte und objektrelationale Datenbanken – Meier / Wüst 1 1 Der Weg zur Objektorientierung bei Datenbanksystemen Im einführenden Abschnitt 1.1 erläutern wir die unterschiedlichen Benutzergruppen von Datenbanksystemen und gehen kurz auf die Grobarchitektur solcher Systeme ein. Danach geben wir in Abschnitt 1.2 einen informellen Überblick über wesentliche Konzepte der Objektorientierung wie Objekt, Vererbung und Klassenhierarchie. Daran anschließend können wir in Abschnitt 1.3 objektorientierte und objektrelationale Datenbanksysteme definieren, indem wir mit den Regeln des Datenbank-Manifestes deren Eigenschaften beschreiben. In Abschnitt 1.4 diskutieren wir Chancen und Risiken beim Einsatz objektorientierter und objektrelationaler Datenbanksysteme in der Praxis. 1.1 Zum Einsatz von Datenbanksystemen Beim Aufbau und beim Betrieb von Informationssystemen bedient man sich sinnvollerweise so genannter Datenbanksysteme zum Verarbeiten und Verwalten von Datenbeständen. Ein Datenbanksystem (engl. database system) besteht aus zwei wesentlichen Komponenten: Die Datenbank dient zur Aufbewahrung sowohl der Benutzer- wie der Beschreibungsdaten (oft Metadaten genannt), und das Verwaltungssystem verfügt darüber hinaus über eine Sprache zur Definition, Manipulation und Auswertung der Daten. In Abbildung 1–1 ist ein Datenbanksystem mit unterschiedlichen Benutzergruppen schematisch dargestellt. Gelegentliche Benutzer verwenden eine einfache Sprache, mit der sich ohne große Informatikkenntnisse Ad-hoc-Abfragen formulieren und Auswertungen aufbereiten lassen. Sachbearbeiter aus unterschiedlichen Fachabteilungen oder aus dem Verkauf bedienen sich vordefinierter Abfragen oder spezifischer Anwendungsfunktionen, die ihnen die gewünschten Informationen und Zusammenhänge ohne großen Zeitverzug liefern. Die Anwendungsprogrammierer benutzen sowohl die Abfragesprache wie die Die zwei Komponenten eines Datenbanksystems Datenbankbenutzer, -programmierer und -administratoren 2 1 Der Weg zur Objektorientierung bei Datenbanksystemen Abb. 1–1 Sachbearbeiter Grobarchitektur eines Datenbanksystems mit Benutzergruppen Programmierer gelegentlicher Benutzer Administrator Abfrage Abfrageprogramm Anwendungsprogramm Abfragesprache Datenmanipulationssprache Datenbankschema Datendefinitionssprache Schemaverwaltung Anfragebearbeitung Verwaltungssystem mit Mehrbenutzersynchronisation Benutzerdaten Beschreibungsdaten Das Schema einer Datenbank Gewährleistung des Mehrbenutzerbetriebs umfassendere Datenmanipulationssprache, um maßgeschneiderte Anwendungen herstellen zu können. Die Datenbankadministratoren teilen dem Datenbanksystem Schemaänderungen mit Hilfe einer Datendefinitionssprache mit. Dazu müssen die gewünschten Gegebenheiten aus der realen Welt analysiert und in einem Datenbankentwurfsverfahren strukturiert beschrieben werden. Blickt man ins Innere eines Datenbanksystems (vgl. Abbildung 1–1), so erkennt man unterschiedliche Systemkomponenten. Die Schnittstelle zu den Benutzergruppen bilden die Datendefinitionssprache, die Abfragesprache und die Datenmanipulationssprache. Das eigentliche Schema der Datenbank, d.h. die Beschreibung der Daten und der gewünschten Beziehungen, wird ebenfalls in der Datenbank abgelegt. So definiert man mit Hilfe der Datendefinitionssprache pro Anwendungsbereich ein Datenbankschema. Um die Benutzerdaten in der Datenbank ablegen und verändern zu können, verwendet man die Datenmanipulationssprache. Da mehrere Benutzer oft gleichzeitig ein und dieselbe Datenbank bearbeiten, muss ein Datenbanksystem den Mehrbenutzerbetrieb jederzeit garantieren. Die Kontrolle über die unterschiedlichen Wechselwirkungen der einzelnen Benutzeraktionen wird also vom System wahrgenommen. Gelegentliche Benutzer wie auch Fachspezialisten sind darauf angewiesen, Auswertungen und Abfragen an die Datenbasis jederzeit 1.2 Was sind Objekte? vornehmen zu können. Das Datenbanksystem verfügt deshalb neben der Abfragesprache über eine Komponente, die Abfragen in Datenbankaufrufe übersetzt und die notwendigen Optimierungen vornimmt. Datenbanksysteme unterscheiden sich in der Art und Weise, wie die Daten der realen Welt in der Datenbasis durch ein Datenmodell abgebildet werden und wie mächtig die entsprechende Datenbanksprache ist. So gibt es hierarchische oder netzwerkartige Datenbanksysteme, die in der Datenbank Hierarchien oder Netzwerke von Datensätzen zulassen und in der zugehörigen Sprache Such-, Navigations- und Veränderungsoperationen auf der entsprechenden Datenbasis unterstützen. Relationale Datenbanksysteme wiederum kennen zur Verwaltung der Daten ausschließlich Tabellen (Menge homogener Datensätze), und die relationale Datenbanksprache vermag Tabellenteile zu definieren, zu verändern oder auszuwerten (vgl. die Sprache Structured Query Language oder abgekürzt SQL). SQL:2003, der aktuelle Standard (siehe auch Kapitel 3.4.3), berücksichtigt einige Elemente der Objektorientierung. Somit konnten Hersteller relationaler Datenbanksoftware ihre Produkte zu objektrelationalen Datenbanksystemen (ORDBS) erweitern. Diese Systeme bieten objektorientierte Schnittstellen an, obwohl sie ihre Daten nach wie vor in Tabellen ablegen. Schließlich verwalten objektorientierte Datenbanksysteme (OODBS) ihre Daten in Objektform, und die zugehörige Sprache ist objektorientiert. 1.2 3 Die Mächtigkeit eines Datenbanksystems Was sind Objekte? Objekte sind Grundbausteine, aus welchen objektorientierte Anwendungssysteme aufgebaut werden. Jedes Objekt ist eine eigenständige Einheit, die über Daten (Attributwerte des Objekts) und Verhalten (Methoden oder Operationen des Objekts) verfügt. Objekte mit identischer Struktur und gleichem Verhalten werden zu Klassen abstrahiert. In Abbildung 1–2 ist eine einfache Klasse Instrument zusammen mit zwei konkreten Objekten oder Instanzen schematisch dargestellt. Alle Objekte einer bestimmten Klasse haben dieselben Attribute und verhalten sich gleich: Zum Beispiel besitzt jedes Objekt der Klasse Instrument die Attribute artikelNummer, bezeichnung und preis. Zudem sind die Objekte durch die Zugriffsmethoden lesenPreis und ändernPreis abgeschirmt. Die eigentlichen Attributwerte sind dem Anwender unzugänglich, außer er arbeitet mit den vorgeschriebenen Methoden. Daher werden die Objekte oft kreisförmig dargestellt: Im Innern sind die zu schützenden Attributwerte aufgelistet, umgeben von einem Mantel von Metho- Zur Klassenbildung Das Prinzip der Kapselung 4 1 Der Weg zur Objektorientierung bei Datenbanksystemen Abb. 1–2 Klasse als Abstraktion von Objekten Klasse Instrument artikelNummer bezeichnung preis Attribute Menge von Objekten (Instanzen) lesenPreis ändernPreis Methoden lesen Preis lesen Preis 711-214 änFagott dern 14.980 Preis 259-693 Tenorsax ändern 5.035 Preis Die Vererbungseigenschaft den, die die sichtbare Schnittstelle bilden. Diese Kapselung verhindert unzulässige Zustandsänderungen von Objekten und führt zu einer wünschenswerten Entkoppelung von Anwendern dieser Klasse und internen Klassendetails. Ein weiteres Grundprinzip der Objektorientierung bildet die Vererbung bezüglich einer Klassenhierarchie. Sind die Objekte einer Klasse BlasInstrument spezieller als die einer Klasse Instrument, so kann man die Blasinstrumente als Unterklasse von Instrumenten definieren (vgl. Abbildung 1–3). Dies bedeutet, dass die Attributwerte und das Verhalten von Instrument an BlasInstrument vererbt werden; jedes Blasinstrumentenobjekt besitzt damit alle Eigenschaften, die für die Instrumente gelten. Möglicherweise verfügt die Unterklasse BlasInstrument zusätzlich noch über spezifischere Eigenschaften als die zugehörige Oberklasse Instrument. Abb. 1–3 Instrument Klassenhierarchie Vererbungseigenschaften bei Klassenhierarchien SaitenInstrument BlasInstrument HolzBlasInstrument SchlagInstrument BlechBlasInstrument 1.3 Eigenschaften objektorientierter und objektrelationaler Datenbanksysteme Auf unser Beispiel der Klasse Instrument bezogen, lässt sich eine Klassenhierarchie analog zu Abbildung 1–3 bilden: Die Klasse Instrument ist durch die Unterklassen SaitenInstrument, BlasInstrument und SchlagInstrument spezialisiert. Diese Klassen wiederum können weitere Subklassen aufweisen; so gliedert sich die Klasse BlasInstrument in die Unterklassen HolzBlasInstrument und BlechBlasInstrument. Die Klasse der Holzbläser verfügt über alle spezifischen Eigenschaften, die den Holzblasinstrumenten eigen sind, wie beispielsweise tonUmfang, bohrung oder klappen. Objekte dieser Klasse erben Eigenschaften sowohl von der Klasse BlasInstrument wie auch von der Klasse Instrument. Vererbungseigenschaften gelten sowohl für Attribute wie auch für Methoden der Klassen einer Klassenhierarchie. Möchte man beispielsweise den Preis eines Blechblasinstruments verändern, so wird der an die Klasse BlechBlasInstrument gerichtete Auftrag durch die Methode ändernPreis aus der übergeordneten Klasse Instrument erfüllt. Die Vererbungseigenschaft ist eine der wichtigsten Grundprinzipien objektorientierter Softwareentwicklung. Dank dieser Eigenschaft können Attribute und Methoden in Klassenhierarchien wiederverwendet werden. 1.3 Ober- und Unterklassen Wiederverwendung von Attributen und Methoden Eigenschaften objektorientierter und objektrelationaler Datenbanksysteme Objektorientierte Datenbanksysteme sind im Laufe der achtziger Jahre in Forschungslabors entwickelt worden und seit einigen Jahren kommerziell verfügbar. Die Hersteller relationaler Datenbanksysteme konnten sich dieser Entwicklung nicht verschließen und haben ihre Softwareprodukte zu objektrelationalen Datenbanksystemen erweitert. Ein Diskussionspunkt betrifft die exakte Definition objektorientierter und objektrelationaler Datenbanksysteme und die Frage, welche Eigenschaften zwingend von der Datenbanksoftware unterstützt werden müssen. Um diese Streitfrage zu versachlichen, soll im Folgenden das Datenbank-Manifesto1 erläutert werden. Dieses Grundsatzpapier fordert die Erfüllung von acht Regeln der Objektorientierung und von fünf Regeln allgemeiner Datenbankprinzipien. Aus didaktischen Gründen soll mit den fünf Datenbankgrundsätzen (Regel D1 bis D5) gestartet werden, ergänzt durch weitere fünf Regeln zum Relationenmodell (Regel R1 bis R5), bevor die acht Regeln des Objektmodells 1. 5 Atkinson M. et al. (1989): The Object-Oriented Database System Manifesto. Proc. 1st International Conference on Deductive and Object-Oriented Databases, Kyoto 1989, pp. 40-57. Zur Definition von relationalen, objektrelationalen und objektorientierten Datenbanksystemen 6 1 Der Weg zur Objektorientierung bei Datenbanksystemen (Regel O1 bis O8) illustriert werden. Dies erlaubt im Anschluss, sowohl objektorientierte wie objektrelationale Datenbanksysteme zu definieren. Abb. 1–4 Die fünf Datenbankgrundsätze Datenbankgrundsätze D1 Dauerhaftigkeit D2 Große Datenbestände D3 Mehrbenutzerbetrieb D4 Wiederherstellbarkeit D5 Ad-hoc-Abfragemöglichkeiten Jedes Datenbanksystem, ob hierarchisch, netzwerkartig, relational oder objektorientiert, muss Datenbankgrundsätzen genügen. In Abbildung 1–4 sind die wichtigsten fünf zusammengefasst: Regel D1: Dauerhaftigkeit Regel D2: Große Datenbestände Regel D3: Mehrbenutzerbetrieb Regel D4: Wiederherstellbarkeit ■ Unter Dauerhaftigkeit oder Persistenz ist das Bestehenbleiben eines Datenbankzustands über längere Zeitabstände (Tage, Monate, Jahre etc.) zu verstehen. Ein Datenbankzustand muss so lange gewährleistet sein, bis Datenwerte durch die Anwender bewusst verändert werden. Im Gegensatz zu den Programmiersprachen müssen die Datenstrukturen über die Laufzeit eines Programms hinweg erhalten bleiben, indem sie auf Sekundärspeicher abgelegt werden. ■ Die Bearbeitung großer Datenbestände verlangt vom Datenbanksystem, dass spezifische Verwaltungskomponenten für Sekundärspeicher bereitgestellt werden, wie Bufferpools, Indexmechanismen und Datencluster. Dazu müssen geeignete Bufferorganisationen aufgebaut, Ein- und Auslagerungsstrategien für Bufferpools entwickelt sowie Speicher- und Zugriffspfadalgorithmen implementiert werden. ■ Datenbanken werden typischerweise von mehreren Anwendern gleichzeitig bearbeitet. Ein Datenbanksystem muss deshalb den reibungslosen Betrieb konkurrierender Prozesse garantieren. Ein leistungsfähiges Transaktionskonzept ist notwendig, das konsistente Datenbankzustände wiederum in solche überführt. Das bedeutet, dass Anwendertransaktionen entweder vollständig oder gar nicht auf der Datenbank ausgeführt werden, undefinierte Zwischenzustände sind nicht erlaubt. ■ Treten Fehler während des Datenbankbetriebs auf, so muss das Datenbanksystem Wiederanlaufverfahren (recovery) zur Restaurierung von Datenbankzuständen anbieten. Im Fehlerfall müssen unvollständig ausgeführte Transaktionen zuerst zurückgesetzt (rollback) und dann nochmals gestartet (restart) werden. 1.3 Eigenschaften objektorientierter und objektrelationaler Datenbanksysteme ■ Ein Datenbanksystem muss deklarative Sprachkonstrukte zur Verfügung stellen, um die Datenbanken ad hoc oder eingebettet in Programmiersprachen auswerten zu können. Solche Abfragesprachen zeichnen sich durch ihre Mächtigkeit aus, indem sie sämtliche Auswertungseigenschaften des darunter liegenden Datenmodells unterstützen. 7 Regel D5: Ad-hoc-Abfragemöglichkeiten Die Datenbankregeln D1 bis D5 stellen Anforderungen an Datenbanksysteme, die vom eigentlichen Datenmodell unabhängig sind. Zusätzlich zu diesen Regeln müssen weitere definiert werden. In Abbildung 1–5 sind die entsprechenden Regeln des Relationenmodells und diejenigen des Objektmodells aufgeführt. Relationenmodell Objektmodell R1 Tabellen O1 Komplexe Objekte R2 Primärschlüssel O2 Objektidentität R3 Mengenorientierte Operatoren O3 Datenkapselung R4 Relationenorientierte Operatoren O4 Typen und Klassen R5 Viewkonzept O5 Vererbung O6 Polymorphismus O7 Vollständigkeit O8 Erweiterbarkeit Abb. 1–5 Die Regeln des Relationenmodells und des Objektmodells Das Relationenmodell wurde anfangs der siebziger Jahre durch die Arbeiten von Ted Codd formuliert, bevor eigentliche relationale Datenbanksysteme entwickelt wurden. Ein relationales Datenbanksystem (engl. relational database system), abgekürzt RDBS, erfüllt demnach die fünf Regeln D1 bis D5 der Datenbankgrundsätze und die fünf Regeln des Relationenmodells R1 bis R5. Das Relationenmodell fordert gemäß Abbildung 1–5 die folgenden Regeln: Zur Definition eines ■ Daten und Datenbeziehungen werden tabellarisch dargestellt, indem in den Spalten die Merkmale (Attribute) aufgeführt werden. Die Anzahl der Merkmale und die Anzahl der Merkmalsausprägungen (Datensätze resp. Tupel) sind beliebig. (Die Ordnung der Spalten innerhalb der Tabelle und die Ordnung der Tupel innerhalb der Tabelle sind bedeutungslos.) ■ Einzelne Merkmale oder minimale Merkmalskombinationen identifizieren die Tupel innerhalb der Tabelle eindeutig; sie sind Schlüsselkandidaten. Ein Schlüsselkandidat, d.h. eine minimale und eindeutige Merkmalskombination, muss als Primärschlüssel ausgezeichnet werden. Regel R1: relationalen Datenbanksystems Tabellen Regel R2: Primärschlüssel 8 1 Der Weg zur Objektorientierung bei Datenbanksystemen Regel R3: Mengenorientierte Operatoren Regel R4: Relationenorientierte Operatoren Regel R5: Viewkonzept ■ Tabellen können als Mengen von Tupeln durch die Mengenoperatoren Vereinigung, Durchschnitt, Differenz und kartesisches Produkt zu neuen Tabellen kombiniert werden. Für die Vereinigung, den Durchschnitt und die Differenz müssen die Tabellen vereinigungsverträglich sein, d.h. die Anzahl der Merkmale dieser Tabellen ist identisch, und die korrespondierenden Merkmale verweisen auf ein und dieselben Wertebereiche. ■ Einzelne Tabellen lassen sich auch durch die Filteroperatoren Selektion oder Projektion verändern; bei der Selektion werden Tupel mit bestimmten Eigenschaften evaluiert, der Projektionsoperator reduziert die Tabelle auf einzelne Merkmale. Darüber hinaus gibt es weitere relationenorientierte Operatoren wie Verbund (engl. join) und Division, die aus je zwei Tabellen eine neue Tabelle kombinieren. ■ Das Viewkonzept verlangt, dass über einzelne Tabellen beliebige Sichten (engl. views) gelegt werden können. Sichten sind nichtmaterialisierte (Teil-)Tabellen, die eigene Tabellennamen tragen und für Auswertungszwecke verwendet werden können. Nach der Klärung der Eigenschaften des Relationenmodells können nun die Regeln der Objektorientierung angefügt werden: Regel O1: Komplexe Objekte Regel O2: Objektidentität Regel O3: Datenkapselung Regel O4: Typen und Klassen ■ Die Formulierung von komplexen Objekten, deren Attribute wiederum Objekte sein können, wird unterstützt. Die Attribute des Objekts können einfache Datentypen wie Integer, Character oder Boolean sein oder sich aus beliebigen Datentypen wie Set, List, Audio oder Video zusammensetzen. ■ Jedes Objekt trägt unabhängig von den Werten seiner Attribute eine eindeutige Identität. Die Identifikation eines Objekts muss systemweit (oder mindestens datenbankweit) eindeutig und unveränderbar sein. Insbesondere muss sie unabhängig vom Ort der Speicherung bleiben. ■ Datenkapselung verlangt, nach außen Implementierungsdetails zu verbergen. Zudem sind die Attributwerte jedes Objekts durch einen Schutzmantel von Methoden abgeschirmt. Nur durch sie können Datenwerte verändert oder gelöscht werden. ■ Das Datenbanksystem muss Typen und Klassen2 zulassen. Unter Typen sind klassische Datentypen aus Programmiersprachen zu verstehen, die zur Übersetzungszeit einer Typenprüfung unterwor- 2. Im Manifesto werden Typen und Klassen synonym verwendet. Wir setzen hier Typen zur Strukturbeschreibung und Klassen zur Definition von Struktur und Verhalten einer Menge von Objekten ein. 1.3 Eigenschaften objektorientierter und objektrelationaler Datenbanksysteme 9 fen sind. Objekte mit äquivalenter Struktur und gleichem Verhalten werden zu Klassen zusammengefasst. Klassen werden benutzt, um Instanzen zur Laufzeit generieren zu können. Die Menge der vorhandenen Instanzen kann gemäß Regel O4 variieren, im Gegensatz zu einem Wertebereich eines Typs während der Programmlaufzeit. So sind in Abbildung 1–3 zwar alle Objekte Instrumente, doch können die einzelnen Objekte je nach Klassenzugehörigkeit noch weitere Attribute und Methoden aufweisen. ■ Vererbung von Struktur und Verhalten muss durch das Datenbanksystem ermöglicht werden. Eine Subklasse (Unterklasse) in einer Klassenhierarchie kann Eigenschaften (Attribute und Methoden) von übergeordneten Klassen (Oberklassen) erben. Daneben darf die Unterklasse eigene Eigenschaften, seien dies Attribute oder Methoden, hinzufügen. ■ Dieselben Methodennamen können auf Objekte unterschiedlicher Klassen vielgestaltig (polymorph) angewendet werden, obwohl die entsprechenden Methoden je nach Klassenzugehörigkeit abweichende Implementierungen aufweisen. Ist zur Übersetzungszeit die notwendige Implementierung festgelegt, so kann statisch gebunden werden; andernfalls muss zur Laufzeit der auszuführende Code bestimmt werden, was als spätes Binden bezeichnet wird. Regel O5: Vererbung Regel O6: Polymorphismus Dank Regel O6 können Methoden mit ein und demselben Namen in abgeleiteten Subklassen überschrieben werden. Die Methode ändernPreis der Klasse Instrument aus Abbildung 1–3 kann sowohl von der Klasse HolzBlasInstrument als auch von BlechBlasInstrument überschrieben werden, wenn unterschiedliche Preisgestaltungen zur Anwendung gelangen sollen. Dieses Prinzip des Polymorphismus ergänzt deshalb die Vererbungseigenschaften. ■ Vollständigkeit verlangt, dass die zum Datenbanksystem gehörende Datenbanksprache berechnungsvollständig sein muss. Mit anderen Worten kann jede Operation, im Speziellen jede Datenbankoperation, durch die Datenbanksprache selbst ausgedrückt werden. ■ Die Forderung der Erweiterbarkeit bezieht sich auf die Unterstützung neuer, benutzerdefinierter Typen und Klassen. Nach außen hin soll kein Unterschied zwischen benutzerdefinierten und systemdefinierten Klassen mehr bestehen. Mit den Regeln der Datenbankgrundsätze, des Relationenmodells und des Objektmodells lassen sich nun die Definitionen für objektorientierte und objektrelationale Datenbanksysteme herleiten. Regel O7: Vollständigkeit Regel O8: Erweiterbarkeit 10 1 Der Weg zur Objektorientierung bei Datenbanksystemen Zur Definition eines OODBS Zur Definition eines ORDBS Gemäß dem Datenbank-Manifesto versteht man unter einem objektorientierten Datenbanksystem (engl. object-oriented database system), abgekürzt OODBS, ein Softwaresystem, das die fünf Grundsätze (Regel D1 bis D5) der Datenhaltung und -nutzung sowie die acht Regeln der Objektorientierung (Regel O1 bis O8) erfüllt. Ein objektrelationales Datenbanksystem (engl. object-relational database system), abgekürzt ORDBS, ist ein relationales Datenbanksystem, das die Regeln O1 bis O8 der Objektorientierung zusätzlich unterstützt. Die Objekte werden bei einem ORDBS nach wie vor in Tabellen abgelegt, d.h., die Speicherungskomponente bleibt relational. Allerdings müssen für die Verwaltung komplexer Datenstrukturen resp. für Multimedia-Anwendungen erweiterte Datentypen und Speicherungskonzepte zur Verfügung stehen, wie z.B. Binary Large Objects (BLOBs), siehe auch Abschnitt 4.6.3. 1.4 Nutzungspotenziale für die Praxis Weshalb ist es sinnvoll, objektorientierte oder objektrelationale Datenbanksysteme in der Praxis einzusetzen? Könnte man nicht abwarten und vorläufig »nur« objektorientiert programmieren und die Datenhaltung nach wie vor einem herkömmlichen Datenbanksystem überlassen? Diese beiden Fragen sollen im Folgenden anhand Abbildung 1–6 näher diskutiert werden. Abb. 1–6 Komponenten einer objektorientierten Datenbankanwendung grafische Benutzerschnittstelle Mensch-Maschine-Schnittstelle objektorientierte Programmiersprache Entwicklungsumgebung objektorientiertes oder objektrelationales Datenbanksystem Datenhaltung 1.4 Nutzungspotenziale für die Praxis 11 Bei der Entwicklung eines objektorientierten Anwendungssystems können drei wichtige Ebenen unterschieden werden: ■ die Präsentation von Objekten an der Schnittstelle zum Benutzer, ■ die Bearbeitung von Objekten mit Hilfe einer Programmiersprache und ■ die Datenhaltungsebene zur längerfristigen Aufbewahrung der Objekte. Für jede dieser drei Ebenen kann nun die Frage nach der Objektorientierung gesondert diskutiert werden. In einem ersten Fall wird konventionell programmiert, die Daten werden in herkömmlichen Datenhaltungssystemen verwaltet, und lediglich an der Benutzerschnittstelle werden objektorientierte Konzepte verwendet. Dieses Face-Lifting bestehender Anwendungen kann vorübergehend die Benutzer von Informationssystemen zufrieden stellen, bei Änderungswünschen und beim Bedarf nach zusätzlicher Funktionalität treten die darunter liegenden Systemmängel durch längere Entwicklungszeiten und mögliche Leistungseinbußen zu Tage. Eine zweite Option besteht darin, zusätzlich objektorientiert zu programmieren, die Datenhaltung aber nach wie vor mit herkömmlichen Technologien zu bewerkstelligen. Dieses Vorgehen lässt eine Kluft zwischen Programmiersprache und Datenbank bestehen (engl. impedance mismatch), weil die transienten (temporären) Objekte während der Laufzeit von Programmen in dauerhafte Objekte für die Datenhaltung konvertiert werden müssen und umgekehrt. Abgesehen von Laufzeit-Schwierigkeiten verlangt dieses Vorgehen bei der Analyse und beim Entwurf einiges Kopfzerbrechen, müssen doch komplexe Objekte in konsistenter Art auf flache Datenstrukturen abgebildet werden. Schließlich verfolgt eine dritte Option die Objektorientierung am konsequentesten, sowohl beim Gestalten der Benutzerschnittstelle als auch bei der Anwendungsentwicklung und der Datenhaltung. Die Vorteile liegen auf der Hand, der objektorientierte Ansatz kann von der Analyse über den Entwurf und den Bau eines Prototypen zur Verifikation der Anwenderwünsche bis hin zur eigentlichen Entwicklung und Nutzung ausgereifter Informationssysteme durchgehend angewandt werden. Jeder dieser Schritte erfolgt einheitlich nach dem objektorientierten Paradigma. Der konsequent verfolgte Weg der vollen Integration von objektorientierter Benutzerschnittstelle, Entwicklungsumgebung und Datenhaltung bringt in der Praxis zahlreiche Vorteile: Objektorientierte Benutzerschnittstelle Objektorientierte Programmierung Objektorientierte Programmierung und Datenhaltung 12 1 Der Weg zur Objektorientierung bei Datenbanksystemen Durchgängigkeit des objektorientierten Ansatzes Wiederverwendung von Daten und Verhalten Unterstützung komplex strukturierter Datenbestände Keine Kluft zwischen Programmiersprache und Datenbank ■ Sowohl bei der Analyse als auch beim Entwurf und bei der Implementierung wird einheitlich nach dem objektorientierten Paradigma vorgegangen. Es gibt im Normalfall keine Bruchstellen, wenn die darunter liegenden Werkzeuge die Grundeigenschaften der Objektorientierung erfüllen. ■ Während herkömmliche Datenbanksysteme die Wiederverwendbarkeit der Daten gewähren, eröffnen die OODBS und teilweise ORDBS eine neue Dimension, da sie die Wiederverwendbarkeit von Struktur und Verhalten zulassen. Dadurch können Geschäftsprozesse und bereichsübergreifende Anwendungssysteme dank mächtiger Vererbungseigenschaften effizient weiterentwickelt werden. ■ Herkömmliche Datenbanksysteme verlangen formatierte und strukturierte Dateninhalte; Text, Bildmaterial, Grafiken, Ton und Video können nur mühsam, wenn überhaupt, verwaltet werden. Im Gegensatz dazu ermöglichen OODBS und ORDBS die Verwaltung und Verarbeitung sowohl formatierter wie unformatierter Daten. Damit können komplex strukturierte Datenbestände besser bewirtschaftet werden. ■ Die unterschiedlichen Benutzergruppen eines Datenbanksystems verwenden ein und dieselbe Sprache für transiente wie persistente Objekte. Dadurch müssen keine unterschiedlichen Sprachumgebungen gepflegt, geschult und unterstützt werden. Der gelegentliche Benutzer, der Anwendungsprogrammierer und der Datenbankadministrator können die Abfragesprache OQL (Object Query Language) oder objektorientierte Erweiterungen von SQL einsetzen. Auch wenn der Reifegrad objektorientierter und objektrelationaler Datenbanksysteme noch gesteigert werden kann – bei den objektorientierten vor allem im Hinblick auf systemtechnische Aspekte, bei den objektrelationalen bezüglich der Eigenschaften der Objektorientierung – so ist dieser Datenbanktechnologie ein Entwicklungspotenzial in der Praxis sicher (vgl. hierzu auch Kapitel 5 und 6). 1.5 Bibliographische Angaben Es gibt eine große Anzahl von Standardwerken auf dem Gebiet der Datenbanken. Einige davon behandeln neben relationalen Konzepten auch objektorientierte und objektrelationale, inklusive der entsprechenden Datenbanksysteme. Date (2001) und Silberschatz et al. (1997) sind in den USA und im englischen Sprachraum sehr bekannt. Das gut lesbare und anschauli- 1.5 Bibliographische Angaben che Buch von den Schotten Connolly und Begg (1999) wird von Praktikern gerne als Nachschlagewerk benutzt. Als deutsche Lehrbücher im Datenbankbereich sind Heuer und Saake (2000), Kemper und Eickler (2001) sowie Vossen (2000) zu erwähnen. Das Werk von Meier (2003) behandelt Modellierung und Nutzung relationaler Datenbanken und ist ein Leitfaden für die Praxis. Speziell mit objektorientierter Datenbanktechnologie befassen sich die Werke von Bertino und Martino (1993), Hohenstein et al. (1996), Heuer (2002), Hughes (1991), Geppert (2002), Lausen und Vossen (1996) sowie Stonebraker (1998). 13