NoSQL复习题


第一章————————————————————

1.网络存储方式不包括()。A.DAS  B.NAS  C.ANS  D.SAN

DAS:直连式存储

NAS:网络接入式存储

SAN:存储区域网络

2.大数据的特征不包括()。A.大量化  B.价值化  C.整体化   D.快速化

3.大数据的特征不包括()。A.Volumn  B.Vague   C.Variety  D.Velocity

4.对比关系型数据库,关于NoSQL说法错误的是()。A.采用非关系的数据模型  B.弱化模式或表结构、弱化完整性约束、弱化甚至取消事务机制  C.无法支持,或不能完整的支持SQL语句  D.不能实现强大的分布式部署能力

5.下面不属于NoSQL数据库的特点的是()。A.开源  B.支持SQL   C.分布式  D.非关系型

6.下面()不属于关系型数据库的特点。A.实体和实体间的联系都可以通过关系的方式来表示  B.关系模型需要满足实体完整性和参照完整性约束  C.可以通过SQL语句实现数据定义和操作  D.不支持事务和ACID一致性等特性 

7.下面不属于数据操作语言的是()。A.定义  B.增加  C.查询  D.删除

 

大数据的特征:

○大容量(Volume)

○多样化(Variety)

○有价值(Value)

○高速率(Velocity)

关系型数据库和NoSQL在设计上的区别:

    关系型数据库:

高效的存储数据

支持多用户对数据的并发控制

NoSQL:

用来应对数据的爆发式增长,实现横向扩展

    https://www.cnblogs.com/sunzhiqi/p/10869655.html

NoSQL数据库的技术特点:
    1.非关系型的存储模式。

    2.习惯的统称,并非严谨的定义。

    3.和关系型数据管理系统有不同的侧重点。

    4.通过牺牲事务、一致性和SQL语句等重要机制,来换取更好的分布式部署特性。

NoSQL在大数据体系当中的作用:

○数据存储工具

○数据管理工具

○数据查询工具

○NoSQL一般不会提供实时数据采集功能(需要借助其他的工具写入数据库),也无法提供复杂的数据预处理、数据分析等功能,无法提供完整的数据可视化功能。

第二章————————————————————

1.NoSQL的主要存储模式不包括()。A.键值对存储模式  B.列存储模式  C.文件存储模式   D.图存储模式

2.BASE不包括()。A.基本可用  B.软状态  C.强一致性   D.最终一致性

3.CAP理论不包括()。A.Consistency(一致性)  B.Atomicity(原子性)  C.Availability(可用性)  D.Partition tolerance(分区容错性)

4.()不属于分布式数据管理的特点。A.数据分片  B.数据多副本  C.一次写入多次读取  D.读写分离 

    读写分离:1.其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构。2.一个主从同步集群,通常被称为是一个“分组”。

5.分布式部署关系型数据库时,读写分离(主从集群)不包括()。A.所有对数据库的修改都通过主服务器  B.从服务器分担主服务器读服务器请求  C.解决了写数据的瓶颈   D.主从服务器之间可能存在暂时的数据不一致的情况

    读写分离是用来解决数据库的读性能瓶颈的。

6.预防死锁的主要方法包括:一是(),即在设计阶段规定所有的事务都按相同的顺序来封锁表;一是(),即当一个事物加锁时间过长时就判断出现死锁。A.顺序法 一次封锁法  B.超时法 等待图法  C.顺序法 超时法   D.超时法 顺序法

7.关系型数据库事务机制中的ACID不包括()。A.连续性(Continuance)  B.隔离性(Isolation)  C.持久性(Durability)

    关系型数据库事务机制中的ACID:

    事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:

1、A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。 比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

2、C (Consistency) 一致性 一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。 例如现有完整性约束a存款+b存款=2000,如果一个事务改变了a存款,那么必须得改变b存款,使得事务结束后依然满足a存款+b存款=2000,否则事务失败。

3、I (Isolation) 隔离性 所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。 比如现在有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。

即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。(串行化)

4、D (Durability) 持久性 持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

8.下面关于NoSQL数据库完整性约束不正确的是()。A.域完整性一般较弱,或不支持  B.不能存在主键相同的行,或内容相同但时间戳不同的行  C.一般不提供参照完整性,或者外键  D.用户定义完整性靠应用程序支持

