NoSQL进阶实战1,那些年学过的NoSQL基础

Posted 哪 吒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NoSQL进阶实战1,那些年学过的NoSQL基础相关的知识,希望对你有一定的参考价值。

目录

一、传统关系型数据库和NoSQL数据库有何区别?

1、传统关系型数据库的技术特点

  1. 使用强存储模式,数据库表、行、字段都是预先定义好的,并进行相关属性约束;
  2. 必须遵守SQL技术标准,比如insert into等通用语句;
  3. 采用强事务保证可用性和安全性;
  4. 主要采用单机集中式处理;

2、NoSQL数据库的技术特点

  1. 使用弱存储模式,没有表、字段等概念;
  2. 没有统一的SQL标准,每个NoSQL的语法基本都不一样;
  3. 缺乏事务处理机制;
  4. 主要采用多机分布式处理;

二、NoSQL的诞生是为了解决什么问题?

传统关系型数据库设计之初,是基于单机集中管理数据理念进行的,所以受单机物理性能的限制。如最大数据存储量及最大数据访问量受硬盘、主板总线、内存、CPU等硬件的限制。因此传统关系型数据库在数据管理规模、访问速度两方面是有限制的,为了解决这个问题,逐渐有了NoSQL技术。

三、单机环境下运行数据库有哪些局限性?

1、单机读写数据的速度瓶颈问题

计算机的读写速度是受硬盘、主板总线、内存、CPU等硬件的限制的。

2、单机存储数据量有限

四、集中式数据处理与分布式数据处理,在物理上的本质区别是什么?

  1. 集中式数据处理,数据读写是基于本机的硬盘,数据计算也是在本机CPU和内存中实现的;
  2. 分布式数据处理,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高并发编程系列

数据库进阶实战系列

以上是关于NoSQL进阶实战1,那些年学过的NoSQL基础的主要内容,如果未能解决你的问题,请参考以下文章

MySQL进阶实战4,那些年学过的索引,下篇

MySQL进阶实战2,那些年学过的事务

Java高并发编程实战1,那些年学过的锁

《NoSQL实战:企业级大数据应用开发入门实战与进阶》(WIP)

NoSQL数据库进阶实战 2,NoSQL数据存储模式

这些年学过的FPGA