2014-06-23 11 views
8

La mia domanda è dal punto di vista dello sviluppatore (non specificamente rispetto all'utente) e potrebbe essere un po 'caotica. Voglio sapere che la struttura di Nodi e Relazioni viene memorizzata logicamente nel database. Piace, quando dico che ho informazioni bla bla. Dove? - allora la risposta è, in LIBRO, in forma di Griglia o linee su una pagina. Nel caso di RDBMS, i dati vengono memorizzati in formato Grid/Tabulare. Ma non sono in grado di capire come il grafico viene memorizzato nel database Neo4j/graph. Sto usando il client neo4j 2.1.2.In che modo Neo4j memorizza i dati internamente?

+1

Think reference chains and graphs: http://www.slideshare.net/thobe/an-overview-of-neo4j-internals – duffymo

risposta

3

http://www.slideshare.net/thobe/an-overview-of-neo4j-internals è un po 'obsoleto ma questo offre una buona panoramica della rappresentazione logica di Neo4j.

A riferimenti nodo:

  • la sua prima etichetta (la mia ipotesi è che le etichette vengono memorizzati come una lista concatenata)
  • la sua prima proprietà (proprietà sono organizzati come una lista concatenata)
  • i suoi rapporti di inizio/fine

I rapporti sono organizzati come liste a doppio collegamento. A Punti relazione a:

  • sua prima struttura (stesso come nodi)
  • predecessore e successore rapporto del suo nodo di partenza
  • predecessore e successore rapporto del suo nodo finale

A causa di questa struttura concatenata, emerge facilmente la nozione di attraversamento (cioè il modo di interrogare i dati). Ecco perché un database grafico come Neo4j eccelle nel percorrere i dati strutturati con il grafico.

La mia ipotesi approssimativa sarebbe anche, poiché Neo4j versione 2.1 (e its newly introduced dense node management), le relazioni dei nodi sono segregate per tipo. In questo modo, se un nodo N è ad esempio un nodo di partenza per 5 relazioni di tipo A e per 5 milioni di rel di tipo B, i riferimenti di traslazione di tipo A per N rimangono O (n = 5).

Problemi correlati