非关系型数据库NoSQL
CAP理论
对于一个分布式系统,一致性、可用性和分区容忍性三个特点最多只能三选二
- 一致性(Consistency):系统在执行了某些操作后仍处于一个一致的状态
- 可用性(Availablity):数据的所有操作都有成功的返回。简言之,就是任何请求不管成功或失败都有响应
- 分区容忍性(Partition tolerance):在网络发生故障的时候。在网络连接上,一些结点出现故障,使得原本连通的网络变成了一块一块的分区,若允许系统继续工作,那就是分区可容忍的。
ACID理论
- 原子性(Atomicity):
- 事务的所有操作在数据库中要么都做要么都不做
- 一致性(Consistency):
- 一个事务独立执行的结果,将保持数据的一致性,即数据不会因为事务的执行而遭受破坏
- 隔离性(Isolation):
- 一个事务的执行不能被其他事务干扰。并发事务在执行过程中可能会对同一数据进行操作,这些事务的操作应该不会相互干扰,是相互隔离的
- 持久性(Durability):
- 一个事务一旦提交,它对数据库的改变必须是永久的,即使系统出现故障也是如此
BASE理论
由于CAP理论的存在,为了提高性能,出现了ACID的一种变种BASE,它是一个弱一致性的理论,只要求最终一致性。
- BA(Basically Available):基本可用
- S(Soft state):软状态,可以理解为“无连接的”的,而与之相对应的是“面向连接”的。
- E(Eventual consistency):最终一致性,最终整个系统看到的数据是一致的
NoSQL数据库的种类
文档存储、键值存储、列存储、图存储