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

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

7.5.1图形数据库-1在线视频

下一节:7.5.2图形数据库-2

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

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

我们这一节来学习

图形数据库相关的概念

图形数据库的概念

图形数据库的模型

以及我们Neo4j图形数据库以及它的相关数据类型

好第一个我们图形数据库的基本概念

实际上我们现在的

互联网+社交网络和智能推荐等等

这种大规模的兴起和繁荣

我们直接寻找直接朋友或者

寻找朋友的朋友的这些便利查询

实际上这些都是要用到我们的图数据库

还有图数据库的起源

就是我们欧拉和我们的

图理论是基于图的这种数据库

以图数据结构存储查询数据

可以模拟节点和边的体现来处理键值对

还有我们图的特征应该是每一个图

都包括节点和边节点上有属性

还有边上有名字和方向

我们每一个边上有开始节点结束节点

边上也可以有属性图是顶点和边的

一个集合活着图是一些节点和关联的

一些集合好下面我们看一下图元素的组成

我们看下面我们给一个一个图

永基来表示他身上有V和E V是我们的节点集合

E是边的集合节点和关系属性

我每一个节点上可能有多个标签

有些类别一个属性图是由顶点

边标签这样还有关系的类型和属性来组成的

实际上这个图的基础上我们对节点边

节点和边之间是有关联的

定点也就是我们的节点

边就是我们的关系

实际上这样子组成了节点和关系的

一个实体节点是我们可以

对节点的设置标签

相同的标签都属于一个分组或者集合

有几个节点实际上他的属性之是相同的

我们就可以这些个点作为一个集合

不同的性质可以作为不同的集合

关系是通过关系类型来分断的

类型相同的关系可以属于同一个集合关系

而且是可以有方向的

完了

我们图数据库可以处理大量的

复杂的 互联的 多变的

网状数据适合于我们的

社交网络实时推荐银行交易环路

还有金融征信系统等等

这些领域的应用

我们来一起看一下图的数据模型

首先图是一个二元关系

这个二元关系我们看一下有一系列

线箭头连接起来的节点实际上我们看一下

这一个图中两个节点通过一个有线的

有箭头的线连接起来实际上组成

一个节点和边的一个二元关系

完了我们有有像图

这个结点的连线是有方向的

我们有节点集合弧的集合

也就是说有节点还有每个连的方向的图

结点的有序对

我们的弧我们U V表示弧

我们看一下V可以是弧的

头部U就是弧的尾部

我们从某个节点通过自身的弧叫做自还

比如说我们u到u实际上就是一个自还

我们U到V U是我们的前导V时优的后继

完了

图的各个节点附加一个标号

我们标号是要绘制中所有的节点

放在节点附近的这个就是说

对所有有向图里头我没有

头部尾部或者叫前导后继而且

每一个节点还对应相关的

标号把它标识出来我们的

路径就是一系列节点比如说我们从v1到vk

我们是一个路径说明我们可以从v1

通过v2 v3一直到weekl一条路径

这个路径的长度就是k减一

是经过了这个弧的数量

好我们可以有环图和无环图

我们这个环路实际上是起点和终点

是同一点的长度不为零的路径

就叫环路实际上我们都知道起点比说从v1起点

我们最后通过yy最后又回到v1

这样子就是一个环

这个环的长度要求长度不为零的才是环路

五环路的长度实际上就等于路径的长度

还路的起点和终点可以使

其中的任何一个节检

如果所有的节点只出现一次

除了我们的起点和终点以外

只出现一次就是一个简单的环路

如果有的节点出现了三次或者三次以上

就是可能有嵌套的环路比如说我们V出现了三次

相当于有两至少有两个环存在的

我们刚才说过了如果某个未知外的

节点U也出现了两次证明这个环里头有看透了其他

另外的环路下面我们的数据模型

看一下图的数据模型

里头图的实现有两种

一种是邻接表的方式

邻接表的方式

我们在我们这个这一页的左下角

我看一下图五个节点某个节点

我们就是持五乘五的一个矩阵

实际上如果两个节点不存在路径

我们这个是个有向图他的

距离就是无穷大如果存在路径

实际上从V0到V1存在路径

他就是我们的路径上的值

如果不存在就是无穷大这就是邻接表

邻接矩阵的方式来存储

这个图的一些相关信息

我们的右下角实际上是一个邻接表的方式

每个节点就把他拉出去

如果和另外一个邻接就把他拉出去

把它连接起来这个图的应用又包括我们的

最短路径啊可达几个种搜索算法

实际上这个我们在后头会讲到为我们的图的

一些应用提供很多理论的基础

用这些理论可以解决很多我们实际的问题

图的数我们看一下节点集合连接节点之间的关系

节点集实际上就是我们的节点的一个集合

连接节点的关系是图形数据库里

特有的每个节点要具有标示自己所属

实体类型的一个标签也要有所属的节点集

并记录一系列描述这些节点的属性

通过关系来链接各个节点

各个节点的抽象实际上与我们关系数据库的

各个表的抽象是有点类似的

我们下面来看一下这个图

这个图我们是两类实体

一类是一个电影实体

一类是一个人的实体实际上这两个节点就代表了两类

而且这里边我们每一个节点

我们实际上这几点我们就有名字实际上就是我们的标识

只要在这两类节点之间有不同的关系

如果这个电影和人如果这个人是演员的话

实际上是这个演员要演这个电影

