第一章 初识NoSQL

一、填空题

1大数据时代对数据存储的挑战包括高并发读写需求、高效率存储和访问需求、高扩展性。
2.NoSQL是Not Only SQL的缩写,它的含义为“不仅仅是SQL”。
3.NoSQL是一种非关系型、分布式、不遵循ACID、不提供SQL功能的数据库。
4.NoSQL理论的基础是由CAP原则、BASE理论以及最终一致性奠定的。
5.NoSQL数据库主要有四大类型,键值对存储数据库、文档存储数据库、列式存储数据库及图形存储数据库。

二、判断题

1.NoSQL是关系型数据库。 ( ×
2.非关系型数据库采用的是动态结构存储数据。 (
3.CAP原则包括一致性、可用性和分区容错性这三大要素。 (
4.CAP理论 的核心思想是即使无法保证系统的强一致性。 ( ×BASE理论的核心思想是即使无法保证系统的强一致性
5.数据的一致性可根据强度分为强一致性和弱一致性两种。 (

三、选择题

1.下列数据库中,哪个是最简单的NoSQL数据库?( A
A.键值对存储数据库
B.文档存储数据库
C.列式存储数据库
D.图形存储数据库
2.下列说法中,关于文档存储数据库说法正确的是?(C
A.文档存储数据库是文档管理系统
B.文档存储数据库是用于存储和管理文档,其中文档是 结构化的数据
C.文档存储数据库存储的文档可以是不同结构的
D.文档 键值对存储数据库主要应用于会话存储和购物车等场景
3.下列选项中,哪个属于列式存储数据库?(D
A.MongoDB文档存储数据库
B.Redis键值对存储数据库
C.Neo4j图形存储数据库
D.HBase

四、简答题

1.简述CAP原则的选择策略与应用场景。
CAP原则一个分布式系统最多可以同时实现两个要素,即AP或CP或AC。选择AC策略,意味着放弃P,也就是说,保证了系统的一致性和可用性,却违背了分布式系统的分区容错性;选择CP策略,意味着放弃A,也就是说,保证了系统的一致性和分区容错性,但用户的体验较差,即当系统宕机时,需要等待所有节点的数据一致时,用户才可访问系统;选择AP策略,意味着放弃C,也就是说,保证了系统的可用性和分区容错性,但是节点之间的数据会出现不一致的现象。因此,我们可以根据自己的需求,选择对应的策略。
在这里插入图片描述

2.简述NoSQL数据库的四种类型。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二章 文档存储数据库MongoDB

一、填空题

1.当前NoSQL数据库产品中最热门的一种数据库是MongoDB
2.MongoDB是由C++语言编写的。非关系型数据库
3.MongoDB是一个面向集合的、模式自由的文档型数据库。
4.MongoDB的设计采用横向扩展,可通过分片将数据分布在集群机器中。
5.MongoDB的逻辑结构是体系结构的一种形式。

二、判断题

1.在MongoDB中,数据库存储着集合和数据表 文档。 ( ×
2.MongoDB默认提供admin、local、config以及test数据库。 (
3.集合就是MongoDB的一组文档,分为一般集合和下限集合。 (
4.文档中不能有重复的键,每个文档都有一个默认的_id键。 (
5.MongoDB支持3种数字类型(32位整数(Int32)、64位整数(Int64)和64位浮点数(Double))。 (

三、选择题

1.下列数据库中,哪个数据库不是MongoDB默认提供的?(B
A.admin数据库
B.user数据库
C.config数据库
D.test数据库
2.下列说法中,关于MongoDB文档说法正确的是?( )
A.MongoDB单个文档大小上限为64 16 MB
B.文档的值 可以是字符串类型
C.文档中可以 不能有重复的键
D.不建议自定义_id键
3.下列选项中,哪个属于MongoDB支持的数据类型?(ABD
A.String
B.Code
C.Enum
D.Null

四、简答题

简述MongoDB数据库的优势。
1. 易用性
MongoDB面向文档的数据库不再有“行”的概念,取而代之的是更为灵活的“文档”模型。通过在文档中嵌入文档和数组的方式,在一条记录中表现复杂的层级关系。另外,MongoDB没有预定义模式,文档的键和值无须定义固定的类型和大小,这使得添加或删除字段变得更为容易,因此开发者能够进行快速迭代,加快开发进程。
2. 高性能
1、对文档进行了动态填充,对数据文件进行了预分配数据文件,用空间来保证性能的稳定。
2、优化器会标记出查询效率最高的方式,以便生成高效的查询计划。
3、提供高性能数据持久性减少数据库系统的I/O活动,也可以通过索引支持更快的查询。
4、将大部分的内存用作缓存。
3. 高可用性
MongoDB副本所组成的一个集群,称为副本集,它提供了自动故障转移和数据冗余功能,以防止数据丢失,从而提高数据的可用性。
4. 易扩展性
MongoDB的设计采用横向扩展,可通过分片将数据分布在集群机器中。MongoDB能够自动处理跨集群的数据和负载,自动重新分配文档,并将用户的请求路由到正确的机器上。
5. 多种存储引擎
MongoDB支持多个存储引擎包括WiredTiger存储引擎、内存存储引擎(In-Memory)和MMAPv1存储引擎。

第三章 MongoDB数据库操作

一、填空题

  1. MongoDB是一个 开源、跨平台的数据库。
  2. mongod.exe程序用于启动MongoDB服务器。
  3. MongoDB服务的端口号是 27017(监听端口号)
  4. 聚合管道是使用不同的管道阶段操作器进行不同聚合操作。
  5. MongoDB提供 Map-Reduce操作来进行聚合操作。

二、判断题

  1. 针对不同的操作系统平台,MongoDB的部署均相同 。( ×
  2. MongoDB中管道操作符的类型单一 。( ×
  3. Map-Reduce中管道操作有两个阶段,即Map和Reduce阶段。(
  4. 默认情况下,MongoDB服务启动运行时没有启用用户访问权限控制的。( ×
  5. Robo3T是一个跨平台的MongoDB GUI客户端管理工具。(

三、选择题

  1. 下列命令中,( C)可以用于创建MongoDB数据库。
    A.create
    B.show(用于查看所有数据库名称和存储情况的命令
    C.use(用于创建和切换数据的命令
    D.db(查看当前数据库
  2. 下列选项中,(D)不属于管道操作符。
    A. $group
    B. $limit
    C. $match
    D. $and
  3. 下列说法中,关于MongoDB索引说法正确的是(BD)。
    A. 索引存储着集合中全部 一小部分文档。
    B. 索引项的排序支持有效的等值匹配和基于范围的查询操作。
    C. 索引分为单字段索引和复合索引、多键索引、地理空间索引、文本索引、哈希索引六 种。
    D. 索引是一种特殊的数据结构,即采用B-Tree数据结构。

四、简答题

简述MongoDb索引的6中类型。
答:
1.单字段索引
MongoDB支持在文档的单个字段上创建用户定义的升序/降序索引,因此也被成为单字段索引。默认情况下,MongoDB中所有集合在_id字段上都有一个索引,当然,用户也可以根据自己的需求添加额外索引来支持重要的查询和操作。由于MongoDB可以从任何方向遍历索引,因此对于单个字段索引和排序操作来说,索引项的排序顺序(即升序和降序)并不重要。
2.复合索引
所谓符合索引,就是包含多个字段的索引,一个复合索引最多可以包含31个字段。需要注意的是,若某字段数与哈希索引,则这是复合索引就不能包括该字段。
3.多键索引
若文档中的字段为数组类型,则每个字段都是数组中的一个元素,MongoDB将会为数组中的每个元素创建索引,因此被称为多键索引。多键索引允许通过匹配数组的一个或多个元素来查询包含该数组的文档。如果索引字段包含数组值,则MongoDB会自动确定是否创建多键索引,而无须显示地指定创建多键索引。
4.地理空间索引
为了支持对地理空间坐标数据的有效查询,MongoDB提供了两种特殊的索引,即返回结果时使用平面几何的二维索引(2d索引)和返回结果时使用球面几何的二维球面索引(2dsphere索引)。其中,2d索引支持在欧几里德平面上的计算,也支持计算球面上的距离;2dsphere索引支持球面上几何计算的查询,包含查询(在一个指定多边形内的位置进行查询)、 交集查询(查询指定几何相交的位置)和临近查询(如查询离另一个点最近的点)。我们可以通过将2d索引和2dsphere索引进行相结合,从而进行高效的地理空间查询。
5.文本索引
MongoDB提供了一种文本索引类型,支持在集合中搜索字符串内容,即进行文本检索查询。文本索引不存储特定语言的停止词,例如“the”、“a”以及“or”等词,而是将集合中的词作为词干,只存储根词。为了执行文本检索查询,则集合上必须有一个text索引。一个集合只能拥有一个文本检索索引,但是这个索引可以覆盖多个字段。
6.哈希索引
为了支持基于哈希分片键进行分片,MongoDB提供了哈希索引类型。哈希索引是使用哈希函数来计算索引字段的哈希值,若是该索引字段的哈希值在哈希索引的范围内,则分布的更加随机。需要注意的是,哈希索引只支持等值匹配,不支持基于范围的查询。

第四章 MongoDB副本集

一、填空题

1.MongoDB副本集的成员包括 主结点、副本结点、 仲裁结点
2.MongoDB官网推荐副本集成员个数为 奇数个。
3.副本集主要功能包括 维护冗余地数据库副本故障自动转移、读写分离。
4.开启安全认证时,密钥文件权限一定要等于或小于 600
5.副本集成员配置信息中参数 priority表示优先级。

二、判断题

1.推荐使用主/从复制方式实现MongoDB 副本集复制。 ( ×
2.MongoDB副本集通过同时存在多个 一个 主节点,实现故障自动转移。 ( ×
3.副本节点与主节点同步副本是异步同步。 (
4.仲裁节点不会同步主节点的数据副本。 (
5.配置副本集成员需要在主节点进行操作。 (

三、选择题

1.下列选项中,哪个不属于副本集成员状态?( A
A.START
B.DOWN
C.RECOVERING
D.UNKNOWN
2.下列选项中,哪个不属于副本集的功能?( B
A.冗余的数据
B.负载均衡
C.读写分离
D.自动故障转移
3.MongoDB副本集中,副本节点是如何获得主节点数据?(A
A.自动拉取
B.心跳
C.自动推送
D.手动

四、简答题

请描述下MongoDB的副本集时如何同步数据?
副本节点定期轮询主节点获取oplog记录的操作内容,然后对自己的数据副本执行这些操作,从而保证副本节点的数据副本与主节点保持一致。

第五章 MongoDB分片

一、填空题

1. MongoDB分片是MongoDB支持的另一种集群形式。
2.分片技术是开发人员用来提高 数据存储和数据读写吞吐量常用的技术之一。
3.分片主要是将数据进行 划分后,将它们分别存放于不同机器上的过程。
4.MongoDB之所以能够实现自动分片,这是因为其内置了 分片策略
5.MongoDB的分片策略主要包括范围分片和 哈希分片两种。

二、判断题

1.分片与副本集主要区别在于分片是每个节点存储数据的不同片段,而副本集是每个节点存储数据的相同副本。 (
2.块(Chunk)的默认大小为128MB 64MB。 ( ×
3.分片键只能是集合文档中的一个 或多个字段。 ( ×
4.分片服务器是实际存储数据的组件。 (
5.生产环境中,路由 配置服务器存储了分片集群的元数据。 ( ×

三、选择题

1.下列服务器中,哪个不是服务器分片集群的组成部分?( D
A.Shard
B.Mongos
C.Config Server
D.Mongod
2.下列选项中,关于块的说法正确的是?( A
A.块的默认大小为64MB
B.大块触发的迁移较
C.块的大小 会影响要迁移块的最大文档数
D.大块 不均匀小块可以均匀地分布数据
3.下列说法中,关于分片键说法错误的是?( B
A.分片键一旦指定,后续则无法改变
B.分片键的长度大小, 不可 超过512个字节
C.用于作分片键的字段必须创建索引
D.不允许在已分片的集合文档上插入没有分片键的文档

四、简答题

简述分片集群的架构。
分片集群中主要由三个部分组成,即分片服务器(Shard)、路由服务器(Mongos)以及配置服务器(Config Server)组成。其中,分片服务器有三个,即Shard1、Shard2、Shard3;路由服务器有两个,即Mongos1和Mongos2;配置服务器有三个,即主、副、副。

第六章 MongoDB GridFS

一、填空题

1.MongoDB受BSON文件大小的限制,存储的文件大小不可超过16M。
2.GridFS将文件分别存储到集合fs.chunksfs.files中。
3.MongoDB提供了与GridFS交互的命令行工具mongofiles
4.数据块中存储二进制数据。
5.GridFS基于MongoDB持久化文件。

二、判断题

1.默认情况下,GridFS使用的块大小为255 KB。 (
2.集合fs.files存储文件地元数据,元数据就是关于数据的组织、数据域及其关系的信息; 原始数据fs.chunks。 ( ×
3.fs.files中_id的值与 fs.chunks中_id值的相对应。 (
4.可以在副本集的任意节点操作GridFS。 (

三、选择题

1.下列选项中,不属于命令行工具选项的是?( B
A.db
B.u
C.local
D.get
2.下列选项中,文件的元数据包括?(AB
A.文件块存储位置
B.文件大小
C.文件内容
D.文件上传时间

四、简答题

简述客户端在GridFS中查询文件的过程。

当客户端在GridFS中查询文件时,MongoDB将首先从集合fs.files中获取该文件的元数据信息,然后根据获取的元数据信息在集合fs.chunks查找符合要求的块(即files_id与元数据中_id相同的块),最后将这些块从新组装后返回给客户端。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