Objektorientierte Datenbank: das bestgehütete Geheimnis von Datenbankmodellen
Die meisten Personen, die regelmäßig Datenbanken verwalten, wie z. B. Softwareprogrammierer, Webentwickler oder Bibliothekare, arbeiten mit relationalen Datenbanken oder mit den entsprechenden Datenbankverwaltungssystemen (DBMS) wie MySQL oder MariaDB. Es gibt jedoch andere Alternativen: Objektorientierte Datenbanken (auch Objektdatenbanken genannt) werden selten verwendet, können jedoch die Leistung einiger Projekte erheblich verbessern.
- Was sind Objektdatenbanken?
- Objektorientierte Datenbanken vs. relational
- Vor- und Nachteile des objektorientierten Datenbankmodells
Was sind Objektdatenbanken?
Das objektorientierte Datenbankmodell gruppiert Informationen in zusammenhängende Pakete: Die Daten aus jedem Datensatz werden mit allen Attributen zu einem einzigen Objekt zusammengefasst. Auf diese Weise sind alle Informationen im Objekt verfügbar, da seine Daten gruppiert und nicht in verschiedenen Tabellen verteilt werden. In Objekten können nicht nur Attribute gespeichert werden, sondern auch Methoden, die die Affinität dieser Datenbanken zu objektorientierten Programmiersprachen widerspiegeln : Wie in diesen hat jedes Objekt eine Reihe von Aktionen, die ausgeführt werden können. fertig.
Objekte werden wiederum in Klassen unterteilt . Insbesondere ist ein Objekt eine konkrete Einheit einer abstrakten Klasse, die eine Hierarchie von Klassen und Unterklassen erstellt. Innerhalb dieser Struktur übernehmen Unterklassen die Eigenschaften übergeordneter Klassen und ergänzen sie mit ihren eigenen Attributen. Gleichzeitig können Objekte in einer Klasse auch mit anderen Klassen verknüpft werden, wodurch die strenge Hierarchie gebrochen und die Bildung von Netzwerken ermöglicht wird. Einfache Objekte können auch kombiniert werden, um komplexere Objekte zu erstellen.
Um die verschiedenen Objekte zu verwalten, weist das entsprechende objektorientierte DBMS jedem Datensatz automatisch einen eindeutigen Identifikationscode zu, mit dem die Objekte nach dem Speichern abgerufen werden können.
Beispiel : Im Kontext einer objektorientierten Datenbank können wir ein Fahrrad als Objekt mit all seinen Attributen und Methoden speichern: Es ist rot, es kann gefahren werden, es hat einen Sattel usw. Dieses Objekt gehört zur Klasse “Fahrräder”, zu der beispielsweise auch ein blaues und ein grünes Fahrrad gehören können. Die Klasse? Fahrräder? ist eine Unterkategorie von “Fahrzeugen”, zu der auch die Klasse “Autos” gehört. Andererseits bezieht sich das Objekt auch auf die Klasse “Freizeitaktivitäten”. Wenn wir über seinen eindeutigen Identifikationscode auf dieses Objekt zugreifen, verfügen wir direkt über alle seine Methoden und Attribute.
Objektorientierte Datenbanken vs. relational
Wie bereits erwähnt, sind relationale Datenbanken seit langem der Standard in der Webentwicklung und -programmierung. In diesem Modell werden die Informationen in verwandten Tabellen gespeichert . Mit Beziehungen können Sie auch komplexe Informationen aus mehreren Elementen speichern und abfragen, genau wie in Objektdatenbanken. In letzterem Fall sind jedoch alle Attribute jedes Objekts sofort verfügbar, und außerdem können die Datensätze viel komplexer sein. Bei relationalen Datenbanken wird jedoch am häufigsten versucht, die eingegebenen Informationen so weit wie möglich zu vereinfachen. Je komplexer der Datensatz wird, desto umfangreicher sind die Beziehungen zwischen ihnen, was die Datenbank verlangsamt.
Vor- und Nachteile des objektorientierten Datenbankmodells
Das Datenbankmodell, mit dem wir arbeiten möchten, hängt stark von der Verwendung ab, die wir ihm geben möchten. Objektdatenbanken eignen sich besonders, wenn wir bereits mit objektorientierten Programmiersprachen wie Java arbeiten, da Objekte aus dem Quellcode einfach in die Datenbank integriert werden können. Wenn wir eine relationale Datenbank verwenden, die normalerweise am häufigsten verwendet wird, ist es für uns schwierig, komplexe Objekte in die Tabellenstruktur aufzunehmen.
Einer der Nachteile dieses Modells ist, dass es nicht weit verbreitet ist . Obwohl seit den 1980er Jahren bekannt, wurden bisher nur wenige DBMS für objektorientierte Datenbanken entwickelt. Die Community, die sich der Verbesserung dieses Modells widmet, ist ebenfalls relativ klein. Aus diesem Grund bevorzugen die meisten Entwickler relationale Datenbanken, die verallgemeinert, gut dokumentiert und viel weiter entwickelt sind.
Was in einigen Situationen von Vorteil ist, kann sich in anderen als Nachteil herausstellen: Die Komplexität der Objekte stellt sicher, dass selbst die komplexesten Abfragen und Anmerkungen viel schneller ausgeführt werden können als in relationalen Modellen. Wenn die Prozesse jedoch im Vergleich einfach sind, kann auf die komplexe Struktur nicht verzichtet werden, was zu Verlangsamungsproblemen führen kann .
Vorteil | Nachteile |
---|---|
Komplexe Datensätze können schnell und einfach gespeichert und abgefragt werden. | Die Verwendung objektorientierter Datenbanken ist nicht sehr verbreitet. |
Jedem Objekt werden automatisch Identifikationscodes zugewiesen. | In einigen Situationen kann eine hohe Komplexität zu Leistungsproblemen führen. |
Es funktioniert gut mit objektorientierten Programmiersprachen. |
Es gibt andere Alternativen zu MySQL und anderen ähnlichen Programmen: Beispielsweise haben sich dokumentenorientierte Datenbanken als sehr leicht und flexibel erwiesen. Spaltenorientierte Datenbanken eignen sich dagegen gut für die Arbeit mit großen Datenmengen.