Nosql
Nosql是设计互联网规模数据库解决方案的一种新方式.它并非一个产品或一项技术,而是定义一套数据库技术的术语,它并不以传统的RDBMS原则为基础.
sql
RDBMS的概念源自E.F.Codd发表于1970年的标题为"用于大型共享数据银行的数据关系模型"的白皮书.
用于查询RDBMS系统的语言就是sql(结构化查询语言).
RDBMS系统非常适合于保存在列和行中的结构化数据,可以使用SQL查询这些数据.
RDBMS系统基于ACID事物的概念.ACID代表原子性(Atomic)、一致性(Consistent)、隔离性(Isolated)、持久性(Durable).其中,
原子性意味着要么一个事物的所有变更都完全被应用,要么全都不被应用.
隔离性意味着被应用到相同数据集的事物都是彼此独立的.因此,一个事物将不会干扰另一个事物.
持久性意味着变更在系统中是永久性的,并且即使出现任何故障也不会丢失.
Nosql
Nosql是用于指代非关系型数据库的一个术语.因此它包含了大多数不以常规的RDBMS原则为基础的数据存储,并且被用于处理互联网规模的大数据集.
Nosql数据库是从处理大数据的需要中发展而来的;传统的RDBMS技术无法提供合适的解决方案.
适合Nosql数据库的大数据使用场景的一些示例:
社交网络图
搜索和检索
ACID对比BASE
CAP定理
Eric Brewer于2000年提出了CAP定理(布鲁尔定理).这是一个重要的概念,处理分布式数据库的开发人员和架构师需要很好地理解它.
该定理规定,在设计一个分布式环境中的应用程序时,存在三种基本需求,分别是一致性、可用性以及分区容错性.
一致性意味着在修改数据的任何操作被执行之后,数据仍旧保持一致,并且所有访问该应用程序的用户或客户端都要得到相同的更新后的数据.
可用性意味着系统总是保持可用.
分区容错性意味着,即使系统被划分成无法彼此通信的几组服务器,也要持续地正常运行.
CAP定理宣称,在任何时间点,一个分布式系统都只能满足上面三个保障中的两个.
BASE
Eric Brewer提出了BASE这个缩略语.BASE可被解释为:
基本可用 意味着根据CAP定理,系统将是可用的.
软状态表明,即便没有为系统提供任何输入,其状态也将随时间变化而变化
最终一致性意味着从长远来看,系统将会达到一致性.