9.与关系模型相比,关于NoSQL不正确的是()。A.NoSQL中可能没有明确的结构  B.列可能是复合型的  C.列中的内容和类型可能是随意的、无定义的  D.会为空值留出存储空间 

 

1.CAP理论中,NoSQL数据库需要在C和P之间进行权衡。F

C:Consistency(强一致性)

A:Availability(可用性)

P:Partition tolerance(分区容错性)

我们只能在一致性和可用性之间进行权衡

2.NoSQL数据库能够满足CAP三个特性。F

3.一次写入多次读取不是分布式数据管理的特点。F

4.ACID是NoSQL数据库的基本要求。F

5.NoSQL一般不提供参照完整性,或者外键,因此一般也不支持跨表的关联查询。T

6.NoSQL不会为空值留出存储空间,可能很难直接插入数值。T

7.NoSQL由明确的表结构。F

 

 BASE原理:

基本可用(Basically Available):基本可用指分布式系统在出现故障时,系统允许损失部分可用性,即保证核心功能或者当前最重要功能可用。对于用户来说,他们当前最关注的功能或者最常用的功能的可用性将会获得保证,但是其他功能会被削弱。

软状态(Soft-state):软状态允许系统数据存在中间状态,但不会影响系统的整体可用性,即允许不同节点的副本之间存在暂时的不一致情况。

最终一致性(Eventually Consistent):最终一致性要求系统中数据副本最终能够一致,而不需要实时保证数据副本一致。例如,银行系统中的非实时转账操作,允许 24 小时内用户账户的状态在转账前后是不一致的,但 24 小时后账户数据必须正确。

最终一致性是 BASE 原理的核心,也是 NoSQL 数据库的主要特点,通过弱化一致性,提高系统的可伸缩性、可靠性和可用性。而且对于大多数 Web 应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是多数分布式数据库产品的方向。

 

一丶在数据一致性问题上,ACID和BASE差别是什么?分别适合哪种场景

ACID的一致性:强调(一个或多个)事务前后,数据的状态(约束、完整性)都是有效的。

CAP的一致性:强调多个副本是状态一致、同步更新的。

BASE的一致性:和ACID的相近,但是强调弱一致性。

二丶什么是CAP原理?CAP原理是否适用于单机环境?

C:Consistency(强一致性)

A:Availability(可用性)

P:Partition tolerance(分区容错性)

CAP理论是指在分布式系统中,CAP三个特性不可兼得,只能同时满足两个。

不适用于单机环境

三布隆过滤器的优缺点是什么?如何降低布隆过滤器的误报率?

空间占用低,检索速度快,缺点是存在一定的误报率,当布隆过滤器认为某元素存在于集合时,该元素可能不存在,当布隆过滤器认为该元素不存在与集合时,该元素一定不存在。

降低误报率:

采取多个独立的哈希算法同时进行映射

增大二进制向量的大小

 

第三章——————————————————————

 1.HDFS的角色不包括()A.Masternode  B.Namenode   C.Datanode  D.Secondary Namenode

 

2.Hadoop核心组件不包括()。A.HDFS  B.HBase   C.YARN  D.MapReduce

 

1.Hive不属于NoSQL数据库。T

 

2.HDFS在数据读写时,对客户提供强一致性保障,在副本复制过程中采用最终一致性方式。T

 

3.HDFS Namenode的fsimage文件启动加载后,一直保持只读状态,不能直接在内存或硬盘修改。T

 

4.HDFS的Namenode和DataNode不能在一个物理节点上。F

 

5.Hadoop核心组件包括Hbase。F

 

