当前课程知识点:数据库系统原理与开发 >  第7章 NoSQL数据库技术 >  7.4 文档型数据库 >  7.4.3文档型数据库-3

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

7.4.3文档型数据库-3在线视频

下一节:7.5.1图形数据库-1

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

7.4.3文档型数据库-3课程教案、知识点、字幕

好今天我们接着来学习

我们芒果db数据库的相关的关键特性

以及数据库的API和相关的应用场景

第一个我们芒果db的关键特性

芒果db的关键特性主要有三个

第一个就是我们的灵活动态的文档模型

第二个是高可用副本及集

第三个小芒果db的水平扩展

芒果db的集群前一讲已经讲过的

一些相关的他的分片他的路由处理配置节点

以及中财结点等等

这些都是我们集群里头必须得

下面我们对每一个特性做简单的

介绍第一个特性我们灵活动态的文档模型

我们芒果db的关系表

表示在多个文档之间的逻辑上

互相联系我们文档可以通过

嵌入式和引用来建立联络

我芒果db中的关系可以是

一对一的关系一对多的关系

多对一的关系和多对多的关系

我们下面通过一个例子来看一下

相关的这些联系是如何建立起来的

我们下面给一个我们的

一个user的简单结构

我们看一下这个user的

简单结构是一个文档

简单的一个文档结构

每一个键和对应的词我没有ID name

我们的联系信息和我们的生日信息

只要有四个键值对组成的

下面我们来看一下另外一个文档的

一个模型我们一个地址文档

这个地址文档我没有id相互对应的

对应的那栋楼我们的邮政编码

城市和我们的是这个是个地址的编码

地址的这种文档的简单文档的结构

下面我们通过嵌入的方式把用户的

地址嵌入到文档中

我们看一下这个

我们用户的文档我们首先对用户来说

我们有用户的id用户的联系信息

用我的生日用户的名字对地址来说

我们看一下我把刚才定义的

地址信息嵌入到这个

用户的文档当中实际上我们这个

是一个用户可以有多个地址

表示了一对多的这种关系可以通过

嵌入式的方式来组成这种文档

这样子可以表示很复杂的现实应用

第二种方式我们可以通过引用的方式

这种方法把用户数据文档

和用户地址数据文档分开来放

然后我们通过引用文档的ID

来建立这种联系

我们看一下这个是用引用的方式

引用的方式和刚才我们前面都

用户文档有ID联系信息联系电话生日

还有他的名字下面的地址我们是用两个

引用的方式这两个引用的方式直接引用他的

每个对象ID每一个对象ID

实际上是系统自动生成的

这样子我们直接而且ID是唯一的

通过这种引用方式

实际上在这个用户的

这个文档里头我们实际上只把他的

地址的一个相关对应的指证拿到就可以啦

还有一种应用是我们在数据库里头

直接用数据库的一些变量进行引用的

这个数字有三个这种字段的含义

一个是$ref这个是引用我们集合的名称

还有$id一个id是引用我们

对象ID还有$符号db时语音我们数据库的名称

这样子都可以作为引用的参数在我们的文档里头

进行对文本进行定义

我们看一下这个用户的一个文档信息

我们首先用户的文档

我们通过一个而不是用户的id来进行

我们这个用户用过的id号给出来

我们看这个地址引用了哪些信息呢

引用了一个就是他的地址的

对应在哪个地方存储的

我们看一下这个实际上应用了我们这个文档

是存储在address_home这个集合下

这个集合下对应的这个地址有对应了他的

objectid ID,ID完了以后我们的db是对于我们的

数据库数据库我们看是

w3cschoolcc这个数据库里头而且它对应的

这个编号ID的编号给出来了

下面对应的就是我们的联系信息生日

和相关的名字我们看到这个文档用户的

这个文档我们不但给出了它本身的

一些编码信息还给出了他在数据库里头是怎么放在哪

放在哪个集合上它对应的这个

放在哪个数据库上还有对应的ID这样

都把它定义出来这样就是说我们很灵活的找到相关的信息

好第二个我们看一下

