Objektorientierte Datenbank
- 1. Objektorientierte Datenbank Begriffsbedeutung
- 2. Funktionsweise
- 3. Funktionen eines Objektdatenbankmanagementsystems
- 4. Beispiel
- 5. Vorteile
- 6. Nachteile
- 7. Meistverbreitete objektorientierte Programmiersprachen
- 8. Wann ist eine objektorientierte Datenbank sinnvoll?
- 9. Objektorientierte Datenbank von TenMedia erstellen lassen
Objektorientierte Datenbank Begriffsbedeutung
Bei einer objektorientierten Datenbank handelt es sich um eine Art der Datenbank, in der Daten im Sinne der Objektorientierung als Objekte verwaltet werden. Unter der Objektorientierung wird die Sichtweise verstanden, dass komplexe Systeme durch ein Zusammenspiel von miteinander kooperierenden Objekten beschrieben werden können. Bei einem Objekt handelt es sich hierbei um einen bestimmten Datensatz. Diese gebündelte Kombination aus Daten, also das Objekt, wird durch Attribute (Eigenschaften) und Methoden (Funktionen) beschrieben. Attribute beschreiben das statische Wesen und Methoden das dynamische Verhalten des Objekts. Die Attribute beschreiben also, welche Eigenschaften von dem Objekt angenommen werden können. So kann dem Attribut „Geschwindigkeit“ des Objekts „Auto“ z.B. der Wert „120 km/h“ zugewiesen werden. Die Methoden beschreiben das Verhalten von Objekten. So kann dem Objekt „Auto“ die Methode „bremsen“ zugewiesen werden. Anstatt also alle Daten über verschiedene Tabellen zu verteilen, sind durch diese Definition des Objekts alle Informationen in Bezug auf den hinter dem Objekt stehenden Datensatz zusammengefasst und direkt verfügbar.
Funktionsweise
Die Funktionsweise des Objektdatenbankmanagementsystem gestaltet sich folgendermaßen:
- Ein Datensatz wird mit den passenden Attributen und Methoden in einem Objekt zusammengefasst.
- Diese Objekte werden wiederum in abstrakten Klassen zusammengefasst. Somit wird eine Klasse aus verschiedenen Einheiten an Objekten gebildet. Die Klassen werden wiederum innerhalb eines Konstrukts untereinander geordnet, wodurch eine Hierarchie an verschiedenen Klassen und Unterklassen entsteht. Unterklassen übernehmen hierbei die Eigenschaften von übergeordneten Klassen und ergänzen diese Eigenschaften durch zusätzliche Eigenschaften. Zudem werden die Objekte miteinander verbunden, wodurch eine Vernetzung entsteht. Hierdurch lassen sich einfache Objekte in komplexen Objekten bündeln.
- Jeder Objekteinheit wird eine einmalige Identifikation vergeben, wodurch Objekte nach der Speicherung ohne großen Aufwand aufgerufen werden können.
Funktionen eines Objektdatenbankmanagementsystems
Bei einem Datenbankmanagementsystem (DBMS) handelt es sich im Allgemeinen um eine Systemsoftware, welche für die Erstellung und Verwaltung von Datenbanken zuständig ist. Bei der Objektorientierten Datenbank kommt ein Objektdatenbankmanagementsystem (ODBMS) zur Anwendung. Die Objektdatenbank (object database) und das Objektdatenbankmanagementsystem bilden zusammen das Objektdatenbanksystem. Das Objektdatenbankmanagementsystem hat die folgenden Funktionen auszuüben:
- Klassische Funktionen eines Datenbankmanagementsystems (DBMS)
- Speicherung und Verwaltung komplexer Objekte: Der hinter einem Objekt stehende Datensatz (also auch die Attribute und Methoden) müssen von dem ODBMS gespeichert und verwaltet werden.
- Definition der Objektidentität: Das ODBMS weist jedem Objekt eine unverwechselbare Identität zu.
- Kapselung der Objekte: Als Kapselung beschreibt man den kontrollierten und abgegrenzten Zugriff auf die Attribute und Methoden eines Objekts innerhalb einer Klasse.
- Zuordnung der Objekte in Objektklassen
- Zuordnung der Objektklassen in Klassenhierarchien
- Ermöglichen einer dynamischen Bindung: Innerhalb einer Klassenhierarchie ist es, wie bereits beschrieben, so, dass Oberklassen ihre Eigenschaften an ihre Unterklassen vererben. Sucht man nun nach Informationen innerhalb der Klasse kann es dazu kommen, dass dieselbe Information in sowohl einer Oberklasse als auch einer Unterklasse enthalten ist. Bei der dynamischen Bindung kann in einem solchen Fall sowohl die Ober- als auch die Unterklasse ausgewählt werden. Falls das ODBMS immer die Oberklasse auswählen würde, würde man von einer statischen Bindung sprechen. Die dynamische Bindung ist für die objektorientierte Datenbank von großer Bedeutung.
- Betreiben einer Turing-vollständigen Manipulationssprache (DML): Der Begriff „Manipulationssprache“ beschreibt die Datenbanksprache, welche verwendet wird, um Daten zu lesen, zu schreiben, zu löschen und zu ändern. Diese Datenbanksprache muss turingmächtig sein. Die Datenbanksprache ist dann turingmächtig, wenn sie in der Lage ist, alle Funktionen zu berechnen, welche eine universelle Turingmaschine berechnen kann. Hierbei wird die Annahme getätigt, dass die Datenbanksprache auf unbegrenzten Speicherplatz zugreifen kann. Bei einer Turingmaschine handelt es sich um ein Rechnermodell der theoretischen Informatik und somit um ein mathematisches und abstraktes Objekt. Falls die Datenbanksprache in der Lage ist, die Funktionen der Turingmaschine zu emulieren, entspricht sie den mit Typ-0-Grammatiken definierbaren Sprachen. Typ-0-Grammatiken sind Teil einer Hierarchie an Sprachen. Je weiter unten sich eine Sprache in dieser Hierarchie befindet, desto erzeugungsmächtiger ist die jeweilige Sprache. Typ-0-Grammatiken bzw. Turing-vollständige Manipulationssprachen, also auch objektorientierte Programmiersprachen, werden in ihrer Schaffungskraft in keiner Weise von Produktionsregeln eingeschränkt. Eine kleine Anmerkung am Rande: Alan Turing war ein britischer Mathematiker und Informatiker.
Beispiel
Das folgende Beispiel soll verdeutlichen, wie eine Objektdatenbank bzw. objektorientierte Datenbanken aussehen kann/können: Das konkrete Objekt „Notebook von Isa“ wird abgespeichert. Diesem Objekt „Notebook von Isa“ werden verschiedene Attribute zugeordnet: z. B., dass es eine schwarze Außenseite hat und 30 cm lang ist. Auch werden dem Objekt Methoden zugeordnet: z. B., dass es eine Verbindung zum Internet aufbauen kann und in der Lage ist Rechenaufgaben auszurechnen. Das Objekt „Notebook von Isa“ wird nun der Klasse „Notebooks“ zugeteilt. Die Klasse „Notebooks“ ist wiederum eine Unterkategorie von „Personal Computer“. Die Unterkategorie „Personal Computer“ umfasst zum Beispiel auch die Klasse „Desktop-Computer“. Das Objekt „Notebook von Isa“ hat zudem eine Verbindung zur Klasse „Arbeitsmaterial“ hergestellt, da Isa das Notebook für die Arbeit benötigt. Zudem wurde dem Objekt „Notebook von Isa“ eine Identifikationsnummer zugeteilt, um das Objekt mit all seinen Attributen und Methoden problemlos aufrufen zu können.
Vorteile
Eine objektorientierte Datenbank (object database) bringt die folgenden Vorteile mit sich:
- Abbildung komplexer Objekte: Durch objektorientierte Datenbanksysteme lassen sich komplexe Objekte abbilden, welche schnell und leicht aufgerufen werden können. Auf der flachen Tabellenstruktur einer relationalen Datenbank ist dies nur mit einem großen Aufwand möglich. So ist die Funktionsweise der relationalen Datenbank darauf ausgerichtet, die Informationen mehrerer Datenbanken zu verknüpfen. Diese Informationen werden in einem Tabellensystem abgebildet und gespeichert. Um in diesem Tabellensystem komplexe Objekte abzubilden, fällt durch relationale Datenbanksysteme ein hoher Aufwand an. Trotzdem genießen relationale Datenbanksysteme eine große Verbreitung. Dies ist unter anderem der Tatsache verschuldet, dass Anwendungen häufiger auf relationale Datenbanksysteme ausgelegt sind.
- Gute Zusammenarbeit mit objektorientierten Programmiersprachen: Objektorientierte Datenbanksysteme arbeiten gut mit objektorientierten Programmiersprachen zusammen. Aus diesem Grund lohnt sich die Einführung einer objektorientierten Datenbank insbesondere dann, wenn bereits mit objektorientierten Programmiersprachen gearbeitet wird.
- Automatische Vergabe der Identifikationsnummern: Hierdurch wird das Problem der Objektidentität gelöst, ohne dass ein besonderer Aufwand entsteht. Die Verwaltung der Identifikationsnummern wird vollständig vom System übernommen.
Nachteile
Gleichzeitig müssen bei der Nutzung einer objektorientierten Datenbank folgende Nachteile in Kauf genommen werden:
- Schlechte Verbreitung: Objektdatenbanken bzw. objektorientierte Datenbanken verfügen, insbesondere im Vergleich zu relationalen Datenbanksystemen, nur über eine geringe Verbreitung, wodurch viele Schnittstellen auf eine Anwendung in Verbindung mit einem ODBMS nicht ausgerichtet sind.
- Performanceprobleme: Durch die hohe Komplexität der Objekte können Performanceprobleme entstehen. Diese Performanceprobleme können möglicherweise sogar durch recht einfache Anfragen ausgelöst werden.
Meistverbreitete objektorientierte Programmiersprachen
Bei den folgenden Programmiersprachen handelt es sich um die meistverbreiteten objektorientierten Programmiersprachen:
- Java
- Python
- C++
- C#
- R
- PHP
- Smalltalk
Wann ist eine objektorientierte Datenbank sinnvoll?
Objektorientierte Datenbanksysteme bieten sich besonders dann an, wenn die folgenden Merkmale auftreten:
- Die Organisation möchte komplexe Objekte abbilden lassen.
- Die Organisation nutzt bereits eine oder mehrere objektorientierte Programmiersprachen. Auf diese Weise ist keine Umstellung notwendig.
Objektorientierte Datenbank von TenMedia erstellen lassen
Die Gestaltung eines Objektdatenbankmanagementsystems, welches auf alle Bedürfnisse einer Organisation ausgerichtet ist, stellt eine Herausforderung dar. TenMedia, ein lebendiges Softwareunternehmen in der Mitte von Berlin, hat sich seit 2011 exakt auf solche Herausforderungen spezialisiert und versucht den individuellen Bedürfnissen einer jeden Organisation durch die Gestaltung einer maßgeschneiderten Individualsoftware nachzukommen. Unser Team freut sich auf eine unverbindliche Kontaktaufnahme oder konkrete Anfragen.