Wie speichert Neo4j Daten intern?

8

Meine Frage stammt aus der Sicht des Entwicklers (nicht speziell im Hinblick auf den Benutzer) und kann etwas unordentlich sein. Ich möchte wissen, wie die Struktur von Knoten und Beziehungen in der Datenbank logisch gespeichert wird. Zum Beispiel, wenn ich sage, dass ich bla bla Informationen habe. Woher? - dann ist die Antwort in BOOK entweder in Form von Grid oder Linien auf einer Seite. Im Fall von RDBMS werden Daten im Grid / Tabular-Format gespeichert. Aber ich kann nicht verstehen, wie der Graph in der Neo4j / Graph Datenbank gespeichert wird. Ich benutze neo4j Client 2.1.2.

    
Vincenzo 23.06.2014, 12:34
quelle

1 Antwort

3

Ссылка ist ein bisschen veraltet, aber das gibt Ihnen einen guten Überblick über Neo4j logisch Darstellung.

Ein Knoten verweist auf:

  • das erste Label (ich nehme an, dass Labels als einfach verknüpfte Liste gespeichert sind)
  • seine erste Eigenschaft (Eigenschaften sind als eine einfach verknüpfte Liste organisiert)
  • seine Start- / Ende-Beziehungen

Beziehungen sind als doppelt verknüpfte Listen organisiert. Eine Beziehung zeigt auf:

  • seine erste Eigenschaft (wie Knoten)
  • die Vorgänger- und Nachfolgerbeziehung seines Startknotens
  • die Vorgänger- und Nachfolgerbeziehung seines Endknotens

Aufgrund dieser Verkettungsstruktur tritt der Begriff der Durchquerung (d. h. DIE Art der Abfrage von Daten) leicht auf. Aus diesem Grund zeichnet sich eine Graphdatenbank wie Neo4j durch das Durchlaufen grafisch strukturierter Daten aus.

Meine grobe Vermutung wäre auch, seit Neo4j Version 2.1 (und seine neu eingeführte dichte Knotenverwaltung ), die Beziehungen der Knoten sind nach Typ getrennt. Wenn ein Knoten N zum Beispiel ein Startknoten für 5 Beziehungen vom Typ A und für 5 Millionen Rels vom Typ B ist, bleibt das Durchlaufen von Rels vom Typ A für N O (n = 5).

    
Rolf 23.06.2014, 12:47
quelle

Tags und Links