目录
一、传统关系型数据库和NoSQL数据库有何区别?
1、传统关系型数据库的技术特点
- 使用强存储模式,数据库表、行、字段都是预先定义好的,并进行相关属性约束;
- 必须遵守SQL技术标准,比如
insert into
等通用语句; - 采用强事务保证可用性和安全性;
- 主要采用单机集中式处理;
2、NoSQL数据库的技术特点
- 使用弱存储模式,没有表、字段等概念;
- 没有统一的SQL标准,每个NoSQL的语法基本都不一样;
- 缺乏事务处理机制;
- 主要采用多机分布式处理;
二、NoSQL的诞生是为了解决什么问题?
传统关系型数据库设计之初,是基于单机集中管理数据理念进行的,所以受单机物理性能的限制。如最大数据存储量及最大数据访问量受硬盘、主板总线、内存、CPU等硬件的限制。因此传统关系型数据库在数据管理规模、访问速度两方面是有限制的,为了解决这个问题,逐渐有了NoSQL技术。
三、单机环境下运行数据库有哪些局限性?
1、单机读写数据的速度瓶颈问题
计算机的读写速度是受硬盘、主板总线、内存、CPU等硬件的限制的。
2、单机存储数据量有限
四、集中式数据处理与分布式数据处理,在物理上的本质区别是什么?
- 集中式数据处理,数据读写是基于本机的硬盘,数据计算也是在本机CPU和内存中实现的;
- 分布式数据处理,NoSQL必须同时对所有服务器上的数据进行处理,服务器之间必须建立可靠的通信,保证命令和数据的正常传输;
五、简述一下Master/Slave分布式数据库的数据处理原理?
Master表示主服务器,Slave表示从服务器。
- Master主要承担用户请求处理,给不同Slave同步数据,负责所有Slave的协调一致。
- Slave主要负责接收传送到本地的数据、数据的存储和计算过程,并把结果返回给调用者。
六、简述CAP定理的三大特性?
分布式架构是把计算、存储分布在网络中的多个节点中,通过软件控制任务的分发和执行调度,任务可以同时在多个节点并行执行。
CAP是指一致性
Consistency
、可用性
Availability
、分区容错性
Partition Tolerance
。
1、一致性
Consistency
一致性是指在同一时刻,任何一个终端客户在每个节点都能读到最新写入的数据;
2、可用性
Availability
可用性是指一个运行的节点在合理的时间内总能响应更新请求,不会发生错误或超时;
3、分区容错性
Partition Tolerance
分区容错性是指当网络发生故障时,系统仍能可以响应客户请求。
在分布式环境下,发生故障节点,三种属性最多只能满足两个。
七、解释一下ACID是什么?
事务内的语句,要么全执行,要么全不执行。事务具有ACID特性,ACID表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。
1、原子性(atomicity)
一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全执行提交成功,要么全不失败回滚。
2、一致性(consistency)
数据库总是从一个一致性的状态转换到另一个一致性的状态。
3、隔离性(isolation)
一个事务所做的修改在最终提交以前,对其它事务是不可见的。
4、持久性(durability)
事务一旦提交,则七所做的修改就会永久的保存在数据库中。
八、解释一下BASE是什么?
BASE是指基本可用BA、软状态S、最终一致性E。
1、基本可用
Basically Available
基本可用,NoSQL允许分布式系统中某些部分出现故障,系统的其余部分仍然可以继续运行。它不会像ACID,在系统出现故障时,进行强制拒绝,允许继续部分访问。
2、软状态
Soft State
NoSQL在数据处理过程中,允许存在数据状态暂时不一致的情况,但经过纠错处理,最终会一致。
3、最终一致性
Eventually Consistent
哪吒精品系列文章
Java学习路线总结,搬砖工逆袭Java架构师
10万字208道Java经典面试题总结(附答案)
Java基础教程系列
Java高并发编程系列
数据库进阶实战系列
版权归原作者 哪 吒 所有, 如有侵权,请联系我们删除。