当前课程知识点:数据库系统原理与开发 >  第7章 NoSQL数据库技术 >  7.5 图形数据库 >  7.5.2图形数据库-2

返回《数据库系统原理与开发》慕课在线视频课程列表

7.5.2图形数据库-2在线视频

下一节:7.5.3 图形数据库-3

返回《数据库系统原理与开发》慕课在线视频列表

7.5.2图形数据库-2课程教案、知识点、字幕

好 我们今天开始学习图形数据库的存储结构

整个包括两方面的内容

一个Neo4j的一个图存储结构

和我们图形数据库的一个集群结构

首先来看一下我们

这个图形数据库的存储结构

我们来回顾一下图形数据库的

相关的几个核心的概念

第一个概念是我们的结点

在图形数据库里头结点的含义是图的

最基本的单位和关系都包含属性

这个关系和节点可以使用到多个标签

这个时间节点就类似于我们的地图上一个站点

下面一个关系就类似于

我们两个地铁站之间的一些线路

实际上就是我们连接节点就是

一个开始和一个结束就是关系

而且关系是有方向的

有进和出就是前进后续

这个要把它标示出来还有一个就是属性

属性就相当于我们这个对节点的

一些信息的描述

在这里我们用地铁站是节点的

话可以地铁站的名字位置大小进出口数量等等

还有属性可以节点和关系都可以拥有

有或者是多个属性 属性的类型实际上

和我们的所有java的数据类型是一致的

数值可以有字符串布尔或者是其他的

但是字段名名称就必须是字符串

另外一个我们的核心概念是标签

标签实际上就是像我们刚才说的

地铁站是节点的话标签就回来标示

这个地铁站是属于哪一个区

是通过形容一种角色或者给节点加一种类型

一个节点可以多个类型标签就是在给属性

建立索引或者约束的时候

会用到像刚才我们的不同的节点

就可以有不同的标签

便利就是像我们找路径实际上是查询

我们所有图找一个可行的

路径就是有一个开始节点

遍历相关的路径当然就是这个节点

我们要走的通走到下一个节点别离

相关路径上的节点和关系得到我们最终的一个结果

路径其实就是刚才我们便利的

结果从一站一站把它联系起来这一个活动

多个节点通过关系连接起来的一个产物

下一个概念式的模式就类似我们存储数据的结构

我们这边的数据实验室没有定义模式的

就是通过图谱数据库建立一个通过图的方式

用图论的一些结构来存储这些数据索引

实际上是指向我们因为如果数据量很大的话

这样遍历我们整个图都非常慢

所以说需要我们在后台建立索引

这样建立索引就会加快我们查询的速度

也是在我们遍历的过程会使我们的遍历更有效

还有一个约束这个就是定义在某一个字段上

显示字段值的唯一我们可以通过约束来

创建自动创建索引

好 有了这些基本的概念以后我们

来看一下它的存储结构我们的节点和关系

他们的性质我们刚才说了他们的

属性都是用一个键值的双向列表来保存的

就刚才我说对节点来说我们有他的属性

对关系来说我们也有它的属性

这些属性就通过一个键值对

有双向链表把它表示出来

我们的节点的关系也是一个双向链表

这个每一个节点可能和其他几个节点相连的

我们就把它连接起来通过一个链表一个节点

比如说一个节点和三个节点相连

我们也通过对这个节点建立

一个三个节点的双向链表

这样就可以找出关系的前倒和后继的

节点就是从哪个节点出到哪个节点进来

还有个节点保存第一个属性和第一个关系的ID

图的存储结构我们看一下包括了几类文件

我们下面一个一个来看一下这几类文件相关的内容

第一个就是我们存储节点的文件纯属节点的

数据节点的标号以及节点的序列号

包括我们存储节点的数组数字的下标

还有他的这些下标里边有数据即这个节点的ID

最大的ID或者是已经被释放的ID

都把它存在实际上是一个数组的

结构把节点存储起来

下面我们存储我们关系的文件存储关系

实际上关系数据关系主数据还有关系的类型

还有关系类型数组数据关系类型

名称以及序列的ID包括我们关系有多少个

而且关系的分组还有组里头有

多少个关系组的类型

还有相关的ID都要把它存储起来

再一个就是我们的标识标号label我们存储

我们的标识文件 这个标识文件就包括

我们标识的数据名字数据序列号

以及标识我们这些所有对应的标号的

数组名称的数组和相关的一些ID信息

都要把它存起来还有存储我们属性的

文件属性数据包括我们属性的数据类型

所以以及对应的序列的id

包括我们的属性数据属性的键值对的

数据属性数组的数据属性结构的数据

还有对应的索引数据等等

也是我们必须要存储的另外一个

当然就是还有其他的一些文件版本啊日志

所以说这个存储结构里头

就存储我们的节点数据存储我们的

关系数据存储我们的标记数据

标识数据存储我们的属性数据

和其他的一些信息数据有五类的存储文件

必须把来表示整个图形数据模型

好 这边的存储结构实际上我们对

刚才做一个我们右边这个图给出来了

每一个图上我们看出了节点

节点上头我每一个节点有相关的属性

要存储这些我们关系而一个关系

上头也有我们相关的属性关系

