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

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

7.4.1文档型数据库-1在线视频

下一节:7.4.2文档型数据库-2

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

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

好我们现在开始讲今天学的内容芒果db

数据库文档数据库

本节我们学习的内容有四个方面

一个是文档数据库的基本概念

芒果DB数据库模型

以及它的组成

第一个我们来看一下文档数据库的基本概念

文档是处理信息的基本单位一个文档可以很长

很复杂可以有结构也可以是无结构的

一个文档对包含的数据类型和内容可以进行自我描述

比如xml文档可以自定义标签来说明文档的内容

HTML文档

根据标签来解析文档里边相关的类型

和节省文档是java使用的一种自我描述的一个文档

嵌入式文档这个意思就是说我们在文档存储模型里头咫尺嵌套结构

就是说我们在基本文档的基本单位里头我们可以

一个键值对应的文档类型还可以是另外一个文档这样子文档

看套在其他的文档当中

每一个文档的ID都是他的唯一的一个键

ID是在一个数据库集合中唯一的所以我们

文档的排序是根据ID来进行排序的

下面我们来学习一下芒果db数据库

芒果db是一个基于分布式文件存储的一个开源的数据库系统

将数据存储成一个文档

数据结构有键值对组成每一个文档有一个键和一个直想对应组成的

字段的值可以包含其他的文档数组以及文档数组

下面我们给一个

三个例子我们看一下这个文档每一个

都是有一个键我们首先要name status还有groups

我们看name是一个单子文档,只有一个王新

status只有一个值是student groups

我们可以是一个多个文档是course,experiment两个词

每一行的存储格式都是一个

文档的名字

也是键值和一个相应对应的文档的取值

每一个文档

可以匹配所表示的实体的数据域

数据关系有两种可以用引用的方式

也可以用嵌入的方式就是在文档的值这个地方我们可以引用的方式

引用其他文档也可以嵌入一个相关的文档

写操作的是在文档,级别是原子的

没有单个写操作,对超过一个文档或者超过一个集合是原子的

这个意思就是说我们所有的操作是在文档级别进行的

我们保证在文档级别的操作可以保证原子性

其实每次操作可以完成 下面我们来看一下

芒果db数据库的特点

第一个是它的模式自由我们刚才也说过了

在文档数据库里头没有

不用我们去定义文档的格式实际上就是一个键和一个值相对应就可以了

它支持动态的查询可以用引用和嵌入式两种方式

所以说我们就可以动态的对他进行查询

而且还支持完全所以

包含内部对象每一个对象可以引用和包含其他的对象

支持复制和故障恢复这个也是芒果db数据库的一个特点

我们后边会对这个做详细的介绍

它是使用高效的二进制数据进行存储

包括对大型的对象例如视频

图像图片等等都可以用文档来表示

可以自动处理碎片

以支持云计算城市的扩展性

这个在后头我们的芒果集群的过程中我们会详细的说明

支持多种语言有很多语言的开发包支持可以

使用这些语言来对芒果db数据库进行访问

支持的文件格式BSON格式是一种加

节省的扩展方式是二进制形式的

还可以通过网络访问因为它是基于一个分布式的一个数据库系统

好下面我们来看对芒果db的数据模型进行

说明 我们看一下芒果

DB数据库里头的基本概念只有三个一个是文档

集合和数据库

我们在右下边这个图里头我们给出来她们三个之间的关系

文档是我们芒果db中数据的基本单位

最小单位

集合可以是看着没有模式的表格是多个文档组成一个集合

还有每个实例可以容纳多个独立的数据库

每个数据库有自己的集合和权限

文档集合和数据库之间的关系可以是文档是最底层的

一个集合可以包括多个文档

一个数据库也包括多个集合文档和集合是一对多的关系

集合和数据库也是一对多的关系

好我们下面来

分别对这三个概念作详细的描述第一个概念文档

文档它的存放方式是多个件及其关联的字有序的放置在一起就是文档

文档是一组键值对及它是用bson表示的

还有文档不需要设置相同的字段相同的字段也不需要只有相同的数据类型

一个文档可以包含一组字段每一个字段都是一个键值对其中建立新式制服行