6.HDFS属于NoSQL数据库。F

 
HDFS是否属于NoSQL数据库?请分析一下HDFS作为数据库的不足之处。
不属于
1.不擅长低延时的数据访问(hadoop针对数据吞吐量做了优化,牺牲了获取数据的延迟)。 
2.不擅长大量小文件存储(存储大量的小文件,会占用namenode大量的内存来存储文件、目录和块信息。)
3.不支持多用户并发写入一个文本(同一时间内,只能有一个用户执行写操作)。
4.不支持文件的随机修改(多次写入,一次读取)仅支持数据末尾追加。
第四章——————————————————————
1.下面对HBase的描述不正确的是()?A是一种NoSQL数据库   B.不是开源的   C.是分布式的  D.是面向列的
2.HBase虚拟分布式模式需要()个节点?A.最少3个  B.2   C.1   D.3
3.HBase分布式模式最好需要()个节点?A.最少3个  B.2  C.1   D.3 
4.HBase依靠()存储底层数据。A.MapReduce  B.Memory   C.HDFS   D.Hadoop
5.HBase依赖()提供消息通信机制。A.Chubby  B.Socket   C.Zookeeper   D.RPC
6.HBase来源于哪篇文章?A.BigTable   B.BigTable   C.MapReduce  D.The Google File System
7.HBase的逻辑节点不包括()。A.Regionmaster  B.Master   C.NameNode  D.Zookeeper
Hbase采用主从式的拓扑结构,主要组件:一个主节点(称为Master或Hmaster),若干从节点(称为Regionserver或Hregionserver),Zookeeper分布式协调服务,均指进程。
可能会部署多个Master节点,只有一个为活跃(active),其他为待命(standby)。
1.Hbase可以实现事务、多表查询等功能。 F
2.HBase创建表时,必须定义列族。F
 
 
一丶HBase的特点是什么?
○分布式、主从架构、底层基于HDFS、基于java语言开发
○可伸缩、高可靠性、易于使用
○基于键值对+基于列(族)的数据存储模式
○可以基于shell进行操作
○原生的java语言调用接口,支持远程调用
○支持通过thrift,实现跨语言、跨平台调用
二丶HBase采用了什么样的数据结构 ?
LSM树:将数据的修改增量保持在内存中,达到指定的大小限制后,这些修改操作批量写入到磁盘中。
LSM树的原理是把一棵大树拆分成N棵小树,它首先写入内存中,随着小树越来越大,内存中的小树会flush到磁盘中,磁盘中的树定期做merge操作,合并成一颗大树来优化读的性能。
三丶HBase的拓扑结构是什么?每个角色起什么作用?
主从结构(主节点和从节点)
底层采用HDFS:
  可以服用节点共同部署HDFS和HBase
  但节点无必然对应关系,如:DataNode节点不一定是Hregionserver节
  可能会部署多个Master节点
Zookeeper功能:
  ○维护元数据的总入口,以及记录Master节点的地址
  ○监控集群,如果Hregionserver出现故障,则通知Master,Master会将其负责的分区移交给其他的Hregionserver
  ○当活跃的Master节点故障时,Zookeeper会在备用的Master节点中选举一个新的活跃的Master节点。
HMaster功能:
  ○HMaster节点是所有Hregionserver的管理者,负责对Hregionserver的管理范围进行分配,但是不负责管理用户的数据表。
Hregionserver功能:
  ○用户表的实际管理者,在分布式集群中,数据表会进行水平分区,每个regionservers只会对一部分分区进行管理——负责数据的写入、查询、缓存、和故障恢复等。
 
 
 第五章————————————————————
1.HFile数据格式中的MetaIndex字段用于()。 A.Meta块的起始点   B.Meta块数据内容  C.Meta块的结束点  D.Meta块的长度
2.当用户读写HBase数据库时,会首先在()寻找表和行键对应的分区。A.Region   B.ZooKeeper   C.Master  D.RegionServer
当用户进行读写数据时,会根据需要读写的表和行键,通过如下顺序寻找该行键对应的分区:Zookeeper->META->Regionserver>Region
3.下面与Zookeeper类似的框架是?A.Kafka   B.Chubby   C.Java  D.Protobuf
Apache基金会基于Chubby协议创立了Zookeeper开源项目软件。
4.HBase不包括如下()分区方式。A.自动分区  B.预分区  C.手动拆分   D.固定分区 
表(或分区)的水平拆分的机制,都是基于行键拆分的:自动分区、预分区、手动拆分
5.HFile数据格式中的Data字段用于()。A.存储数据的起点  B.存储数据块的起点  C.指定字段的长度   D.存储实际的KeyValue数据 
6.Rowkey设计的原则,下列哪些选项的描述是不正确的?() A.本身是无序的   B.可以使用汉字  C.可以使用字符串  D.尽量保证越短越好
 
一丶预写日志(WAL)的作用
○当数据被写入memstore之前,Regionserver会先将数据写入预写日志,预写日志一般被写入HDFS,但键值写入时不会被排序,也不会区分region。
○出现节点宕机、线程重启等问题时,memstore中未持久化的数据会丢失,当regionserver恢复后,会查看当前日志当中的数据,并将记录进行重放,根据记录的表名和分区明,将数据恢复到制定的store当中。
二丶如何理解HBase的合并和分区拆分机制,各包括那几种方式。

