图数据库Neo4j简介
什么是图数据库(Graph Database)
随着社交、电商金融、零售、物联网的快速发展,现实社会支起了一张张庞大二复杂的关系网,传统数据库很难处理关系运算,急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。
图数据库是基于图论实现的一种Nosql数据库,起数据结构和数据查询方式都是以图论为基础,主要用于存储更多的连接数据。如下图:
Neo4j
Neo4j是一个开源的NoSql图数据库,2003年开始开发,使用scala和java语言,2007年开始发布。
- 世界上最先进的图数据库之一,提供原生的图数据存储,检索和处理
- 采用属性图模型(Property graph mode),几个的完善和丰富图数据模型
- 专属查询语言Cypher,直观,高效
官网:https://neo4j.com/
Neo4j的特性:
- SQL就像简单的查询语言Neo4j CQL
- 遵循属性图数据模型
- 通过使用Apache Lucence 支持索引
- 支持UNIQUE约束
- 包含一个用于执行的CQL命令UI:Neo4j数据浏览器
- 支持完整的ACID(原子性,一致性,隔离性和持久性)规则
- 采用原生图形库与本地GPE(图形处理引擎)
- 支持查询的数据导出到JSON和XLS格式
- 提供了REST API,可以被任何编程语言(JAVA,PYTHON,GO.NET等)
- 提供了可以通过任何UI MVC框架(NODE JS)访问java脚本
- 支持两种java api:Cypher API和Navicat Java API来开发Java应用程序
Neo4j的优点:
- 很容易表示连接的数量
- 检索、遍历、导航更多的连接数量时非常容易和快捷的
- 非常容易地表示半结构化数据
- Neo4j CQL查询语言是人性化可读格式,非常容易学习
- 使用简单而强大的数据模型
- 不需要复杂的连接来检索连接相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
Noe4j数据模型
图论基础
图是一组节点和连接这些节点的关系,图形以属性的形式将数据存储在节点和关系中,属性是用于表示数据的键值对。
在图论中,我们可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示。最简单的图是单个节点:
我们可以使用节点表示社交网络(比如CSDN个人资料),它不包含任何属性,像CSDN个人资料添加一些属性:
在两个节点直接创建关系
此处在两个配置文件之间创建关系名称“跟随”,这意味着profile1遵循profile2
属性图模型
Neo4j图数据库遵循属性图模型来存储和管理数据。
属性图模型规则:
- 表示节点,关系和属性中的数据
- 节点和关系都包含属性
- 关系连接节点
- 属性是键值对
- 节点用图圈表示,关系用方向键表示
- 关系具有方向:单向和双向
- 每个关系包含"开始节点"或"从节点"和"从节点"或结束节点
在属性图数据模型中,关系应该是定向的,如果我们尝试创建没有方向的关系,那么将抛出一个错误消息,在Neo4j中,关系也是有方向的。
Neo4j图数据库将其所有数据存储在节点和关系中,我们不需要任何额外的RDBMS数据库或NoSQL数据库来存储Neo4j数据库数据,它以图形的形式存储数据。Neo4j使用本机GPE(图形处理引擎)来使用它的本地图存储格式。
图数据库数据模型的主要构建块是:
- 节点
- 关系
- 属性
简单的属性图的例子:
Neo4j的构建元素
Neo4j图数据库主要有以下构建元素:文章来源:https://www.toymoban.com/news/detail-836656.html
- 节点(Node):是图数据库中的一个基本元素,用来表示一个实体记录,就像mysql中的一条记录一样,一个节点(Node)可以有多个属性(properties)和多个标签(label)。
- 节点是最主要的数据元素
- 节点可以通过关系连接到其它节点
- 节点可以具有多个属性(键值对)
- 节点可以由多个标签,用于描述其在图表中的作用,比如一个人的标签可以是父亲,也可以是儿子,也可以是朋友
- 属性(Property):是用于描述节点和关系的键值对,key是一个字符串,值可以通过任何Neo4j数据类型来表示。
- 属性是命名值,其中名称是字符串
- 属性可以被索引和约束
- 可以多个属性创建复合索引
- 关系(Relationship):同样的图数据库的基本元素,当数据库中已经存在节点后,需要将节点连接起来构成图。关系就是用来连接两个节点,关系也称为图论中的"边",关系和节点一样可以由多个属性,但是只能有一个类型(Type)
- 标签(Lable):是将一个公共名称与一组节点或者关系相连,我们可以为现有的节点或关系中添加标签也可以删除标签
- 数据浏览器(后面更新部署安装的时候再说)
文章来源地址https://www.toymoban.com/news/detail-836656.html
Neo4j的使用场景
- 欺诈检测,比如你接到某个陌生电话或者陌生短信,就会收到官方的防欺诈提醒通知
- 实时推荐引擎
- 知识图谱
到了这里,关于图数据库Neo4j简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!