Frage

Das ist die Frage. Geben Sie nur einen Grund, warum Sie denken, haben OODB ausgefallen oder warum viele Systeme heute noch relationalen Datenbanken verwenden.

War es hilfreich?

Lösung

Können wir antworten mehr als einmal? Ein weiterer Grund ist, dass relationale DB hat eine starke Grundlage in der Mathematik: von der Definition einer Beziehung, bis hin zu den normalen Formen, die Theorie Rock fest ist. Es stimmt, dass das relationale Modell nicht gut auf OO abbildet, aber IMHO die Vorteile und die Stabilität dieses Modells das Mapping Problem aufwiegen.

Andere Tipps

Der Hauptgrund ist SQL. Es ist sehr nützlich, in der Lage sein, die Daten aus einer Datenbank in anderen Kontexten außerhalb der Anwendung zu verwenden, und oft mit Objektdatenbanken der Daten in einem Format gespeichert, die nicht einfach abgefragt werden können. Mit einer relationalen Datenbank können die Daten Teil eines Data Warehouse werden, zum Beispiel, oder nur von Systemadministratoren abgefragt etc.

Ich denke, es ist, weil „Objektdatenbanken“ sind ein Problem zu lösen, dass (fast) niemand wirklich hat. Für einfache Persistenz von Objektgraphen, die Serialisierung in den meisten OO-Umgebungen aufgebaut ist „gut genug“. Wenn Sie anspruchsvolle Operationen auf einer Teilmenge der Daten tun wollen, dann eine relationale Datenbank und SQL ist eine perfekte Passform.

Anders als einige Randanwendungen (enorme Objektgraphen, die nicht im Speicher gehalten werden können, aber für die die Beziehungen vereinfachen nicht gut an für RDBMS verwenden), gibt es wirklich keine Notwendigkeit für diese Werkzeuge.

Nur weil OODB sind nicht der Mainstream, wir sollten noch die Erfolge betrachten, die sie gehabt haben. Cache und Zope sind beide weit verbreitet (relativ), sondern würde von einigen Standards erfolgreich angesehen werden.

Vielleicht ist der wichtigste Grund dafür, dass OODB nicht durchgesetzt haben sich dramatisch ist, weil der Erfolg der hybriden objektrelationale Systeme, die die meisten der potenziellen Marktanteil nehmen von OODB. PostgreSQL und Informix

Ich weiß, dass dies nicht direkt auf die Frage nicht beantworten, aber es ist, glaube ich, einen Teil der Gleichung. Insgesamt aber, denke ich, dass die Dynamik und die stark verwurzelten Denkprozesse Beziehung Datenbanken Unterstützung macht es schwierig für die Menschen zu wechseln. Derzeit ist die DB Beruf fast ausschließlich in relationaler Theorie ausgebildet, um Ihre DB-Profis sehr daran interessiert, OODB und Wissenschaft zu vermeiden für Praktiker DB Theorie lehren fast ausschließlich auf relational.

Bis groß, Corporate DBAs und Mainstream-Professoren und Lehrpläne und Mitarbeiter über Entwickler Ausdrehen zu verwaltenden OODB bereitete ich das Gefühl, dass es unwahrscheinlich ist, Massenanklang zu sehen, egal wie gut sie von der Entwicklungsseite ist.

Nun, es ist seltsam, nicht wahr? Es ist so ein Schub in Richtung Domain Driven Design als Höhepunkt der objektorientierten Analyse und Design, und es gibt Unternehmen Muster gibt ORM-Systeme zu nutzen, um unsere Objekte bestehen bleiben. Es macht absolut Sinn für mich, dass, wenn Ihre Anwendung DESIGN Objekt orientiert und Domain am Herzen fokussierte, dass ein OODB stark Ihre Anwendung profitieren.

Neben den Fragen rund um den Reif und die Aufnahme aus einer philosophischen Perspektive wäre ein OODB vorteilhaft erscheinen oder eine OO-Anwendung. nicht aufweisen, die Abbildungsschicht für Starter zu halten;)

Aber sehen Sie, wenn Sie nicht Domain-Laufwerk Gestaltung und Nutzung Objekte als Datenobjekte zu tun und wie Ihre gespeicherten Procs, dann bist du nicht wirklich in Gang zu bringen;)

RDBMs ist (auf einem starkes theoretisches Fundament gebaut, hat eine viel längere Zeit auf dem Markt gewesen, können Daten mehr modelliert getreulich als OODBs in vielen Fällen um mehr als DBAs OODBs verwendet werden). Das ist ein Grund in Form eines relationalen Tupel.

Wenn ich Phils Punkt verstärken: die Standardisierung von SQL. OODB die haben Abfragesprachen versucht, wie OQL aber sie schienen nie einen echten Standard zu folgen. Auch die Qualität der Abfragesprachen waren verdächtig, wohl wegen des Mangels an Standardisierung. Standards den Wettbewerb fördern, die Qualität laicht.