○hbase为了防止小文件过多,以保证查询效率,hbase需要在必要的时候将这些小的store file合并成相对较大的store file,这个过程就称之为compaction。

在hbase中主要存在两种类型的compaction合并:小合并和大合并

https://www.cnblogs.com/bigdatalaoliu/p/14053296.html

    ○表(或分区)的水平拆分的机制,都是基于行键拆分的:自动分区、预分区、手动拆分
第六章————————————————————————
1.下面不属于CQL的集合类型的是()。A.Set   B.Tuple   C.List  D.Map
2.Cassandra的特点不包括()。A.节点对称  B.支持异构设备   C.强调高一致性   D.去中心化
3.Dynamo中MerkleTree机制用于解决()问题。A.数据模型  B.数据一致性  C.拓扑分布   D.副本同步检测机制 
4.Cassandra的Key Space类似关系数据库中的()。A.列  B.行  C.表   D.库
5.Cassandra采用()实现分布式环境的拓扑划分。A.CAP原理   B.一致性哈希算法  C.布隆过滤器  D.Paxos算法
6.Dynamo依靠()解决数据可能出现分本版本的问题。A.暗示移交  B.一致性哈希   C.矢量时钟机制  D.负载均衡器
 
 
1.Cassandra可以通过用户配置来调整可用性和一致性。 T
2.分簇键是Cassandra复合主键的一部分。 T
3.Cassandra不支持机架设置。 F
4.CQL创建表时,list、map和set类型的列如果是非frozen限定的(序列化),无法作为主键。 T
5.Cassandra的每个物理节点对应着环上的一个Token。 T
6.Cassandra不支持对数据表建立二级索引。 F
 
7.CAL利用WHERE子句可以在SELECT、UPDATE或DELETE语句中设置限定条件,但只针对主键。 T
 
一丶HBase和Cassandra在架构上有什么不同?各自架构有什么优缺点
Cassandra:
  ○采用了无中心的,对等的换型拓扑结构,不存在主节点单点失效问题。
  ○以主机为单位实现横向扩展,扩展方式较为简单,扩展对集群整体的影响较小。
  ○支持异构设备
Hbase:
  ○主从式结构
  ○具有良好的横向扩展性
  ○实现严格的读写一致性和自动的故障转移
二丶Cassandra表中的主键分为哪几种类型?如何区分它们?
主键
复合主键
三丶Cassandra如何支持数据一致性?
采用环形结构
用矢量时钟来解决数据可能出现的分支版本问题
Merkle Tree来解决副本之间的不一致性
Gossip协议来处理故障节点和新节点
 
 
 
第七章——————————————————————
1.MongoDB采用()进行数据存储与编码传输。A.YAML  B.XML   C.BSON  D.JSON
 
2.以下哪个不是MongoDB数据库的索引类型?A.全文索引   B.时间索引  C.单键索引  D.地理位置索引
 
3.以下哪个不是MongoDB数据库在分片时需要的节点?A.Config Server  B.Mongos  C.Shard   D.Config Router
 
4.CouchDB与MongoDB比较,不正确的是()。
A.CouchDB支持多主节点间的数据复制,而MongoDB只支持主从复制
B.CouchDB采用通用JSON格式存储和传输数据
C.CouchDB支持动态查询,MongoDB不支持动态查询
D.CouchDB更多地采用通用技术,并考虑和ASF其他模块的配合
 
5.MongoDB的分片切分机制不包括()。A.哈希分片  B.升序分片  C.位置分片   D.随机分片
 
6.MongoDB数据库中基本单元为?A.字段   B.文档  C.表格  D.集合
 
 
1.MongoDB的主节点选举算法是Paxos算法。 F
 
2.MongoDB中的一组文档称为“集合”,可以类比为传统数据库中的“数据库”。 F
 
3.MongoDB支持复杂的数据结构,支持索引(包括二级索引和地理空间索引),支持聚合查询。 T
 
4.MongoDB的集合是动态模式的,同一个集合里面的文档可以是各式各样的。 T
 
5.BSON比JSON相比,检索速度更快,更节省空间。 F
 
