相关文章

neo4j 图数据库初步调研 三元组、属性图、图模型、超图、RDF

demo项目(python+vue)

本文目录

  • 相关文章
  • 一、技术关键字
  • 二、前言
  • 三、图数据库与传统数据库
    • 1.反规范化
    • 2.深度查询性能对比
    • 3.实体
      • 1)关系型数据库实体
      • 2)图数据库实体
    • 4.属性
      • 1)关系型数据库实体属性
      • 2)图数据库实体属性
    • 5.类型
      • 1)关系型数据库类型
      • 2)图数据库类型
    • 6.关系
      • 1)关系型数据库关系
      • 2)图数据库关系
    • 7.其他
      • 1)域
      • 2)值

一、技术关键字

neo4j

二、前言

因公司需要,本人对图数据库进行调研,最终决定使用python+neo4j进行初始项目简单搭建。
本人为前端开发,因公司业务,进行技术调研,部分博文内容与后端实际不符,请见谅。
本博文主要介绍neo4j,语法与py2neo使用等将在后续逐步完善并发布。

三、图数据库与传统数据库

图数据库与传统数据库最大不同是,字段是“自由”的,每个字段(除id)都是可以随意增减的,以人为例:

1.反规范化

为了让关系型数据库在处理常规应用请求时表现良好,我们不得不抹去领域真正的样子,而去接受我们修改用户数据模型是为了适应数据库引擎而不是用户者现实,这种技术叫做反规范化。

人们为了获得查询性能,反规范化在某些情况下,会人为地制造重复数据。就拿用户和他们的联系方式来说:一个用户可能拥有多个手机号或邮箱,在标准数据模型中,我们可能需要把联系方式单独建表来存储单用户多手机号的情况,亦或者选定一个手机号将其存入用户库的phoneNum字段,但在图数据库中,此类数据可以存为某个用户节点的属性亦或用户节点的附属节点

2.深度查询性能对比

图模型在处理加权路径规划(例如导航规划),处理实体关系模型(例如社交网络为主的FaceBook等)都较为优势,对于图模型来说,多条件查询不再是对于数据库全量数据的对比,而是每次筛选有效数据,如同过滤塞一样,将数据塞出来
在关系型数据库和neo4j中寻找扩展朋友的性能对比(查询朋友的朋友,朋友的朋友的朋友等等)

深度 关系型数据库的执行时间(s) Neo4j的执行时间(s) 返回的记录条数
2 0.016 0.01 ~2500
3 30.267 0.168 ~110 000
4 1543.505 1.359 ~600 000
5 未完成 2.132 ~800 000

3.实体

实体是对客观个体的抽象,一个人、一部电影、一句话都可以看作是一个实体。例如:张三与李四均有姓名,年龄,身份证号,住址等字段,根据业务配上车辆,房产字段(假如车、房 数据只入库一条)那么:

1)关系型数据库实体

传统关系型数据库中则其模型如下

身份证 姓名 年龄 住址

但是当数据落库时,并不一定是按照全量数据落库的,即业务实际场景中数据为:

身份证 姓名 年龄 住址
1 张三 20 公司 null null
2 李四 50 家里 京A00001 天安门

由此可见当数据为空时,也会有null占位数据

2)图数据库实体

李四 张三
{“name”:“张三”,“id”:“1”,“住址”:“公司”} {“name”:“李四”,“id”:“2”,“住址”:“家里”,“车”:“京A00001”,“房”:“天安门”}

图数据库数据属性是可以根据字段进行落库

4.属性

1)关系型数据库实体属性

对于单个数据来说,每个字段都是一个属性,与其他数据的属性根据定义来落库或关联其他库表

2)图数据库实体属性

图数据库中不仅实体有属性,实体与其他实体之间的关系也是有属性的,如下图:
(张三)-[借钱]->(李四)
其中不仅有来源(start),去向(end),关系(type),
也有对于这段关系的描述num,借的100
根据业务,也可以增加其他相关属性,例如借出时间,付款方式等等等等,而无需与其他数据进行关联

5.类型

类型是对具有相同特点或属性的实体集合的抽象。
举例:张三李四都属于人类型,中国美国都属于国家类型

1)关系型数据库类型

根据类型落库,即人落人库,国落国库

身份证 姓名 年龄 住址
1 张三 20 公司 null null
2 李四 50 家里 京A00001 天安门
国家代码 国家名 首都 人口 面积
CHN 中国 北京 14.13亿 陆地面积约960万平方公里,水域面积约470多万平方公里
USA 美国 华盛顿哥伦比亚特区 3.3亿人 963万平方公里

2)图数据库类型

在落库后可以对已有数据进行定义类型,或者创建数据时定义,并且一条数据可以有多个类型存在
例如
李四:人,张三:人
美国:国家,中国:国家

特例:
新加坡:国家,城市

李四 张三 美国 中国 新加坡

新加坡在数据上既是国家又是城市,同时拥有两种数据类型

6.关系

关系是实体与实体之间关系的抽象,例如: 张三→属于→中国

1)关系型数据库关系

一般业务就是留一个字段作为处理关联(外键)

身份证 姓名 年龄 住址 国籍国家代码 朋友ID
1 张三 20 公司 null null CHN 2
2 李四 50 家里 京A00001 天安门 CHN 1
国家代码 国家名 首都 人口 面积
CHN 中国 北京 14.13亿 陆地面积约960万平方公里,水域面积约470多万平方公里
USA 美国 华盛顿哥伦比亚特区 3.3亿人 963万平方公里

当处理一对一数据、跨表数据时,是比较方便的,但是业务逻辑变更为一对多,或者多对一时,需要的工作量是比较大的

2)图数据库关系

图数据库则是定义每个数据与其他数据的关系,即可以与其他类型数据定义,也可以与本类型定义
例如
(张三)-[属于]->(中国)
(张三)-[朋友]->(李四)
(李四)-[朋友]->(张三)
(张三)-[了解]->(张三)
(张三)-[喜欢]->(张三)
(张三)-[借钱]->(李四)

如上数据结构:张三属于中国,张三和李四互为朋友,并且张三还借李四钱,张三喜欢自己,张三也了解自己(自恋,指向自己,实在没想好用什么词)

7.其他

调研期间,对于以下概念认为对于入门可以暂时不考虑(就是 本人没有想好怎么处理,忘了)

1)域

域是类型的集合,凌驾于类型之上,是对某一领域所有类型的抽象,例如:国家是对中国、美国这样实体的一种抽象,是一种类型,而一个地理位置除了国家类型之外,还包括其他类型:城市、区域、洲等等,而把这些所有类型:洲、国家、城市、区域等类型抽象起来,就形成了地理位置域。

2)值

属性的具体值,属性是key,值是value

neo4j 图数据库初步调研 图数据库与关系型数据库差异-f相关推荐

  1. neo4j 图数据库初步调研 三元组、属性图、图模型、超图、RDF-f

    相关文章 neo4j 图数据库初步调研 图数据库与关系型数据库差异 demo项目(python+vue) 本文目录 相关文章 一.技术关键字 二.前言 1.什么是图 2.反规范化 三.RDF(资源描述 ...

  2. 阿里云思维导图系列(五)阿里云关系型数据库产品全家福

    今天是初五小年,花了一天时间给阿里云关系型数据库产品整理了个思维导图全家福!

  3. mongodb数据库淘汰_MongoDB 等 NoSQL 与关系型数据库相比,有什么优缺点及适用场景?...

    利益相关:MongoDB 员工,开发 MongoDB 数据库 5 年.十年前,当 Dwight 和我开始这个后来成为 MongoDB 的项目的时候,我们绝对没有想到它今天的样子.我们只有一个信念:让开 ...

  4. 天翼云从业认证(1.3)了解数据库的概念、SQL、关系型数据库、大数据和 NoSQL 数据库

    数据库的概念 SQL 简单举例 create \ insert \ update \ delete\select WHERE\BETWEEN\IS NULL\LIKE avg\count\max gr ...

  5. Mongodb数据库(1.mongodb的介绍(非关系型数据库)下载与安装(Windows10))

    1. MongoDB是一种非关系型数据库    (1)也就是所说的NoSQL     •NoSQL最常⻅的解释是"non-relational", "Not Only S ...

  6. 了解数据库的作用、特点及关系型数据库管理系统

    学习目标 能够知道数据库的作用数据库和数据库管理系统的关系 一.数据库 1. 数据库的介绍 数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加.修改.删除.查 ...

  7. Neo4j(一):图数据库基础

    目录 1.概述 1.1 特点 1.2 优点 1.3 缺点 1.4 Neo4j的使用场景 2.为什么需要图数据库 2.1 Google+ 2.2 Facebook 3.数据模型 4.图形理论基础 5. ...

  8. 图数据库:从传统关系型数据库说起

    1.数据库 按照早期的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库.网状数据库和关系型数据库.而在当今的互联网中,最常见的数据库模型主要是两种,即SQL关系型数据库和NoSQL非关系型数 ...

  9. 中秋邀请共赏图数据库-蚂蚁集团图数据TuGraph 正式开源

    目录 前言 1.五道口+蚂蚁集团的系统长什么样 2.性能拉满,能抗能打 优点: 缺点: 一.TuGraph,比关系数据库更懂关系 1.更懂关系的图数据TuGraph 2.图数据发展的三个阶段 2.1第 ...

最新文章

  1. Matlab计算速度优化(矩阵,bsxfun,repmat)
  2. 文献记录(part78)--Structure-Constrained Low-Rank Representation
  3. IDC:第一季度全球服务器市场收入下滑4.6% 市场为重大升级做准备
  4. LeetCode 889. 已知前序后序 求二叉树(不唯一)
  5. 抢红包概率是随机的吗_顺丰发5亿红包给员工:管理学的随机奖励还能这么玩...
  6. ROS学习笔记4(编译一个ROS Package)
  7. react native 组件汇总整理,点击链接至GitHub
  8. linux yum未找到命令,解决yum命令失效,vim: command not found
  9. 数据架构总体设计方案
  10. POI复制Excel模板并填充数据
  11. python读取grd数据_ARWpost处理后的grd数据使用fortran来读取
  12. java queue GATK_gatk4使用总结
  13. 计算机安全常用防护策略,新手必看
  14. Win10怎么进Bios Win10系统进入BIOS界面的方法图文详解
  15. 采用顺序存储实现队列的初始化、入队、出队操作。/验证实验/
  16. 【编程马拉松】【011-鸽兔同校】
  17. 【Rust日报】 2019-04-27
  18. 做旅游的就要有驴子精神
  19. 双色球中奖概率(彩市有风险,需谨慎投注!)
  20. 【渝粤题库】陕西师范大学201961 中外教育管理史 作业(专升本)

热门文章

  1. 再论人与人的三大关系:生存关系、性关系和经济关系
  2. DS1302驱动根据数据手册编写
  3. 人脸识别门禁为何倍受青睐?
  4. mysql组合字段语句_mysql group_concat 使用 (按分组组合字段)
  5. 量化交易接口怎么自动选股票?
  6. 用机器学习计算工作技能匹配度
  7. 应用第二代测序技术的转录组组装
  8. C++ 栈的括号匹配
  9. 理解boot menu
  10. CF975C Valhalla Siege 题解