neo4j图形数据库是以图形结构的形式存储数据的数据库。 它以节点,关系和属性的形式存储应用程序的数据。 正如RDBMS以表的“行,列”的形式存储数据,GDBMS以“图形”的形式存储数据。
Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性。Neo4j创建的图是用顶点和边构建一个有向图,其查询语言cypher (saife)已经成为事实上的标准。
模型规则
- 表示节点,关系和属性中的数据
- 节点和关系都包含属性
- 关系连接节点
- 属性是键值对
- 节点用圆圈表示,关系用方向键表示。
- 关系具有方向:单向和双向。
- 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”
而neo4j中的结构更像是邻接表, 其并没有把入边,出边分开存储,它在结点中只放了一个指向第一个关系的指针,顺着这第一个关系遍历链表得到该结点的所有关系。如果需要指定得到某个结点的入度或出度,需要遍历所有关系通过判断边上的起点终点是否和中心结点相等来判断方向。