6.MongoDB采用副本集提供数据库的扩缩容能力。 F
 
 
 
一丶简述MongDB的特点。
○易用、分布式架构、易扩展、支持多副本
○支持复杂的数据结构,支持索引(包括二级索引和地理空间索引)、支持聚合查询,以及支持对大文件的存储和管理等。
二丶简述MongDB的集群架构(包含的角色和每个角色的作用)。
○Mongod(Shard):负责存储实际数据分片的设备。
○Mongs服务器:作为用户访问集群的入口,负责与客户端进行交互,并在内存中缓存分片数据的存储和路由信息。
○config服务器:负责持久化存储各类元数据和配置信息,当Mongs服务器启动时,会通过Config服务器读取相关信息并缓存到内存。
三丶MongDB集群的数据多副本策略和Cassandra集群有什么不同?
○MongDB(复制集机制):支持(分片的)多副本,以主从备份的形式实现,CAP中的CA由用户权衡。
○Cassandra:支持数据多副本机制,强调弱一致性和高可用性。,CAP中AP由用户的策略调整。
四丶MongDB和CouchDB有什么相同点和不同点?
同为文档型数据库,二者宏观设计较为相似。
MongDB CouchDB
○采用C++编写 ○采用Erlang语言编写(最初也是C++)
○自定义了更高效的,基于TCP|IP的二进制格式协议 ○更多地采用通用技术,并考虑和ASF其他模块的配合(在网络传输上,采用了通用的HTTP/REST接口)
○支持动态查询,查询时不需要先建立索引 ○不支持动态查询,必须先为查询模式建立视图
○MongDB只支持主从复制,其一致性更容易维护 ○支持多主节点间的数据复制(理论上都支持写入操作),并且支持类似Dynamo的MVCC多版本一致性协调机制  
 
 
 
 
 
 
 
 
 
 
第八章——————————————————————
1.Neo4j采用()查询语言。A.Neo4j Query Language  B.Structured Query Language  C.Cassandra Query Language   D.Cypher Query Language
 
2.Neo4j中CQL语法不支持的有()A.Match  B.Delete  C.Create   D.Update
 
3.()数据库不是基于Java实现的。A.Neo4j   B.MongoDB  C.Cassandra  D.Hbase
 
4.Redis采用的是()模式。A.列存储  B.图存储   C.键值对存储  D.文档存储
 
5.Neo4j中,下面()语句可以删除所有的节点和关系。
A.MATCH (n) MATCH (n)-[r]-(m) DELETE n, r,m
B.MATCH (n) MATCH (n)-[r]-() DELETE n, r
C.MATCH (n) OPTIONAL MATCH (n)-[r]-(m) DELETE n, r,m
D.MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n, r 
 
6.关于Neo4j中节点(Nodes),关系(Relations),属性(Properties),标签(Labels)说法不正确的有()
A.关系连接实体对象(Entity),关系没有方向性
B.标签(Labels)是对实体对象(Entity)做的说明
C.属性(Properties)表示的是实体对象(Entity)中的属性
D.节点代表最终的实体对象
 
7.Neo4j采用的是()模式。A.文档存储   B.图存储  C.列存储  D.键值对存储
 
8.下列哪些场景不适合使用Neo4j.() A.数据检索  B.关系中的路径查找  C.电商里的物品推荐  D.强相关的社交网络
 
 
1.Neo4j中CQL语法中 Set的作用是可以更新实体对象(Entity)的属性,也可以新加实体对象(Entity)的属性。   T
 
2.Neo4j不支持分布式。   F
 
3.搜索引擎系统常和其他NoSQL数据库或分布式文件系统配合使用。   T
 
4.Neo4j中CQL语法不支持limit。   F
 
 
一丶描述图数据库的数据模型,并举例说明。

图数据库是专门描述节点与关系,关系更明确也更自由,不存在外键等约束条件

举例:Neo4j

二丶Redis数据库的拓扑架构和多副本策略。

Redis本质为环形结构的分布式集群部署。支持单机部署和分布式部署,在集群环境支持水平分片机制。使用类似于dynamo的环形架构(课本231图片),没有使用一致性哈希机制,引入了哈希槽的概念。

数据多副本方面:支持主从复制机制,和MongoDB相似,一个主节点可以对应多个从节点,当主节点发生故障时,可以从多个从节点中选举一个新的主节点。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM