第一章、初识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理论的核心思想是即使无法保证系统的强一致性。 ( × )
5.数据的一致性可根据强度分为强一致性和弱一致性两种。 ( √ )
三、选择题
1.下列数据库中,哪个是最简单的NoSQL数据库?(A )
A.键值对存储数据库
B.文档存储数据库
C.列式存储数据库
D.图形存储数据库
2.下列说法中,关于文档存储数据库说法正确的是?(C)
A.文档存储数据库是文档管理系统
B.文档存储数据库是用于存储和管理文档,其中文档是非结构化的数据
C.文档存储数据库存储的文档可以是不同结构的
会话存储和购物车等场景
3.下列选项中,哪个属于列式存储数据库?(D )
A.MongoDB
B.Redis
C.Neo4j
D.HBase
四、简答题
1.简述CAP原则的选择策略与应用场景。
选择策略 | 应用场景 |
CA(一致性和可用性) | Oracle、SQL Server以及MySQL等 |
CP(一致性和分区容错性) | MongoDB、HBase以及Redis等 |
AP(可用性和分区容错性) | CouchDB、Cassandra以及DynaomDB等 |
2.简述NoSQL数据库的四种类型。
- 键值对存储数据库
键值对存储数据库是最简单的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文档说法正确的是?(D )
A.MongoDB单个文档大小上限为64MB
B.文档的值只可以是字符串类型
C.文档中可以有重复的键
D.不建议自定义_id键
3.下列选项中,哪个属于MongoDB支持的数据类型?(ABD )
A.String
B.Code
C.Enum
D.Null
四、简答题
简述MongoDB数据库的优势。
MongoDB具有易用性、高性能、高可用性、易扩展性和支持多存储引擎的特点。
- 易用性:MongoDB面向文档的数据库不在有行的概念,取而代之的是更为灵活的“文档模型”,通过在文档中嵌入文档和数组的方式,在一条记录中表现复杂的层级关系,且MongoDB没有预定义模式,文档的键和值无须定义固定的类型和大小,这使得添加或删除字段变得更为容易。
- 高性能:MongoDB数据库对文档进行了动态填充,对数据文件进行了预分配,用空间来保证性能的稳定性,MongoDB的优化器会标记处查询效率最高的方式,以便生成高效的查询计划。
- 高可用性:MongoDB副本所组成的一个集群,成为副本集,它提供了自动故障朱阿姨和数据冗余功能,以防数据丢失,从而提高数据的可用性。
- 易扩展性:MongoDB的设计采用水平扩展,可通过分片将数据分布在集群机器中,能够自动处理跨集群的数据和负载,自动重新分配文档,并将用户的请求路由到正确的机器上。
- 支持多种存储引擎:MongoDB支持多个存储引擎。