这是小小本周的第四篇,这篇将会介绍一款数据库。不同于关系型数据库的数据库。

今日打卡

小小待在北京,北京于近日下雨了。不过还好,小小情绪稳定,生活继续。

介绍

今日出场的是图数据库,图数据库的使用领域主要有 社交领域:用来管理社交关系,实现好友推荐。零售领域:实现商品实时推荐,给买家更好的购物体验。金融领域:用来做风控处理。汽车制造领域:用来推动制造解决方案。电信领域:用来管理网络,控制访问并支持客户。酒店领域:用来管理复杂且快速变化的库存。

图数据库

图由两个元素组成,分别为节点和关系。每个节点代表一个实体,每个关系代表两个节点的关联方式,通过这种方式,可以实现对各种场景的建模,

图数据库

图数据库是指以图的这种数据结构进行存储和查询数据。图数据库是一种在线的数据库管理系统,具有处理图形数据建模的创建,读取更新和删除操作。图数据库最重要的是关系,其应用程序不需要使用外键处理数据库连接。关系型数据库和NoSql相比,更简单。

重要属性

图数据库有两个关键的属性,分别为图存储和图处理引擎

图存储

一些图数据库使用原声图保存,这类保存是经过优化,经过专门的的为了保存和管理图设计,并不是所有的图数据库都使用原声保存,也有一部分是虚拟化,然后保存在数据库中。这类比较著名的是Neo3J

图处理引擎

原生图处理,是处理图数据的最有效方法,连接的节点都在数据库中物理的指向。

与NoSql对比

与关系型数据库对比

一个例子,一个数据库中有几张用户,订单,商品表,关系如下当要查询,用户购买了哪些商品,或者改商品有哪些客户购买过,需要开发人员join。而图数据库可以相当简单的实现查询该产品的客户还购买了哪些商品。

关系查询性能对比

Neo4J

Neo4J是由Java实现的开源图数据库。自2003年开始开发,直到2007年正式发布第一版,并托管于GitHub上。

Neo4J支持ACID,集群、备份和故障转移。目前Neo4J最新版本为3.5,分为社区版和企业版,社区版只支持单机部署,功能受限。企业版支持主从复制和读写分离,包含可视化管理工具。

JanusGraph

JanusGraph是一个Linux基金会下开源的分布式图数据库。JanusGraph支持多种存储后端,支持多种可以使用的技术,通用的Apache,通过与大数据平台可以联合使用,通过外部索引可以直接查询。

标记属性图模型

节点

  1. 节点是主要的数据元素

  2. 节点通过关系连接到其他节点。

  3. 节点可以具有一个或多个属性,

  4. 节点有一个或多个标签,用于描述其在图表中的作用。

关系

  1. 关系连接两个节点。

  2. 关系具有方向。

  3. 节点直接可以有递归关系。

  4. 关系可以有一个或多个属性。

属性

  1. 属性是命名值,其中名称是字符串。

  2. 属性可以被索引和约束。

  3. 可以重多个属性创建符合索引。

标签

  1. 标签用于把节点分组。

  2. 一个节点可以具有多个标签。

  3. 对标签可以进行索引加速在图中查找节点

  4. 本机标签针对速度进行优化。

查询语言 Cypher

需要查询joe的二度好友

   MATCH(person:Person)-[:KNOWS]-(friend:Person)-[:KNOWS]-(foaf:Person)WHEREperson.name = "Joe"AND NOT (person)-[:KNOWS]-(foaf)RETURNfoaf

Joe认识Bob,和sally,这是一度好友,sally认识anna这是二度好友,所以anna为joe的二度好友。

小小

你若不笑,我将会深情的等待,你若笑了,我也将会笑,我是小小,在这等你,我们下期再见。

小明菜市场

