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
○hbase 为了防止小文件过多,以保证查询效率,hbase 需要在必要的时候将这些小的 store file 合并成相对较大的 store file,这个过程就称之为 compaction。
在 hbase 中主要存在两种类型的 compaction 合并:小合并和大合并
https://www.cnblogs.com/bigdatalaoliu/p/14053296.html
MongDB | CouchDB |
○采用 C++ 编写 | ○采用 Erlang 语言编写(最初也是 C++) |
○自定义了更高效的,基于 TCP|IP 的二进制格式协议 | ○更多地采用通用技术,并考虑和 ASF 其他模块的配合(在网络传输上,采用了通用的 HTTP/REST 接口) |
○支持动态查询,查询时不需要先建立索引 | ○不支持动态查询,必须先为查询模式建立视图 |
○MongDB 只支持主从复制,其一致性更容易维护 | ○支持多主节点间的数据复制(理论上都支持写入操作),并且支持类似 Dynamo 的 MVCC 多版本一致性协调机制 |
图数据库是专门描述节点与关系,关系更明确也更自由,不存在外键等约束条件
举例:Neo4j
Redis 本质为环形结构的分布式集群部署。支持单机部署和分布式部署,在集群环境支持水平分片机制。使用类似于 dynamo 的环形架构(课本 231 图片),没有使用一致性哈希机制,引入了哈希槽的概念。
数据多副本方面:支持主从复制机制,和 MongoDB 相似,一个主节点可以对应多个从节点,当主节点发生故障时,可以从多个从节点中选举一个新的主节点。