特点是我们的芒果DB的复制原理

这个时间也是我们在集群结构里头

已经给出了相关的说明我们这边也要给出他怎么用的

复制原理怎么去配置怎么去实现

好了我们这个芒果DB的复制将数据

同步到多个服务器的一个过程

复制提供我们数据的应用与备份

我们并在多个服务器上存储我们数据的副本

我们可以提高我们数据的可用性

并且保证数据的安全性

而且还允许我们在硬件故障中或者是服务中断的情况下

我们可以用这个复制的一些

副本来恢复我们所有的数据

复制实际上是为了保证我们数据库的安全

也保证我们数据的高可用也可以进行

我们的灾难恢复而且我们还可以

进行系统的维护这些维护就不需要

我们进行停机维护而且可以在线的进行维护

而且实现我们分部是数据的读取

这个实际上复制的原理实际上就是

我们有主节点和从节点实际中主主节点

是用芒果db的进程来复制从节点

直接从主节点上

找到相关的一些数据复制到对应的从节点上

可以是一主一从或者一主多从的方式

我们客户端从所有的操作都是从主节点上进行操作

主题让人读数据操作数据

到把数据写到主节点上主节点从节点是通过

数据交互来保证数据的一致性

我们的副本集的一些特征我们就是N个节点

集群我们任何节点都可以作为主节点

所有的写操作都得在主节点上

我们实际上他如主节点出问题的话

我们可以通过它是自动故障转移自动发起

主节点和从节点之间自动发起选举选举新的

主节点来进行数据的操作并且进行自动的恢复

好 下面我们看一下我忙过db这个副本集

是怎么设置的设置的步骤

首先我们使用同一个芒果db

我们来作为芒果db的一个主从设置

我们下面来看一下设置的步骤

首先我们要启动一个名为rs0的芒果db实例

这个实际上我们用启动的方式把它启动出来

实际上这个就是下面一个命令

然后我们启动后打开命令提示框

并连接到我们芒果db服务器上

这个命令提示框实际上是在

我们需要程序底下来操作的

我们在芒果db的客户端

进行启动我们刚才设置的这个复制服务器

我们启动一个新的副本

第四步我们对通过这个复制服务器来

查看副本集的配置来查看

我们这所有副本集是现在的状态

实际上通过配置文件来看我的副本集

是现在是个什么样的状态

如果这个副本集提示已经启动了

我们可以把这个副本集添加到我们的

这个整个集群上头是让我们添加的

过程是要添加副本集的名字

还有添加相应的端口号和网络信息

添加后时间我们就可以运行这个服务

然后我们来查看我们的主节点

实际上这个所有的启动过程

就是说我们主节点启动以后

我们再来启动我们的从节点

通过配置信息把这些从节点的

信息加入到主节点里头这样子

我们整个主从就组成一个集群

所以说这个我们整个都主从的节点启动完毕

启动完毕以后实际上我们整个系统

在工作状态主节点负责所有的操作

从节点从主节点上来就出一些

数据的变化来保持数据的

一致如果出现不管是主节点出现问题

或者是其他的一个从节点出现问题

系统都会感知都会通通自动恢复自动处理

下面是我们分片技术

我们来看一下分片技术实际上也是我们集群的

一个应用方式就是我们把大的数据量在一台机器上

没有办法存储的我们可以分到其他的

一个多台机器上来进行存储对数据进行分割

我们是数据库系统的存储能力和处理性能有更高

这样子

但我们的再分片机制里头存储所有的分片数据

而且我们还要防止单点故障

这个实际上我们就必须有一个配置信息配置服务器来

记录所有的配置信息

用我们的前端路由服务器来处理我们的客户信息

后边的所有的集群看上去就像一个单一的一个数据库前端

可以透明的使用通过我们的前端通过我们的

路由服务器进入到我们的集群

集群里面我们通过我们的配置服务器找到我们相关的

数据在哪一个数据块上这样子

我们就可以直接使用整个分片了

下面我们来看一下分片怎么配置

首先也是我们分片要设置不同的片段服务器

我这边比如说我们有四个片段

每一个片段服务器对应我们不同的服务端口

我们设置我们的配置服务器和我们的路由服务器

设置好以后实际上我们第一步就是启动我们所有的

片段服务器就是这些片段服务器里头要对

我们设置我们整个片子的目录和相关的日志

第二步启动我们的配置服务器在配置服务器

里边我们把这些片的信息记录进去

第三步我们启动我们的路由服务器

第四步来配置我们所有的片段

我们芒果db提供了相关的命令

可以增加些片段删除片段

最后实际上我们整个真配着完成以后

我们整个都是一个分布式的集群信息

对客户端来说

实际上我们就直接通过路由服务器来访问我们

整个集群里发的所有信息

下面备份和恢复实际上我们的芒果db里头

提供了数据提供了不同的命令

进行数据的备份和恢复我们可以用芒果

漳浦来备份数据

用mongorestore来恢复数据

整个命令的使用方式我们要

备份数据的时间我们要备份在哪个服务器上

在哪个数据库上备份到哪个目录底下当然恢复

和备份是对应的从我们给定的

目录底下回复我们相关的数据

好接下来的问题我们芒果DB的API

我们来看一下有哪些方式来引用芒果TP

芒果DB有很多种语言

可以通过芒果db驱动来进行

对数据库进行操作

实际上语言我们有很多种CC加加等等

所有的语言都可以在安装的时间

我们选择相关的语言驱动都可以使用这些语言

还有芒果db有很多开发包就是相当于

我们可以运用这些开发包来对芒果db数据进行操作

还有一个重要的概念就是芒果db自带的shell的程序还可以用

这个shell程序建立数据库也可以操作相关的

数据库里的所有文件实际上我们

看一些简单的例子

我们可以通过shell线连接连接到芒果db服务

我们可以通过命令来创建数据库或者是引用数据库

可以通过命令来查看我们整个数据库的情况

也可以创建我们的集合也可以删除集合

当然也可以插入文档我可以用insert C5插入文档

有find来查询文档

用update来修改文档

remove来删除文档

这个就是我们的插入文档修改文档

更新文档的例子

实际上我们看一下插入文档实际上我们要把

每一个文档里头的键和值写到这里就插入进去了

我们要修改的时间要把修改的值用shell的方式

把它设置出来右上角的这个修改的语句实际上

我们就把这个title修改

我们原来是芒果db教程

修改成芒果db就可以啦

而且我还可以在一个键里边有多个值的

时间我们可以修改多个下一个问题

我们来看一下芒果DB的应用场合

第一个方面就是我们芒果DB可能使用于哪些场合

第一个实际上就是网站数据就是这些

在网站上我们可以实时的插入更新和查询

因为我们都知道网站的数据的结构非常多

我没有文本声音这些相关的数据

我们芒果DB只记一个键值其他的类型都可以

在网站上进行处理还有一个缓存

适合作为我们信息基础设施的持久化的缓存层

这个实际上就是在系统启动以后

我们芒果db可以搭建我们持久化的

缓存层避免下层的数据的数据源的一些过载

还有一个就高伸缩性我们适合有数十台或

数百台服务器组成的数据库系统

他的实际上包含而对我们MapRsduce的一些支持

对我们json数据存储的支持以及bson数据的一些支持

这些支持都非常适合于文档化格式的

存储给查询当然也有不适合的场合

比如说高度事务性处理的

系统适不适合的

比如说我们的银行系统

我们的会计系统要求我们的事务完整性

而且响应的及时性这个在芒果db是不适合的

第二种就是传统的关系数据库目前

对大量的原子性复杂性的事物应用程序

例如我们的商店里头的

我们的超市里头的这种管理系统

是不适合用芒果db的还有一个传统的

商业智能应用针对特定的问题的人工的数据库

及产生高度优化的查询方式

这种实际上是我们选择数据仓库要适合一些芒果db

是不是很适合的

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

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

第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.4.3文档型数据库-3笔记与讨论

也许你还感兴趣的课程:

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