《NoSQL数据库技术与应用(黑马程序员)》课后习题答案完整版

第一章 初识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原则的选择策略与应用场景。

CA(一致性和可用性)应用场景Oracle、SQLServer以及MySQL等。

CP(一致性和分区容错性)应用场景MongoDB、HBase以及Redis等

AP(可用性和分区容错性)应用场景CouchDB、Cassandra以及DynamoDB等

2.简述NoSQL数据库的四种类型。

键值对存储数据库中的数据是以键值对的形式来存储的。

文档存储数据库是用于存储和管理文档,其中文档是结构化的数据(如JSON格式)。

列式存储数据库是以列为单位存储数据,然后将列值顺序地存入数据库中。

图形存储数据库主要是应用图形理论来存储实体之间的关系信息。

第二章 文档存储数据库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数据库 local数据库

C.config数据库

D.test数据库

2.下列说法中,关于MongoDB文档说法正确的是?(D )

A.MongoDB单个文档大小上限为64MB 16MB

B.文档的值只可以是字符串类型 键

C.文档中可以有重复的键

D.不建议自定义_id键

3.下列选项中,哪个属于MongoDB支持的数据类型?(ABD )

A.String

B.Code

C.Enum

D.Null

四、简答题

简述MongoDB数据库的优势。

答:易用性:MongoDB没有预定义模式(predefined schema),文档的键(Key)和值(Value)无须定义固定的类型和大小,这使得添加或删除字段变得更为容易。

高性能:MongoDB数据库对文档进行了动态填充,对数据文件进行了预分配数据文件,用空间来保证性能的稳定。

高可用性:MongoDB副本所组成的一个集群,称为副本集,它提供了自动故障转移和数据冗余功能,以防止数据丢失,从而提高数据的可用性。

易扩展性:MongoDB的设计采用横向扩展,可通过分片将数据分布在集群机器中,实现负载均衡。

支持多种存储引擎: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.Robo 3T是一个跨平台的MongoDB GUI客户端管理工具。 ( √ )

三、选择题

1.下列命令中,哪个可以用于创建MongoDB数据库?(C )

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的索引六种类型。

答:单字段索引:在文档的单个字段上创建用户定义的升序/降序索引。

复合索引:包含多个字段的索引,一个复合索引最多可以包含31个字段。

多键索引:MongoDB会为数组中的每个元素创建索引。

地理空间索引:对地理空间坐标数据的有效查询,包含平面几何的二维索引和球面几何的二维球面索引。

文本索引:在集合中搜索字符串内容,即进行文本检索查询。

哈希索引:哈希索引是使用哈希函数来计算索引字段的哈希值。

第四章 MongoDB副本集

一、 填空题

1.MongoDB副本集的成员包括++主节点++ 、副本节点、++仲裁节点++。

2.MongoDB官网推荐副本集成员个数为++奇数++个。

3.副本集主要功能包括++数据的冗余++ 、++自动故障转移++、读写分离。

4.开启安全认证时,密钥文件权限一定要等于或小于++600++。

5.副本集成员配置信息中参数++priority++表示优先级。

二、判断题

1.推荐使用主/从复制方式实现MongoDB复制。 ( × ) 副本集

2.MongoDB副本集通过同时存在多个主节点,实现故障自动转移。 ( ×) 多个副本节点 仅一个主节点

3.副本节点与主节点同步副本是异步同步。 ( √ )

4.仲裁节点不会同步主节点的数据副本。 ( √ )

5.配置副本集成员需要在主节点进行操作。 ( √ )

三、选择题

1.下列选项中,哪个不属于副本集成员状态?(A )

A.START STARTUP

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 P144

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)组成。

分片服务器是实际存储数据的组件

路由服务器主要提供客户端应用程序与分片集群交互的接口,所有请求都需要通过路由服务器进行协调工作。

配置服务器存储了分片集群的元数据,并且这些数据是不允许丢失的。

第六章 MongoDB GridFS

一、填空题

1.MongoDB受BSON文件大小的限制,存储的文件大小不可超过++16++M。

2.GridFS将文件分别存储到集合++fs.chunks++ 和++fs.files++中。

3.MongoDB提供了与GridFS交互的命令行工具++mongofiles++。

4.数据块中存储++二进制++数据。

5.GridFS基于++MongoDB++持久化文件。

二、判断题

1.默认情况下,GridFS使用的块大小为255 KB。 ( √ )

2.集合fs.files存储文件原始数据。 ( × ) fs.chunks files存储文件元数据

3.fs.files中_id的值与 fs.chunks中_id值的相对应。 (× ) fs.files的_id与fs.chunks的files_id相对应

4.可以在副本集的任意节点操作GridFS。 ( × )

三、选择题

1.下列选项中,不属于命令行工具选项的是?( D) options

A.db

B.u

C.local

D.get

2.下列选项中,文件的元数据包括?(ABD )

A.文件块存储位置

B.文件大小

C.文件内容 是文件的实际数据,不属于元数据

D.文件上传时间

四、简答题

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

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

第七章 键值对存储数据库Redis

一、 填空题

1.++键值对存储数据库++是最简单的NoSQL数据库。

2.Redis数据库是基于++ANSI C++语言编写开发的。

3.Redis数据库提供了多种数据结构,其中最常见的数据结构有String、List、++Set++ 、Hash、++Sorted Sets++ 。

4.++String字符串++ 是Redis中最基本也是最简单的数据结构。

5.++Set集合++ 由不重复且无序的字符串元素组成的。

二、判断题

1.键值对存储数据库中的数据是以列的形式来存储数据的。 ( × ) 键值对

