赞
踩
随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。
举个栗子:
图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论为基础的,图数据库主要用于存储更多的连接数据。
图论(Graph Theory):
以图为研究对象,图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间俱有这种关系。
关系型数据库(RDBMS) | 图数据库(Graph Database) |
---|---|
表 | 图 |
行/外键 | 节点 |
列和数据 | 属性和数据 |
约束/join | 关系 |
Neo4j是一个开源的NoSQL图形数据库,使用Scala和Java语言,2003年开始开发,2007年发布。
Neo4j的特性:
Neo4j的优点:
图论基础:
1> 图是一组节点和连接这些节点的关系,图形以属性的形式将数据存储在节点和关系中,属性是用于表示数据的键值对。
2> 在图论中,可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示。
最简单的是单个节点:
在两个节点之间创建关系:
备注:两个配置文件之间创建关系名称“跟随”,这也就意味着Profile:1 遵循 Profile:2
图数据库数据模型的主要构建块:
Neo4j图数据库构建元素主要有:
节点
节点(Node)是图数据库中的一个基本元素,用来表示一个实体记录,就像关系数据库中的一条记录一样;在Neo4j中节点可以包含多个属性(Property)和多个标签(Label)
属性
属性(Property)是用于描述图节点和关系的键值对;其中Key是一个字符串,值可以通过使用任何Neo4j 数据类型来表示
属性是命名值,其中名称(键)是字符串
关系
关系(Relationship)同样是图数据库的基本元素,当数据库中已经存在节点后,需要将节点连接起来构成图;
关系就是用来连接两个节点,关系也称为图论的边(Edge),其始端和末端都必须是节点,关系不能指向空也不能从空发起;
关系和节点一样可以包含多个属性,但关系只能有一个类型(Type)
标签
标签(Label)将一个公共名称与一组节点或关系相关联,节点或关系可以包含一个或多个标签。可以为现有节点或关系创建新标签/删除已有标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。