也有关系的类型这些都要把它存储下来

我们所有的访问都是通过我们的ID作为下标

这样可以进行快速的定位

因为我们一旦找到第一个节点以后我们所有的

节点都有对应他相关节点的存储

这样子实际上就不用索引

到第一个阶段时间用索引后边的

节点可以通过这些连接的关系直接就找到了

实际上我们可以实现我们不用引后

就可以快速的找到其他的信息

我们接下来说我们图数据库的一些集群结构

我们下面讨论一下集群的方式

我们对应的集群方式有两种

一种就是高可用的方式

另外一种就是可以恢复的一种方式

我们集群的一个特点就是高吞吐率可以持续

可靠性 可以通过集群进行灾难恢复

第一种方式我们看一下它就是要有

一个核心服务器实际上就可以用我们组队的

方式是一样的处理读者操作

大多数的还是服务器主要处理写操作

一个或多个读复制服务器

只读的实例这个意思就是说

我们实际上在核心服务器上对写这些操作

其他的服务器上进行独的操作

这样可以提高我们系统的响应性能

所有的数据更新都是在核心

服务器上进行更新

更新完以后是现在发布到

其他的一些服务器上头高可用性的这种

集群实际上是有三台服务器组成

就是要有至少一个主服务器

两个从服务器主服务器完成写入之后

同步数据到从服务器

主服务器即可以写也可以读

从服务器上只能读

这种高可用的可用于我们全天候的正常的

运用实际上我们在这个图像数据库用的

最多的就是我们高可用性这种集群的方式

虽然这种集群的方式就是我们

刚才说过至少有一个主服务器

和多个从服务器这个底下的地图展示了

有三个节点组成了从的一个集群

是一个高可用性的一个例子

我们最下边的一个是我们的主服务器

前面上面两个是我们的从服务器所有的

写操作在我们的主服务器上做

操作完以后从服务器再同步到他

他们自己的机器上从服务器是可以提供读的操作

这样为了提高系统的性能

好下面来看一下集群的写入方式集群的

写入方式我们刚才说过了是通过主服务器完成的

数据的修改因为我们刚才说过了

图里头要存储节点存储关系存储属性

和以及相关他们之间的标识

实际上它的结构有多个结构非常复杂

所以说一般来说都是在主服务器上进行完成的

这样子所有的写操作要做到完整一致就非常复杂

完了以后我们在整个数据库内部有一个写队列

所有的写入操作暂时写在缓冲区里头

实际上这样子就可以能够处理突然

来到大连的写操作这样我们所有的

写好以后放到写队列里头数据库再去

管理这个写队列把这个数据到一定时间

把它写到磁盘上去所以在最坏的情况下

可能要面对大量的写入操作这样子

我们就需要考虑我们的集群

要进行纵向扩展就是我们要增加我们的CPU

增加我们的组存增加系统的响应能力

好 我们数据的

写方式过后我们看一下读取方式

因为数据的读取方式我们只读不修改数据

所以说读的时间可以从任集群的

任何一个节点来进行读

而且我们也是一样的

我们在数据库系统里头使用一个

缓冲记录我们最近访问的数据

就是说在这些缓冲区里头

保存在内存里头

保存在我们最近访问的数据

这样子

如果你访问的数据在缓冲区里头

我就直接从缓冲区拿出来

不用打外传去访问也是为了提高系统的

快速响应请求量比较大的时间也是可以

很大程度的提高响应的速度

这种方式实现我们所有的就是这种

提供的这种方式实际上就是在要

在系统里头开辟一个缓冲当中

有个缓冲实际上我们所有的响应就是

通过一个用户发来请求来进行响应的

下面我们看一下集群管理方式

管理上实际上我们有一个集群的

管理器来负责我们集群中各个实例的状态

并监控如果有集群中有哪些节点

加入进来了哪些节点离开了我们来

而且还负责维护我们选举

如果master出错了我们还负责

维护在选举新的master出来

所以启动的时间我们所有的数据库实例

首先要加入到配置文件里头标明的集群

如果集群存在就把它当成一个

从服务器加入如果这个集群不存在

实际上我们就把自己master

建一个集群实际上就通过集群的

管理器来完成的

下面一个方面集群的容错机制

容错机制把使用时间在集训中

一个实例失效了

我们就要对这个集群中也很快的

在短时间内能够谈扯到他失效了

失效了以后我们要恢复

要进行数据的同步

实际上我们如果是主服务器失效了

要通过选举选出新的服务器

如果是其他的从服务器示失效了

我们一定要判定要找到它失效

要把它从整个集群中去除

而且如果他要恢复到过来的时间

我们还要把数据同步到他

恢复的状态上去

所以说在Cluster Management的这个组成帮助下

我们可以创建一个就全局的一个集群

这个全局的一个集群

我们就有一个master集群多个从集群

然后我们的写入就通过master集群来写所有的

从集群来负责我们

所有的独操作这个实际上意思就是说

我们集群的组成是一个集群

我们现在可以把多个集群再组成集群

形成多级的这种管理

来实现集群的容错来保证提供可靠的服务

提供更好的性能

好 这个就是本节要学习的内容

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

7.5.2图形数据库-2笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。