2.Redis是一个开源的、高性能的、基于键值对的缓存与存储数据库。 ( √ )

3.List列表中不允许出现重复的元素。 ( × )

4.Hash散列只能存储一个键值对之间的映射。 ( × ) 多个

5.有序集合可以直接对值进行操作,而散列是通过键来查找值。 ( √ )

三、选择题

1.下列选项中,哪个是Redis服务的端口号?( A )

A.6379

B.6364

C.8080

D.50070

2.下列选项中,哪个不是Redis的特点?( ABD)

A.读写速度慢

B.只支持一种数据结构

C.功能丰富

D.性能低

3.下列数据库中,哪个不是键值对存储数据库?(D )

A.Redis

B.Tokyo

C.Oracle BDB

D.MongoDB 文档存储数据库

四、简答题

简述Redis的应用场景。

答:缓存、构建队列系统、排行榜、实时的反垃圾系统、数据自动过期处理、计数器应用。

第八章 列式存储数据库HBase

一、填空题

1.HBase是一个++高可靠性++ 、高性能、++面向列++、可伸缩的分布式数据库。

2.HBase是构建在++HDFS文件系统++之上,并为HBase提供了高可靠的底层存储支持。

3.当MemStore存储的数据达到一个阀值时,MemStore里面的数据就会被flush到StoreFile文件,这个阈值默认是128MB。

二、判断题

1.HBase起源于2006年Google发表的BigTable论文。 ( √ )

2.HBase是基于行进行存储的。 ( × )

3.HBase中,若有多个HMaster节点共存,则所有HMaster都提供服务。( × )

4.StoreFile底层是以HFile文件的格式保存在HDFS上。 ( √ )

三、选择题

1.下列选项中,哪个不属于HBase的特点?(B )

A.面向列

B.容量小

C.多版本

D.扩展性

2.下列选项中,HBase是利用哪个作为其文件存储系统。( C)

A.MySQL

B.GFS

C.HDFS

D.MongoDB

3. HBase官方版本不可以安装在什么操作系统上?( D)

A.CentOS

B.Ubuntu

C.RedHat

D.Windows

四、简答题

简述HBase分布式数据库与传统数据库的区别。

答:(1) 存储模式

传统数据库中是基于行存储的,而HBase是基于列进行存储的。

(2) 表字段

传统数据库中的表字段不能超过30个,而HBase中的表字段不作限制。

(3) 可延伸性

传统数据库中的列是固定的,需要先确定列有多少才会增加数据去存储,而HBase是根据数据存储的大小去动态的增加列,列是不固定的,但是列族是固定的

第九章 图形存储数据库Neo4j

一、 填空题

1.图形存储数据库也是++NoSQL++数据库的一种类型。

2.Neo4j公司从2003年开始研发++Neo4j++数据库。

3.实体被视为图形的++节点++,关系被视为图形的"边"。

4.Neo4j数据库使用的查询语言是++Cypher++。

5.Neo4j数据库可以运行在Windows、++Linux++、Mac OS等多个平台上。

二、判断题

1.Neo4j不支持ACID事务。 ( × )

2.Neo4j数据库是基于Java语言开发的。 ( √ )

3.社区版的Neo4j支持集群部署。 ( × )

4.Neo4j版本为4.0以上,则需要版本为1.8以上的JDK环境。 ( × ) jdk11以上

5.Neo4j的数据模型是遵循属性图模型来存储和管理数据的。 ( √ )

三、选择题

1.下列数据库中,哪个不是图形存储数据库?(CD )

A.Neo4j

B.FlockDB

C.HBase

D.AllegroGrap

2.下列选项中,哪个属于Neo4j的特点?(D )

A.读写数据慢

B.设计复杂

C.易用性差

D.资源丰富

3.下列选项中,哪个不属于Neo4j应用场景?(B )

A.推荐引擎

B.会话存储

C.交通运输

D.欺诈检测

四、简答题

简述Neo4j的数据模型。

答:Neo4j数据模型是由顶点(Vertex)、边(Edge)、标签(Lable)、关系类型以及属性(Property)组成的有向图。

顶点是使用圆来表示的,顶点也可称为节点(Node),所有的节点都是独立存在的。

边是使用有向箭头表示的,边也可称为关系(Relationship),关系是通过关系类型进行分组,类型相同的关系则属于同一个集合。

标签是使用label表示的,标签类似于节点的类型。

关系类型主要用于标记关系的类型,多个关系可以有相同的关系类型。

属性是使用键值对表示的每个节点或关系可以拥有一个或多个属性。

相关推荐
oas12 小时前
山东大学软件学院2024-2025非关系型数据库期末考试(限选)
数据库·nosql
crossaspeed2 小时前
MySql三大日志——(八股)
数据库·mysql
Modeler·X2 小时前
关系型与非关系型数据库终极对决
数据库·人工智能
梓潇涵枫3 小时前
pg数据库一键迁移脚本
数据库
Savvy..3 小时前
Day16若依-帝可得
数据库
Java后端的Ai之路3 小时前
【AI大模型开发】-Embedding 与向量数据库:从基础概念到实战应用
数据库·人工智能·embedding·向量数据库·ai应用开发工程师
2501_948194983 小时前
RN for OpenHarmony AnimeHub项目实战:关于页面开发
数据库·react native
松涛和鸣4 小时前
DAY55 Getting Started with ARM and IMX6ULL
linux·服务器·网络·arm开发·数据库·html
huahualaly5 小时前
重建oracle测试库步骤
数据库·oracle·ffmpeg