Graph DBs vs. Document DBs vs. Triplestores

Dies ist eine etwas abstrakte und allgemeine Frage. Ich interessiere mich für die inhärenten (sowie implementierungsspezifischen) Eigenschaften verschiedener Ansätze, um unstrukturierte Daten mit vielen internen Referenzen (grafisch) und vielen Eigenschaften (JSON-ähnlich) beizubehalten.

Da ein Diagramm eine Obermenge eines Baums ist, können Sie Diagramm-DBs (z. B. Neo4j) als eine Obermenge von Dokument-DBs (z. B. MongoDB) betrachten. Das heißt, ein Graph-DB bietet die gesamte Funktionalität eines Document-DB und erlaubt zusätzlich auch Schleifen oder hat einen nativen Zeigertyp, so dass Sie Fremdschlüssel / IDs nicht manuell dereferenzieren müssen. Gibt es also einen Wendepunkt, den Sie erreichen, wenn Sie mehr Verweise auf Ihre Objekte / Ressourcen hinzufügen, bei denen Sie mit einer Diagramm-DB besser dran sind, bei denen Sie zuvor mit einem Dokumentenspeicher besser dran waren? Gibt es Vorteile beim Dokumentieren von DBs (Speicherplatz, Leistung?) Oder sollten Sie sich immer für einen Diagramm-DB entscheiden, nur für den Fall, dass Sie in Zukunft mehr Referenzen benötigen?

Wie vergleichen sich Grafik-DBs und Triplestores (z. B. RDF-Stores)? Diagramm-DBs (bei denen Knoten und Kanten Eigenschaften haben) scheinen eine Obermenge der einfachen Tripelspeicher zu sein. Also, für welche Probleme (wenn überhaupt) führen Triplestores eigentlich besser aus, sagen wir Neo4j? (Ein Vorteil von RDF-Speichern ist, dass es eine standardisierte Abfragesprache gibt - SPARQL - obwohl es anscheinend viele Leute gibt, die SPARQL nicht mögen und dies daher als Nachteil bezeichnen würden.)

Ich denke, meine Frage ist: Das Diagrammmodell (mit Eigenschaften) scheint in der Lage zu sein, alle Arten von Daten sauber auszudrücken. Was ist der Haken, wenn Sie in die Realität eintreten? Ich nehme an, der Haken bei Grafik-DBs liegt in der Leistung. Daher würde ich gerne Zahlen oder Faustregeln zu den zu erwartenden Verlangsamungen beim Laden, Abfragen und Ändern von Daten sowie des Speichers und der dauerhaften Speicheranforderungen (im Vergleich zum Dokument) sehen und Triple Stores). Was ist auch mit der horizontalen Skalierbarkeit? Ich hatte den Eindruck, dass das Spielfeld dort ziemlich ausgeglichen ist.

Halten Sie es für möglich, dass Diagramme mit ihrer Expressibilität das neue Standardspeichermodell für Projekte werden, die keine übergroßen Daten enthalten, oder sind wir für ein Jahrzehnt von zum Scheitern verurteilt?Polyglotte Persistenz mit RDBMS, JSON-Stores und Graph-DBs, die in noch mehr Code integriert werden müssen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage