Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

3,821

数据库:Nosql

  • 2013-05-03
  • 暂无评论

说NoSQL首先要说明的是关系型数据库

使用的Mysql,SQL Server,Oracle等都是关系型数据库,数据的表现形式都是以行列组织的,每行数据有所有的列数据,其实现的理论是(ACID)

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation,又称独立性)
  • 持久性(Durability)

关系型数据库的所有操作都是建立在以上4点的基础上提出及完善的

而对应的NoSQL则是根据CAP、BASE等分布式理论思想建立的,为了实现高度可扩展的服务环境,以降低硬件水平、降低扩展复杂度、保证高可用性

NoSQL有3种解释:No SQL(不使用SQL作为查询语言)No Only SQL(不只有关系型数据库)Non relational Database(非关系型数据库

也表现出了NoSQL的发展过程,目前大多指的是最后种

是和关系型数据库一个层面的数据存储原理,而不止是关系型数据库的补充

CAP理论:

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分区容错性(Tolerance of network partition)

一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个

该理论引申出了:最终一致性,简单说:多台机器的数据可能不一样,但最后还是会一样的,用此来保证高可用性,牺牲部分的一致性

BASE模型:是反ACID模型(关系型数据库的基本模型)

  • 基本可用(Basically Availble)
  • Soft-state(软状态/柔性事务:无连接)
  • Eventual Consistency(最终一致性)

牺牲高一致性,获得可用性和可靠性

主要的实现:

  1. 按功能划分数据库,
  2. sharding碎片

所以NoSQL的服务都是分布式系统,和他建立之初的原理有关



back up ↑

无觅相关文章插件,快速提升流量