值可以包含我们的字符串整数浮点数

实践出二进制等类型

或者也可以包含一个文档或者是包含一个数组的类型

下面我们来看一下文档中值的数据类型

可以是最基本的类型包括我们的字符串整数布尔型

还有双精度浮点值

我们的最大最小的键值这个是用于BSON元素最低值和最高级的一个相对比

还有也可以是数字也可以是一个多个值存储为一个键

也可以是一个时间戳这个时间戳是系统自动生成的是按照系统提供的时间戳

还可以是一个对象

用于我们内嵌文档

还可以空值也可以作为一个

文档的一个类型

还有用符号这个实际上这个符号的类型等同于我们的字符串类型

只是符号具有不同的含义

日期行 日期包括我们的年月日时分秒

还有对象ID型这个对象爱是

唯一的一个组件系统自动生成的使用来进行排序的

还有二进制数据二进制数据可以表示我们的图片声音图像video等等

还有一个代码类型

代码类型适用于在文档存储我们JavaScript代码的

这个时间可以运行的

下面还有一些正则表达式类型这个是

对一些可变的数据进行定义进行表示的

下面一个我们来解释一下单值文档和多值文档

单值文档是一个K对应一个值就像我们刚才

这个

看到我们的useRNAme是对应bbs111个QQ一个k对应一个值多字文档是

键值对多个键值对象ID,我们对另一个Object ID,name对应test,add对应china

所以这个实际上多值文档是多个键和值组成的一个文档叫多值文档

文档中的值可以在双引号里面的字符串里也可以是其他几种类型

因为我们后头会看到有嵌入式文档的出现

所以芒果db

文档不能有重复的键我们都知道键值必须唯一文档的键是字符串型的

文档中的值可以是字符串 也可以是其他的类型 或者是嵌入类型 或者是引用类型

第二个概念是我们的集合的概念

集合是把一组相关的文档放在一起组成了集合

集合的模式是自由的

就是说不用去定义集合的格式一个集合里面的文档可以是各式各样的

我们实际下边看

这个一个集合里头可以放name可以放

单值文档也可以放多值文档

另外芒果db提供了一些特殊功能的集合

我们看一个

有些是系统的集合有些是

所有的集合和应用系统设置的系统配置的一些集合等

我们来看一下

这些集合的一些含义元数据的集合元数据实际上就是我们定义数据的数据

元数据我们是数据库里头中存处

来定义数据库里头的其他数据格式的一些数据,它是存储在集合中的

我们看名字空间这个名字空间实际上是也是一个集合

包含各种系统信息的一个特殊集合时有

数据库名字加上system

最后是我们集合的名字

实际上我们看一下我们的dbname数据库名字点system

点namespaces这个就是数据库

中所有的名字空间

下一个我们看数据库里头索引的索引就是数据库名字

点systen在加上indexes是我们数据库里头的所有索引

下面是数据库里的所有

概要信息即是profile的信息

下面一个是数据库里头所有的用户信息都是放在不同的空间里,不同的

集合里边的

还有一个是我们数据库里头复制

对从服务器的服务状态的信息的一些记录实现数据库名字有个local有slave

这个是进入我们服务器信息的和状态

下面我们来看一下第三个概念数据库

数据库实际上是我们刚才说是多个文档组成的集合

数据库有多个集合来组成的

芒果db可以有多个数据库可以承载多个数据库的实例他们之间是彼此独立的

每一个数据库对应不同的相关功能

我们在开发的过程中通常我们讲一个应用或者一类应用

一种类型的应用的所有数据放在数据库上

在磁盘上我们芒果db将不同的数据库放在不同的文件中

这样子,我们一个芒果这边的实力可以包含一组数据库,

一个数据库可以包含一组我们的集合

一个集合可以包含一组文档

而且我们还可以建立多个数据库

在芒果db里头系统数据库包括有三个

第一个是系统管理库

还有一个是local是系统的配置信息库 confi是作为系统

配置集群信息的一个库这个实际上是系统里头

全省用的我们用其他的数据库名字不能和他重复的

好这个就是本节的学习就到这里结束

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

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

也许你还感兴趣的课程:

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