传统的关系型数据库以及数据仓库在面对大数据的处理时显得愈来愈力不从心。由于关系数据库管理系统 (RDBMS)的设计从未考虑过可以处理日益增加且格式多变的数据,以及访问数据并进行分析的用户需求呈爆炸式增加的势头。它们通常都是固定的schema,缺少对非结构化数据的支持,同时对数据分片存储、系统扩展性的支持也比较局限,系统的扩容过程也比较复杂
。另外,许多传统的数据库方法是为长期的策略性分析而非实时决策构造的。在这样的背景下,NoSQL数据库就应运而生了。sql
数据库中的Schema,为数据库对象的集合,一个用户通常对应一个schema。
官方定义以下:
A schema is a collection of database objects (used by a user.).
schema objects are the logical structures (逻辑结构逻辑概念
)that directly refer to the database’s data.
A user is a name defined in the database that can connect to and access objects.
schemas and users help database administrators manage database security.数据库
若要在关系型数据库中存储数据,首先必须定义“模式”,也就是用一种预约义结构向数据库说明:要有哪些表格,表中有哪些列,每一列都存放何种类型的数据。必须先定义好模式,而后才能存放数据(结构化)
。数据结构
相比之下,NoSQL 数据库的数据存储就比较随意了。“键值数据库”能够把任何数据存放在一个“键”的名下。“文档数据库”实际上也如此,由于它对所存储的文档结构没有限制。在列族数据库中,任意列里面均可以随意存放数据。你能够在图数据库中新增边,也能够随意向节点和边中添加属性。并发
无模式数据库的倡导者们很享受它所带来的自由与灵活。若是用了模式,那么就必须提早指明你要存储的数据,然而这一点却比较难办。摆脱模式的制约后,就能够轻易存储所需数据了,因而咱们很容易就能根据项目的进展状况来修改原有的数据存储方式,一旦发现了新东西,只要把它们加入数据库中就好。此外,如果发现某些东西已经没用了,那么再也不存储它们就好了。在使用模式的关系型数据库中,若是删除了某列,那么你恐怕得担忧此操做会不会致使旧数据丢失。nosql
在数据库系统中,“分片”概念是指( 对数据的分片)。每个全局关系均可分为若干个不相交的部分,每一部分称为一个片断。分布式
nosql中,分片即Sharding,能够简单定义为将大数据库分布到多个物理节点上的一个分区方案。每一个 shard 都被放置在一个节点上面。性能
在传数据库系统中,事务具备ACID 4个属性(Jim Gray在《事务处理:概念与技术》中对事务进行了详尽的讨论)。大数据
(1)原子性(Atomicity):事务是一个原子操做单元,其对数据的修改,要么全都执行,要么全都不执行。设计
(2)一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着全部相关的数据规则都必须应用于事务的修改,以保持数据的完整性;事务结束时,全部的内部数据结构(如B树索引或双向链表)也都必须是正确的。日志
(3)隔离性(Isolation):数据库系统提供必定的隔离机制,保证事务在不受外部并发操做影响的“独立”环境执行。这意味着事务处理过程当中的中间状态对外部是不可见的,反之亦然。
(4)持久性(Durable):事务完成以后,它对于数据的修改是永久性的,即便出现系统故障也可以保持。
对于单个节点的事务,数据库都是经过并发控制(两阶段封锁,two phase locking或者多版本,multiversioning)和恢复机制(日志技术)保证事务的ACID特性。对于跨多个节点的分布式事务,经过两阶段提交协议(two phase commiting)来保证事务的ACID。
能够说,数据库系统是伴随着金融业的需求而快速发展起来。对于金融业,可用性和性能都不是最重要的,而一致性是最重要的,用户能够容忍系统故障而中止服务,但毫不能容忍账户上的钱无端减小(固然,无端增长是能够的)。而强一致性的事务是这一切的根本保证。
BASE来自于互联网的电子商务领域的实践,它是基于CAP理论逐步演化而来,核心思想是即使不能达到强一致性(Strong consistency),但能够根据应用特色采用适当的方式来达到最终一致性(Eventual consistency)的效果。BASE是Basically Available、Soft state、Eventually consistent三个词组的简写,是对CAP中C & A的延伸。BASE的含义:
(1)Basically Available:基本可用;
(2)Soft-state:软状态/柔性事务,即状态能够有一段时间的不一样步;
(3)Eventual consistency:最终一致性;
BASE是反ACID的,它彻底不一样于ACID模型,牺牲强一致性,得到基本可用性和柔性可靠性并要求达到最终一致性。