Ein Grund hierfür ist, dass Datenbanken über Daten und Objekte sind über Strukturen und Algorithmen. Sobald Sie die Daten nehmen und betten sie in Klassen, um die Beziehungen und Operationen in einer statischen Struktur charakterisieren. Datenbanken, auf der anderen Seite, ist über die Daten in eine Reihe von Instanzen von Atom Tabellen unstructuring, die in unterschiedliche Strukturen (in der Regel mit Klassen) zusammengesetzt werden können, ohne die Integrität der Atom zu stören.

Datenbanken ist in gewisser Weise analog zu hexahexaflexagons.

Das, und o / r-Mapper. Durch sie wird der Unterschied zu echten OO-DBs Weise kleiner, während die oben genannten Vorteile gültig bleiben.

Teure Technologie Entscheidungen werden nicht von Menschen mit technischen Wissen. Firmen mit relationalen Datenbanken beschäftigen viele Menschen, die von OODBs bedroht fühlen und deshalb wird vermieden, über sie zu lernen.

Ich denke, dass es zwei philosophische Gründe.

Erstens neigen die Menschen traditionell Ausdauer trennen von realer Funktionalität. Sobald Sie ein Objekt der „Leben“ abstreifen von ihm weg und halten es in erster Linie für die Persistenz, wird es ein Rekord, und dann gibt es eine Tendenz, sie als „leblos“ Datenobjekt zu behandeln.

auf die Folgen, wenn die Leute denken Sie an eine große Sammlung von sehr ähnliche Dinge, beginnen sie denken an sie als Tabellen eher als Objekte.

Ich denke, mit O / R der Unterscheidung zu verschwinden beginnt. Zum Beispiel verwende ich überwintern wirklich komplexe Klassenhierarchien in eine MySQL-Datenbank zu sichern. Allerdings glaube ich nicht leistungskritische Sachen für mein Projekt schreiben, so bin ich sicher, dass es nicht effizient durchgeführt.

Der Grund für die langsame Annahme OODB ist weitgehend auf einige Schlüsselfaktoren basieren, die die relationalen SQL-Datenbanken immer beliebter und / oder besser geeignet machen. Während reine objektorientierte Datenbanken nun in einem Zustand sind, wo sie viele der Nachteile des relationalen Modells zu überwinden, gibt es einige der wichtigsten fehlenden Teile.

Zum einen neigen sie Unterstützung für die zentrale Datenbank-Management fehlen, obwohl dies schnell in verschiedenen Produkten behoben wird.

Ein zweiter Grund ist, dass nur sehr wenige Systeme eine Standardabfragesprache implementieren und stattdessen verlässt sich auf die Programmiersprache oder spezielle Abfragesprachen abrufen und die Daten im Speicher zu manipulieren. Dies ist eine Show-Stopper für viele, wenn sie eine neue Abfragesprache auf die völlig anderen Mentalität eines Programmierers verwendet, um NoSQL-basierte Lösungen zu lernen. Hinzu kommt, dass die meisten SQL-basierte / Relationale Datenbanken haben jetzt eine gewisse Unterstützung für objektorientiertes Design, plus haben wir Wrapper wie ORM, dass viele Verwendung auf „Bypass“ die Probleme der relationalen Datenbanken nicht in der leicht zugänglich in der Programmiersprache der Wahl.

Aber diese Probleme gibt es vor allem in Unternehmensumgebungen. Als Embedded-Datenbanken in kleinen Geräten, wie Web-Site-Storage und in Bereichen wie der Luft- und Raumfahrt sie geworden sind sehr beliebt und in vielen Fällen ersetzt vollständig die Notwendigkeit einer regelmäßigen relationalen Datenbanken.

Wer weiß, was die Zukunft bringt?

Serialisierung durch den meisten Gruppen Sprache können Sie die Objektattribute Flaten und damit sie leicht in das RDBMS zu speichern und Objekte in ähnlicher Weise das Abrufen ist kein großes Problem. Die breite und solide Grundlage fehlt noch was die Verwendung von OODBMS behindert umgesetzt werden.

Ich denke zur Zeit, dies zu tun, wie meine Master Thesis Projekt einen allgemeinen Rahmen für OODBMS zu schaffen, die fast alle Komponenten unterstützt, die üblicherweise in jetzt ein Tag verwendet wird RDBMS somit eine nichtlineare strukturierte DBMS bietet. Während des Studiums ich über ein Projekt mit dem Namen db4o kam, die ein Ansatz (implementiert) von OODBMS für Java verwenden und .net nur, so könnte dies ein weiterer Grund, der Mangel an Allgemeingültigkeit für alle Arten von Plattformen und Sprachen sein.

Ich denke, das ist, weil große Jungs wie Oracle in relationalen Datenbanken wurden investiert, während objektorientierte Bewegungsdynamik war immer ... können sie Mainstream geworden, wenn Oracle / Microsoft in es in einem großen Weg investieren ... die scheint unwahrscheinlich weil sie so keinen guten Grund hat zu tun ... es Leben vieler Programmierer zu vereinfachen ... aber „Programmierer machen lebt einfacher“ ist nicht ein sehr gutes Geschäftsziel für sie!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top