【例会】图数据库Neo4j

主持人:程坤

参会老师:杨矫云

参会学生:赵春阳、李雨龙、郭思伊

时间:2019年8月22日

背景

随着社交、移动、分析和云计算等快速的发展,数据之间的关系越来越复杂,形成一张庞大的关系网,传统数据库很难处理关系运算和分析元素之间是怎样联系起来的。而且大数据行业需要处理的数据之间的关系,随数据量呈几何级数增长,所以亟需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。

社交领域:Facebook, Twitte用它来管理社交关系,实现好友推荐

零售领域:eBay,沃尔玛使用它实现商品实时推荐,带来更好的购物体验

介绍

  • Neo4j是Neo4j公司开发的图形数据库管理系统
  • 一个兼容acid的事务数据库,具有原生图存储和处理功能
  • Neo4j是一个高性能的NOSQL图形数据库,它将数据存储在网络上而不是表中。
  • The Labeled Property Graph Model

图片1

模型元素主要包括节点,边,属性,标签。

图存储

  • 节点(指向联系和属性的单向链表,neostore.nodestore.db):
  • 联系(双向链表,neostore.relationshipstore.db)

节点存储

图片2

关系存储

图片3

数据库对比

nosql

图片4

关系型数据库

图片5

Cypher

Cypher是Neo4j的图形查询语言,允许用户从图形数据库中存储和检索数据

基本CQL语句

–创建节点

CREATE (p:Person { name:”Keanu Reeves”, born:1964 })

–创建节点和关系

CREATE (p:Person{name:”kay”})-[:KNOWS]->(:Person{name:”Keanu Reeves”}) return p

–查询

match (p:Person) where p.name=”kay” return p

–或者

match (p:Person{name:”kay”}) return p

–查询关系路径

match path=(p:Person{name:”kay”})-[:KNOWS]->(p:Person) return path

–修改

match (p:Person) where p.name=”kay” set p.name=”fen” return p

–删除

match (p:Person) where p.name=”kay” delete p

–彻底删除(清空数据库,包括关系)

MATCH (n) DETACH DELETE n

anyShare分享到:
This entry was posted in 例会. Bookmark the permalink.

发表评论