139 Stimmen

Gute Gründe, keine relationale Datenbank zu verwenden?

Können Sie bitte auf alternative Datenspeicher-Tools hinweisen und gute Gründe dafür nennen, diese anstelle der guten alten relationalen Datenbanken zu verwenden? Meiner Meinung nach nutzen die meisten Anwendungen nur selten die volle Leistungsfähigkeit von SQL - es wäre interessant zu sehen, wie man eine Anwendung ohne SQL erstellen kann.

6voto

Jared Updike Punkte 6917

Benutzerdefinierte (handgeschriebene) Speicher-Engine / Potenziell sehr hohe Leistung in erforderlichen Anwendungsfällen

http://www.hdfgroup.org/

Wenn Sie riesige Datensätze haben, können Sie stattdessen HDF, das Hierarchical Data Format, verwenden.

http://en.wikipedia.org/wiki/Hierarchical_Data_Format :

HDF unterstützt mehrere verschiedene Datenmodelle, darunter mehrdimensionale Arrays, Rasterbilder und Tabellen.

Es ist ebenfalls hierarchisch aufgebaut wie ein Dateisystem, aber die Daten werden in einer einzigen magischen Binärdatei gespeichert.

HDF5 ist eine Suite, die die Verwaltung von extrem großen und komplexen Datensammlungen ermöglicht.

Denken Sie an Petabytes von Fernerkundungsdaten der NASA/JPL.

4voto

Rob Wells Punkte 35303

Guten Tag,

Ein Fall, den ich mir vorstellen kann, ist, wenn die Daten, die Sie modellieren, nicht einfach in einer relationalen Datenbank dargestellt werden können.

Ein solches Beispiel ist die Datenbank, die von Mobilfunkbetreibern zur Überwachung und Steuerung von Basisstationen für Mobilfunknetze verwendet wird.

In fast allen diesen Fällen ist ein OO DB verwendet wird, entweder ein kommerzielles Produkt oder ein selbstentwickeltes System, das eine hierarchische Anordnung von Objekten ermöglicht.

Ich habe an einer 3G-Überwachungsanwendung für ein großes Unternehmen gearbeitet, dessen Name nicht genannt werden soll, dessen Logo aber ein Rotweinfleck ist (-: ), und sie haben eine solche OO-DB verwendet, um alle verschiedenen Attribute für einzelne Zellen innerhalb des Netzes zu erfassen.

Die Abfrage solcher DBs erfolgt mit proprietären Techniken, die in der Regel völlig frei von SQL sind.

HTH.

Prost,

Rob

4 Stimmen

Warum eignen sich die Daten der Basisstation nicht für das relationale Modell?

3voto

Chris de Vries Punkte 55383

Objektdatenbanken sind keine relationalen Datenbanken. Sie können sehr praktisch sein, wenn man einfach nur ein paar Objekte in eine Datenbank packen will. Sie unterstützen auch die Versionierung und ändern Klassen für Objekte, die bereits in der Datenbank vorhanden sind. db4o ist der erste, der mir einfällt.

3voto

horace Punkte 1233

In einigen Fällen (z. B. bei Finanzmarktdaten und Prozesssteuerung) kann es erforderlich sein, eine Echtzeitdatenbank anstelle eines RDBMS zu verwenden. Siehe Wiki-Link

3voto

Es gab ein RAD-Tool namens JADE das vor ein paar Jahren geschrieben wurde und ein eingebautes OODBMS hat. Frühere Versionen der DB-Engine unterstützten auch Digitalk Smalltalk. Wenn Sie die Erstellung von Anwendungen mit einem Nicht-RDBMS-Paradigma ausprobieren möchten, könnte dies ein Anfang sein.

Andere OODBMS-Produkte sind Objektivität , Edelsteine (Sie müssen sich VisualWorks Smalltalk, um die Smalltalk-Version auszuführen, aber es gibt auch eine Java-Version). Es gab auch einige Open-Source-Forschungsprojekte in diesem Bereich - EXODUS und sein Nachfolger SHORE kommen mir in den Sinn.

Leider schien das Konzept auszusterben, was wahrscheinlich auf das Fehlen eines klar erkennbaren Standards und die im Vergleich zu SQL-basierten RDMBS-Systemen relativ schlechte Ad-hoc-Abfragefähigkeit zurückzuführen ist.

Ein OODBMS eignet sich am besten für Anwendungen mit Kerndatenstrukturen, die sich am besten als Graph aus miteinander verbundenen Knoten darstellen lassen. Ich habe immer gesagt, dass die Quintessenz einer OODBMS-Anwendung ein Multi-User-Dungeon (MUD) ist, in dem die Räume die Avatare der Spieler und andere Objekte enthalten.

2 Stimmen

Früher war es so, dass man einen Smalltalk-Client brauchte, um GemStone/S (für Desktop-Anwendungen) zu verwenden, aber mit den Web-Frameworks Aida ( aidaweb.si ), und Seaside ( seaside.st ) GemStone/S kann direkt als Anwendungsserver verwendet werden. Siehe die Informationen zu GLASS ( seaside.gemstone.com )

0 Stimmen

Ein weiterer Grund wäre, wenn Ihnen die Datenqualität am Herzen liegt. In einer OODB wie Gemstone ist es viel einfacher, komplexe Gültigkeitsregeln durchzusetzen.

0 Stimmen

Die Ad-hoc-Abfragefunktionen von OODBMS sind viel besser als die von SQL-basierten RDBMS

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X