Ich bin auf viele relationale Datenbankverwaltungssysteme (RDBMS) gestoßen. Aber kürzlich habe ich den Ruhezustand verwendet, wodurch ich mich gefragt habe, warum objektorientierte Datenbanken nicht beliebter sind.
Wenn objektorientierte Sprachen wie Java oder C # so beliebt sind, warum sind dann auch objektorientierte Datenbankverwaltungssysteme (OODBMS) nicht beliebter?
object-oriented
database
rdbms
Rachel
quelle
quelle
Antworten:
Dafür gibt es mehrere Gründe.
quelle
Als die Datenbanken zum ersten Mal erschienen, war OOP noch nicht die richtige Art zu programmieren. Relationale Datenbanken haben dagegen viel Zugkraft gewonnen. Und SQL, das in den 80er Jahren von IBM eingeführt wurde, wurde schnell zur Verkehrssprache aller Datenbanken.
Als OOP populär wurde, gab es einige Versuche, aber es gibt einige Probleme. Erstens ist echtes OODBMS wirklich schwer zu implementieren. Im Fall einer relationalen Datenbank sind eine Tabelle und zugehörige Indizes relativ einfache Strukturen (z. B. B-Bäume). Ein weiterer Grund ist, dass hinter dem relationalen Modell eine Menge Theorie steckt, die direkt von der mathematischen Mengenlehre abgeleitet ist. Es gibt bekannte Wege, eine relationale Datenbank korrekt zu entwerfen (denken Sie an Normalisierung usw.). Und zu guter Letzt haben sich die Leute schon viel an SQL gewöhnt.
Moderne NoSQL-Lösungen sind in den meisten Fällen kein wirklicher Schritt in Richtung OODBMS. Viele von ihnen sind immer noch relational, nur ausgezogen
JOINs
. Nur wenige von ihnen sind tatsächlich Objektspeicher, aber keine echten OODBMS, da sie die Beziehungen zwischen den Objekten nicht kennen.Ein weiterer Grund, warum OODBMS nicht so stark vorangetrieben wird, ist, dass es eine OODBMS-Lösung für Arme gibt - ORMs. Dies hat eine enorme Popularität erlangt, da sie von bekannten, stabilen und getesteten DB-Engines unterstützt werden und dennoch die Zuordnung zu Objekten ermöglichen. Natürlich sind dies keine echten OODBs.
quelle
OODBMS können komplexe Daten gut speichern. In den meisten Fällen sind die benötigten Daten jedoch relativ einfach, selbst wenn OO-Sprachen verwendet werden. Daher sind herkömmliche RDBMS besser geeignet.
quelle