如果这个电影和这个人联系起来是

导演的话实际上就是导演

导演要导这个电影所以说这个是不同的关系

我们看一下这个图型数据库里头我们可以

属性节点的节点可以分类

就根据它的名称分类我们电影是一类人是一类

还有节点之间的关系

我们可以通过不同的关系有分成不同的类

可以人演电影还有这个导演要导这个电影

所以说这个就是不同的类型不同的关系

下面我们来看一下我们这个

Neoc4j这个数据库图形数据库对应的这个

相关的一些特征和它的数据模型

这个数据库是一个用开源java

实现的图书据库有两种运行方式

一种就是服务的方式就是对外提供一些接口

可以直接用这些数据库

另外一种是用嵌入式的方式

文件的形式放在本地直接对本地文件进行操作

而且它是一个高性能的一个nosql的图形数据库

他讲结构化数据存储存储在网络上

还不是在表格上是用图的方式存储在网络中

我们可以看成是一个高性能的一个图引擎

具有我们成熟数据库的所有特征

而且我们引用的时间任何一个程序员

在一个面向对象灵活的

网络结构下来进行工作不是像我们在

关系数据库我们所有执行的适用的

是静态的表格这样子实际上我们就对我们的

工作又带来很大的好处

接下来我们看一下这个图数据库的一些相关特点

第一个特点比如说他又是嵌入式高兴而且轻量级

这样子实际上在我们的日常应用也越来越发挥大的

受到关注

第二个他是一个包含两种基本类型

一种就是节点一种就是关系

我们刚才说了结点实际上按照不同的

类可以分很多的类关系也是按照不同的

可以分很多的类节点和关系实际上都是

我们用键值队的形式来进行存储的每一个节点

我们给他定义一个键对应一个值

和每一个关系我们定义一个键对应一个值

我们节点通过关系所定义的关联连接起来

形成我们整个数据库的网络结构

好 我们看一下查询语言这个图数据库提供的

查询语言schema

schema实际上它是在我们的

Cypher数据查询语言上扩展而来的

可以满足任何形式的一个需求

而且对于高度关联的数据的查询 速度快 而且踏实

实体和关系的结构非常自然的贴合人们的

直观感受而且兼容我们的

实务的原子性一致性

隔离性和持久性原则的一个实务操作

而且他有一个高可用的模型这是大规模数据量的查询

支持备份数据局部性以及用余性

还提供了一个可置换的平台

下面我们来看一下我们

这个数据库的数据模型

首先每一个实体都有一个id

每个节点都有一个标签

每个关系都有唯一的类型

这个就是实体还有每个实体都直接使节点和关系

每个实体都有零个 一个或者多个属性

每个关系都只有一个类型连接两个节点

还有路径我们定义从起始节点的终止节点

标记是一个非空的字符串我们用标签来定义

标签我们来记录标记的数据的分组

还有关系类型由于标记关系的类型

我们看一下下面

我们的属性键

我们的这个键值实际上我们是通过一个键来定义的

而且属性值可以使任何类型

键是唯一的值可以是任何的类型

我们这边有一个模型表在我右下角的这个图上

我们看一下这个对应的数据库的模型

我们在模型有我们看一下有三个节点

三个节点它有和两个关系

三个节点我看一下三个节点有

Person人和电影实际上是两类

两类节点仍是一类是一类我们的节点

三个节点时间就是分成两类

我们的关系两个关系也是有两类

一类是导演关系一类是演员的关系

所以说我们看他的标签对人来说我们的演员

和导演对应的都是一个人的这一类

这一类我们需要的属性都是名字和他的出生年月

下面对电影这一类这个实体

我们对应的是他的电影的名字和电影是什么时间发行的

所以说这个实体我们看一下实体

包括节点关系标签以及这些

我们下面对这些所有的详细东西给大家做一个列表

在这里这个图为基础

我们看一下实体就是有三个

有三个名字 一个演员 一个导演一个

电影的名字完了以后对应它的属性

就是人是他的出生年月

电影是哪年发行的关系

我们有两类

一类是演员关系

一类是我们的导演关系

标签我们看一下图上的标签

我们对应有相同的我们就是

标签一样的人都是出生年月和他的名字

但是电影我们就是他的电影名和他的

这个发行时间所以标签是不一样

每个节点的标签是不一样的

属性就是一个键值对实际上我们对人有两个属性

电影也有两个属性关系是有两个

一个是扮演一个是导演便利事项

我们可以从一个图形是一个有向图

我们可以找找实际上便利是从图的

某一个节点开始

我们来找找过整个店里过程

下面我们来总结一下

我们给定的右边的这个图实际上我们来看一下实体

我们这个实体有五个

关系实体之间我们用蓝色的线画出来的

标签每一个上边我们就有标签

我们的方框是对你的标签

我们的属性这边没写可以

用不同的方式来定义比如说是人

我们有人的属性

对实体我们要有人 书和电影

所以说我们人是用人的一些相关的信息

书是用书的信息

电影是用电影的信息

这些都有不同的标签

完了以后我们还可以就是生成一遍历

我们从比如说我们从爱丽丝可以找包裹

可以抱着爱丽丝对

一直可以打这个电影都可以生成一些

遍历的一些路径这个就是整个我们

图形数据库 数据模型

要表达的所有信息

好本节学习到此结束

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

第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.1图形数据库-1笔记与讨论

也许你还感兴趣的课程:

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