9月14日 Neo4j 图形数据库 初步了解

由于我之前对数据库是一点基础知识都没有,所以我先去看了看SQL的基础教程,我先了解了关系型数据库的基本知识和一些基本的操作语句

接下来去看了图数据库的书,先了解一下概念,然后在OS上面下载一个neo4j(属于nosql)的练习一下。

首先明确一下,图书库库,不是储存图片的数据库,而是用图这种建模方式的数据库,可能我还是认识地不够深入。但是这种数据库不像SQL关系型数据库一样的储存模式,所以在历遍大数据的时候,会更加节约时间。

在深度为5的时候,SQL的join 操作会显示出低效率。

举个例子,来说明Neo4J的速度快的秘密就在于数据结构中(图形的局部性是的历遍的速度非常快)(摘自Neo4j实战)

如果你在一个小教室,有人问你周围5米之内有多少人,你会站起来看一下

如果你在一个大教室,有人问你周围5米之内有多少人,你也是站起来看一下

如果你在一个超大礼堂,有人问你周围5米之内有多少人,你还是站起来看一下

时间是一样的,但是关系型数据库的查询,就是得数一数整个超大礼堂有多少人,然后删除那些不在你身边的人,这样速度就慢了

图形是最普遍的自然结构,也是人类很容易理解的结构

neo4j是一个无架构数据库,在开始添加数据之前,你并不需要定义表和关系。一个节点可以具有你喜欢的任何属性,任何节点都可以与其他任何节点建立关系。

它是对你存入数据的一种描述。 而不是用一个规则来限制你的数据存入的内容

Cypher Neo4j的查询语言。

http://blog.csdn.net/wangweislk/article/details/47661863 入门可看

http://www.cnblogs.com/hwaggLee/p/5959716.html

在 neo4j 中创建节点

create (a) 创建空节点

create (a:Person) 创建标签(可以理解为类)为Person的节点

create (a:Person {name:‘Kaine‘,age:28}) 创建标签为Person,属性name值为Kaine,属性age值为28的节点

在neo4j 中创建关联

match (a),(b)

where a.name=‘Kaine‘ and b.name=‘Sharon‘

create (a)-[r]->(b) 创建a节点和b节点的路径,此时变量r即代表关联,它也可以有标签

查询关键字

match:用来匹配一定模式,可以是简单的节点、关联,也可以是复杂的路径

where:用来限定条件,一般是限定match中的出现变量的属性return:返回结果

start:开始节点,一般用于有索引的节点或者关联

你可能感兴趣的:(9月14日 Neo4j 图形数据库 初步了解)