知道 | 同学,你都了解关系型数据库,确定不了解一下这种数据库吗?相关推荐

  1. 你都是会点啥技术(五)--- 数据库

    你都是会点啥技术(五)- 数据库 写在前面的话:还记得2018年的时候开发的项目上线,经过大概一个月,因为数据量增加,造成项目查询页面的延迟,因为项目使用的群体是固定的,所以当时提出来后并没有着力解决 ...

  2. 同学大多数都是上的整个网站重点我的

    在大家喝酒时,杨提了一个问题:请大家说出一个自己最想达到的目标.hongjin2的桂中同学大多数都是上的整个网站重点我的,此时局域网三年了,大家都对社会对生活有了自己的认识,于是就有了各种不同的答案, ...

  3. oracle数据库运维一般做什么,数据库运维都做些什么呢?

    本篇文章讲述如何大家轻松认知到数据库运维都做些什么,其中有许多小细节,所以请大家仔细阅读哦~ 一. 数据库生命周期 结合软件生命周期.项目的开展,数据库的生命周期大致可分为这么几个阶段. 1. 规划计 ...

  4. mysql创建的数据库都在哪里看_mysql 怎么查看创建的数据库和表

    1. //看当前使用的是哪个数据库 ,如果你还没选择任何数据库,结果是NULL.mysql>select database(); +------------+ | DATABASE() | +- ...

  5. 分布式数据库实战第七节 分布式数据库的现状与未来

    24 现状解读:分布式数据库的最新发展情况 你好,恭喜你坚持到了课程的最后一讲. 上一讲,我们探讨了实现数据库中间件的几种技术,包括全局唯一主键.分片策略和跨分片查询,其中最重要的就是分布式事务,希望 ...

  6. endnote初始化数据库支持_服务端编程——数据库(MySQL、sequelize) - 天生笑点低你奈我何...

    一.数据库 前端发送api请求的流程 通过API发送请求,到model进行业务处理,将数据存到或在MYSQL查询,将数据一并给KOA服务器请求,最后将请求的结果返回给客户端 关系型数据库.非关系型数据 ...

  7. c/c++连接mysql数据库设置及乱码问题(vs2013连接mysql数据库,使用Mysql API操作数据库)...

    我的安装环境: (1)vs2013(32位版) (vs2013只有32位的 没有64位的,但是它可以编译出64位的程序)  : (2)mysql-5.7.15(64位) vs2013中的设置(按步骤来 ...

  8. mysql数据库基础 博客园_MySQL数据库基础

    数据库的一些概念题: DB DBMS 和DBS三者之间的关系 DBS(数据库系统) 包含DB(数据库)和DBMS(数据库管理系统) DB:是指datebase(数据库) DBS:是指datebase ...

  9. tp 数据库查询排序_怎么进行数据库分库分表?

    一,数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限.当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能仍下降严 ...

最新文章

  1. SAP 货物移动 BAPI 的简单使用 BAPI_GOODSMVT_CREATE
  2. Windows cmd命令反斜杠问题
  3. Lucene全文检索过程
  4. spring cloud微服务分布式云架构-Spring Cloud简介
  5. 表格数字乘以百分比怎么算_Excel输入多位数字之后有了“E”,用文本格式一步到位,恢复原状...
  6. Qt 的udpSocket通信
  7. java 蓝桥杯训练 数的统计
  8. assembly : maven assembly打包报错:maven to create assembly : unable to obtain archiver for extension
  9. Chrome 前端 插件
  10. python uwsgi_python nginx+uwsgi+WSGI 处理请求详解
  11. 3. 安装 phpmyadmin
  12. adb.exe可能被其他程序关闭_怎么快速的做自己小程序商城推广?
  13. 私密智能搜题小助手,支持智能图片识别和智能复制,支持多接口
  14. 独立主机配置FTP,解析域名经历
  15. Android批量打包-如何一秒内打完几百个apk渠道包
  16. 传奇关于首饰盒装备系统“十二生肖”“五行八卦”等脚本实例
  17. [Power Query] 分组依据
  18. StopWatch简单使用
  19. 初识python五大特点
  20. CA、根证书、数字证书、数字证书颁发的流程

热门文章

  1. 多线程编程-工具篇-BlockingQueue
  2. 找出数组中只出现一次的数
  3. 微软阵营企稳的利好消息:.NET开源、Visual Studio免费
  4. iOS学习之 plist文件的读写
  5. Skype For Asterisk 的安装及使用
  6. 成为高级网络管理员必学知识
  7. IDEA对tomcat远程debug
  8. android opencv cvgetsubrect,cvGetCol与cvGetCols 获取列 cvGetSubRect获取图像的矩形区域
  9. mysql iso 时间_mysql 中 时间和日期函数
  10. yum 安装boost