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