NoSQL是设计互联网规模数据库解决方案的一种新方式.它并不是一个产品或一项技术,而是定义一套数据库技术的术语,它并不以传统的RDBMS原则为基础.数据库
RDBMS的概念源自E.F.Codd发表于1970年的标题为"用于大型共享数据银行的数据关系模型"的白皮书.
用于查询RDBMS系统的语言就是SQL(结构化查询语言).
RDBMS系统很是适合于保存在列和行中的结构化数据,可使用SQL查询这些数据.
RDBMS系统基于ACID事物的概念.ACID表明原子性(Atomic)、一致性(Consistent)、隔离性(Isolated)、持久性(Durable).其中,服务器
原子性意味着要么一个事物的全部变动都彻底被应用,要么全都不被应用.网络
一致性意味着在应用事物以后数据处于一致性状态.这意味着在一个事物被提交以后,提取特定数据的查询将获得相同的结果.架构
隔离性意味着被应用到相同数据集的事物都是彼此独立的.所以,一个事物将不会干扰另外一个事物.分布式
持久性意味着变动在系统中是永久性的,而且即便出现任何故障也不会丢失.大数据
NoSQL是用于指代非关系型数据库的一个术语.所以它包含了大多数不以常规的RDBMS原则为基础的数据存储,而且被用于处理互联网规模的大数据集.
NoSQL数据库是从处理大数据的须要中发展而来的;传统的RDBMS技术没法提供合适的解决方案.
适合NoSQL数据库的大数据使用场景的一些示例:设计
社交网络图开发
搜索和检索产品
Eric Brewer于2000年提出了CAP定理(布鲁尔定理).这是一个重要的概念,处理分布式数据库的开发人员和架构师须要很好地理解它.
该定理规定,在设计一个分布式环境中的应用程序时,存在三种基本需求,分别是一致性、可用性以及分区容错性.基础
一致性意味着在修改数据的任何操做被执行以后,数据仍旧保持一致,而且全部访问该应用程序的用户或客户端都要获得相同的更新后的数据.
可用性意味着系统老是保持可用.
分区容错性意味着,即便系统被划分红没法彼此通讯的几组服务器,也要持续地正常运行.
CAP定理宣称,在任什么时候间点,一个分布式系统都只能知足上面三个保障中的两个.
Eric Brewer提出了BASE这个缩略语.BASE可被解释为:
基本可用 意味着根据CAP定理,系统将是可用的.
软状态代表,即使没有为系统提供任何输入,其状态也将随时间变化而变化
最终一致性意味着从长远来看,系统将会达到一致性.
高拓展性:纵向拓展方法在事物率和快速响应需求增长时会失败.与此相反,新一代的NoSQL数据库旨在横向拓展.
可维护性和管理运营:NoSQL数据库主要旨在处理自动修复、分布式数据以及较简单的数据模型,这会致使低水平的可维护性和管理运营.
低成本:NoSQL数据库的目的一般在于使用一个廉价服务器的群集,以便让用户能够花费较低的成原本存储和处理更多的数据.
灵活的数据模型:能够处理任何类型的数据.
成熟度
支持度
有限的查询功能
管理运营
专业知识