美文网首页
图数据库——初识

图数据库——初识

作者: 柳清檀 | 来源:发表于2019-05-12 18:08 被阅读0次

图:(对问题的抽象)

  • 节点(nodes)、顶点(vertices):对象或实体
  • 节点之间的联系:边(edges)、关系(relationships)
    节点和关系相互连接构成了一个图

图论:(对实际问题建模求解)

  • 用图来表征化对象及其间的关系
  • 在图上运用数学算法求解
  • 相关领域:
研究领域 简述
社会学 SocialNetwork 人与人间的相互作用,相互影响

可以用于更好地了解人口结构、特定群体对产品的商业价值...
生物学 帮助更精确地建模和分析
计算机科学 芯片设计、网络管理、推荐系统、UML建模、依赖分析...

案例:采用路径算法,可以分析系统设计中的变化对系统其他部分带来的影响
流量问题 电信网络、天然气网络、包裹递送网络...
路径问题 路径规划:可以用于物流领域等,最优化可用路线

Dijkstra算法、A*算法
网页搜索 PageRank

原有的搜索工具是在网页上进行关键词匹配,而google不仅关注关键词,而更是对不同网页间的超链接分析。他们假定网页比搜索结果更重要,因为他们更加丰富,有大量来自其他网页的输入连接,从而可以分析网页间的连接图。

数据库

  • 导航数据库

    问题:
    -- 导航数据库模型复杂性高
    -- 缺乏一个声明式的查询机制

  • 关系数据库

    问题:
    -- 关系数据库系统受规模影响严重。
    -- 关系数据库是“反关系”的,它比图数据库更缺乏关系。应用领域中采用关系模型建模会变得更加复杂、难以处理。
    -- 不够灵活

  • NoSQL

    a. 键值存储:键和值存储为无模式数据模型,可扩展性高(Amazon-Dynamo)
    b. 列式存储:包含一个大而稀疏的表结构,包括储存键的多个列(Google-BigTable)
    c. 文档存储:文档是一个半结构化的信息单元,可以是XML、JSON...储存和检索的方式都是无模式方式(MongoDB)
    d. 图数据库:提供一种用于管理结构复杂、网状分布的数据。(Neo4j)


NoSQL数据库本质上依据对关系的不同方法分类:

  • 聚合存储(键值存储、列式存储、文档存储)
    基于一个单一的、丰富的、紧耦合的数据结构,放松了事务性和一致性要求,以提高可扩展性,更关注规模。

  • 图数据库
    存储粒度更细,表现力更丰富,支持更复杂的查询,解决连接爆炸问题。
    什么时候用图数据库,什么时候不用?
    真实世界不同于关系型数据库背后的表模型,它是更丰富且充满关联的,有些部分是统一而有规则的,而其它部分确实特殊而不规则的。

  • 适用场合:
    -- 路经查询:查找不同数据元素之间是怎样相互关联的(不同节点之间查找路路径)。在图数据库中,这种查询更有优势是因为它不需要知道路径的结构而只是需要明确算法、起始节点、终止节点,系统就能自动完成查询。

    -- 实时数据的点击流查询

    -- 复杂查询:包含大量的复杂连接操作,这些连接操作将随着表的数量呈指数增长,即使是小数据集也可能构成一个无法解决的问题。而在图数据库中,不再存在连接操作,我们需要做的就是再图数据库中通过索引查找一个起始节点,然后就可以使用面索引临接特性,进行节点间的跳转(也可以看作是将关系显式存储了)。模式匹配查询就是一类典型代表:我们指定一个模式并且将模式锁定在几个起点上,图数据库就可以围绕锁定的节点快速确定是否有匹配的模式,不匹配的或者不与起始节点关联的都将被自动忽略——查询的性能与数据集大小无关,更多地依赖于结果集大小

  • 非适用场合:

    -- 大集合查询:如果只是需要获取大量的数据而不需要连接操作或是聚合运算,那么关系型数据库在性能上会更高,用图数据库的优势很小,甚至会是负面的影响。

    -- 简单聚合查询:简单查询中,读写聚合数据通常用图处理非常低效。

    -- 图的全局操作:例如查找一个图的中心、发现节点间未知的关系模式这些是从全局的角度研究一个图,通常需要另一类工具:图处理引擎、图计算引擎等等(OLTP-图数据库;OLAP-图计算引擎)

