Neo4j简单介绍

Neo4j是一款强健的,可伸缩的高性能图数据库。

 

 

首先需要我们知道什么是图数据库。

图数据库是用图来存储数据,是一种高性能的用于存储数据的数据结构方式。只要学习过离散数学或者图论的人对于图的概念来说不会太陌生。

图数据库主要是由节点(node)、关系(relationship)、属性(property)组成的。

最简单的图就是一个单节点,记录了一些属性。

关系主要用于把不同的节点组织在一起,形成一张图。关系可以把节点组织成任意的结构,列表、树或者其它复杂的实体。关系本身也是可以有属性的。

 Neo4j简单介绍_第1张图片

查询图里的数据可以用这么两种方式:

第一个就是遍历(traversal)的方式来查询数据。

第二个方式就是通过对节点和关系建立索引。通过索引来映射到具体的属性,再找到对应的节点或者关系。

 

 

接下来详细讲述一下Neo4j里元素的更多细节

 

首先是节点,节点类似于图里面的节点的性质,它有自己的属性,以及对应的进入或者出去的边(关系)


当然节点也可以有一个关系指向自己。

 

 

接下来是关于关系。关系更接近与图中的有向边,它有一个起始节点和结束节点,同时它也有自己的属性。


节点之间的关系是图数据库很重要的一部分。通过关系可以找到很多关联的数据,比如节点集合,关系集合以及他们的属性集合。

 Neo4j简单介绍_第2张图片

为了将来增强遍历图中所有的关系,我们需要为关系设置类型。注意,关键字relation type在这可能会被误解,你其实可以把他简单的理解为一个标签而已。

 

节点和关系都可以设置自己的属性。

属性是由Key-Value键值对组成,键名是字符串。属性值是要么是原始值,要么是原始值类型的一个数组。比如String,int和int[]都是合法的。下表显示了属性支持的数据类型和数据范围。

 

Type

Description

Value range

boolean

 

true/false

byte

8-bit integer

-128 to 127, inclusive

short

16-bit integer

-32768 to 32767, inclusive

int

32-bit integer

-2147483648 to 2147483647, inclusive

long

64-bit integer

-9223372036854775808 to 9223372036854775807, inclusive

float

32-bit IEEE 754 floating-point number

 

double

64-bit IEEE 754 floating-point number

 

char

16-bit unsigned integers representing Unicode characters

u0000 to uffff (0 to 65535)

String

sequence of Unicode characters

 

 

 在Neo4j中查询数据一般由四种方法:

1.利用索引进行精确查询

2.利用索引进行模糊查询(比较深奥)

3.利用relationship进行查询

4.利用遍历(Traversal)图的方式查询



Neo4j拥有自己的查询语言Cypher,在这里不做过多介绍。(可以参考这篇文章http://www.uml.org.cn/sjjm/201203063.asp)

Neo4j是面向对象基于Java的 ,被设计为一个建立在Java之上、可以直接嵌入应用的数据存储。此后,其他语言和平台的支持被引入,Neo4j社区获得持续增长,获得了越来越多的技术支持者。目前已支持.NET、RubyPythonNode.jsPHP等。因此,不管是什么项目,没有理由不引入Neo4j。(关于python使用Neo4j可以参考http://blog.csdn.net/zajin/article/details/9612123

关于Neo4j插入数据的速度测试,请参考http://www.2cto.com/database/201405/303541.html。

关于不同NoSQL数据库的性能对比,可以参考http://www.jb51.net/article/51599.htm。

和MySQL和Mongodb一样,Neo4j也有自己的可视化操作软件Neoclipse,是一款可以将Neo4j数据库可视化并进行修改(节点、关系、属性)的软件,可以参考http://blog.csdn.net/cfeibiao/article/details/6842941。

Neo4j的中文手册我上传到我的百度云盘里了,不过因为它的很多翻译并不够准确,所以建议参照英文手册,以免出现理解上的偏差。(下载地址:http://pan.baidu.com/s/1dEKX7ah)

 

你可能感兴趣的:(Neo4j,数据库,高性能,neo4j)