第一章、初识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数据库的四种类型。

  1. 键值对存储数据库

键值对存储数据库是最简单的NoSQL数据库,其中的数据是以键值对的形式来存储的,键值对存储数据库的结构实际上是一个映射,即键是查找每条数据的唯一标识,值是该数据实际存储的内容,键值对存储数据库结构式是用哈希函数来实现键到值的映射。

  1. 文档存储数据库

文档存储数据库不是文档管理系统,是用于存储和管理文档,其中文档是结构化的数据,文档存储数据库存储的文档可以是不同结构的,主要应用于内容管理应用程序和电子商务应用程序等场景。

  1. 列式存储数据库

列式存储数据库是以列为单位存储数据,然后将列值顺序的存入数据库中,这种数据存储方法不同于行式存储的传统关系数据库。列式存储数据库可以高效地存储数据,也可以快速的处理针对批量数据的实时查询。

  1. 图形存储数据库

图形存储数据库不是网络数据库,主要应用图形理论来存储实体之间的关系信息,其中实体被视为图形中的节点,关系被视为图形的边,边按照关系将节点进行连接。

第二章、 文档存储数据库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具有易用性、高性能、高可用性、易扩展性和支持多存储引擎的特点。

  1. 易用性:MongoDB面向文档的数据库不在有行的概念,取而代之的是更为灵活的“文档模型”,通过在文档中嵌入文档和数组的方式,在一条记录中表现复杂的层级关系,且MongoDB没有预定义模式,文档的键和值无须定义固定的类型和大小,这使得添加或删除字段变得更为容易。
  2. 高性能:MongoDB数据库对文档进行了动态填充,对数据文件进行了预分配,用空间来保证性能的稳定性,MongoDB的优化器会标记处查询效率最高的方式,以便生成高效的查询计划。
  3. 高可用性:MongoDB副本所组成的一个集群,成为副本集,它提供了自动故障朱阿姨和数据冗余功能,以防数据丢失,从而提高数据的可用性。
  4. 易扩展性:MongoDB的设计采用水平扩展,可通过分片将数据分布在集群机器中,能够自动处理跨集群的数据和负载,自动重新分配文档,并将用户的请求路由到正确的机器上。
  5. 支持多种存储引擎:MongoDB支持多个存储引擎。