图数据库适合于复杂性的局部查询(随着数据集的不断增大,关系型数据库处理密集连接查询的性能会随之变差,但是图数据库却趋于保持不变,因为查询只与图的一部分相关),但是效率并没有关系型数据库高,所以随着复杂度的降低和问题的简单化,图数据库效率低的弱点将暴露。


图数据库管理系统(简称图数据库)

  • 特点一:底层存储
    --原生图存储:优化过的,专门为了存储和管理图设计
    --非原生图存储:将图数据序列化,保存到关系型数据库或是其他通用数据库

图结构意味着将顶点和边进行持久化的数据存储,它是以一种更自然的方式存储而不是对关系数据模型进行改造。遍历图的时候采用免索引邻接,无需再进行索引查找就可以找到相邻的节点。

  • 特点二:处理引擎
    --免索引邻接:关联节点在数据库中是物理意义上的指向彼此,适用于原生图处理。
    原生图存储的好处在于它是专门为性能和扩展性设计的,与之对应的非原生图存储好处在于他建立于一个非常成熟的非图后端,可能开发人员更加熟悉;原声图处理的好处在于遍历查询时性能优势大,但是劣势是对于未使用遍历的查询会比较困难,并且需要占用较大的内存

图计算引擎

图计算引擎技术主要应用于使用全局图算法的场景,需要扫描和批处理大规模的信息,它主要识别数据中的集群,通俗地讲,他在回答类似在一个社交网络中,平均每个人有多少联系

参考资料:
[1]《Neo4j 3.x入门经典·第二版》
[2] 书目源码:Learning-Neo4j-3x-Second-Edition
[3] 书目源码:图数据库
[4]《图数据库·第二版》
[5]《算法导论》
[6]《离散数学》

相关文章

  • 图数据库——初识

    图:(对问题的抽象) 节点(nodes)、顶点(vertices):对象或实体 节点之间的联系:边(edges)、...

  • Oracle从入门到精通

    01 数据库技术学习准备02 初识Oracle数据库

  • MySQL数据库的安装与使用

    MySQL数据库 概要 一、初识MySQL数据库 1. 数据库的概述 <1> 数据库:Database 长期存储在...

  • Mongodb

    初识 MongoDB 数据库引擎 安装 MongoDB 数据库引擎 至MongoDB 官网下载LTS 版本(长期支...

  • 第一讲 初始数据库系统

    初识数据库系统 表(table)的理解: 数据库(Database):相互有关联关系的 Table 的集合 数据库...

  • 2018-12-07

    2.4系统数据库设计 抽象数据库表流程图抽象数据库表流程图.png抽象数据库表流程图1.png ER图ER图.pn...

  • 初识Neo4j - 图数据库

    起个头:由于涉及知识图谱的项目需要,接触到Neo4j图形数据库,就想写个笔记,做个分享,督促自己。 知识图谱: 简...

  • MySQL学习笔记(一)

    一、初识MySQL 1.1、什么是数据库 数据库 ( DataBase , 简称DB )概念 : 长期存放在计算机...

  • 图数据库和Neo4j - 关系是第一生产力的兴起

    1. 介绍 1.1 图数据库 功能 图数据库是一个主要表示联系和对联系进行操作的数据库。与普通数据库相比,图数据库...

  • MySQL5.7从入门到精通(1-5章)--MySQL的基础知识

    第1章 初识MySQL 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 数据类型 1.1...

网友评论

      本文标题:图数据库——初识

      本文链接:https://www.haomeiwen.com/subject/yqyqaqtx.html