NoSQL基础学习

NoSQL基础学习

最近读之首先个Nosql就是Mongodb,为了打探Nosql的基本知识,特地总结,主要是习Nosql的说理


 

一.Introduction(介绍)

它们是“ Not Only
Sql”的简称,非关系项目数据库,它有特别好之通用性和深高的性能,它以处理大量底数码方面颇有优势.

1.NoSql的起是相对于人情的关系项目数据库的,重点就是,Wiki上所说的:

NoSQL举凡對不同於傳統的關聯式資料庫的数据库管理体系的統稱。

 

兩者存在許多顯著的不同點,其中最重点的凡NoSQL不行使SQL作為查詢語言。其數據存儲可以免需要固定的表模式,也經常會避免使SQL的JOIN操作,一般有档次可扩展性的性状。

这就是说她的产出的意思在啊?,答案就是随着以当代底计算体系上每日网络上还见面发生大之数据量,而NoSQL纵使以现世电脑世界自然出现的同等种植结果,至少我是这么觉得的,当然,NoSQL
是千篇一律宗新的数据库革命性运动,早期就有人提出,发展及2009年趋势越来越高涨。NoSQL的跟随者们倡议用非关系型的多少存储,相对于星罗棋布的干项目数据库运用,这无异于概念的是一律种植新的思考的流入,而且总NoSQL系统啊就算是分布式系统

 

这是千篇一律栽全新的盘算,就比如上学算法一样,学习NoSQL,当然要修她的特征,这是特别重要之,就比如提到项目数据库遵循了ACID规则,而NoSQL遵循了BASE规则,许多素材在介绍NoSQL时,都定会针对NoSQL进行比较,这里无不例外

2.升华历史

NoSQL一词太早出现于1998年,是Carlo
Strozzi开发之一个轻量、开源、不提供SQL功能的关系数据库。

2009年,Last.fm的Johan
Oskarsson发起了一如既往赖关于分布式开源数据库的讨论,来自Rackspace的Eric
Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系项目、分布式、不提供ACID的数据库设计模式。

2009年以亚特兰大做的”no:sql(east)”讨论会是一个里程碑,其口号是”select
fun, profit from real_world where
relational=false;”。因此,对NoSQL最普遍的说是“非关聯型的”,强调Key-Value
Stores和文档数据库的亮点,而不是独自的不予RDBMS。

依据2014年之收益,NoSQL市场打头阵企业是MarkLogic,MongoDB和Datastax。基于2015年之人气排名,最被欢迎的NoSQL数据库是MongoDB,Apache
Cassandra和Redis。

二.Feature(特征)

NoSQL系统是分布式系统,分布式系统是建于网上之上的软件系统,具有惊人的透明性,在分布式数据库系统受到,用户是发不顶数是布之,就类似操作的凡一个统一之完整,即用户不须知道关系是否分割、有管副本、数据库存为哪台机器和操作以哪台机器及实施,并不知道其里面工作亟待由多华机器并好。

1.CAP定律(分布式领域的CAP原则)

CAP原则而如CAP定理,指的凡在一个分布式系统中:

  1. Consistency(强一致性),数据一致更新,所有数据变动都是并的,更新一会后拥有的节点在同时刻有所相同的数目
  2. Availability(可用性),快速的响应性能,保证每个请求不任成功或者失败且产生响应
  3. Partition
    tolerance(分区容错性),即可靠性,或者说系统受到之某节点发生误,不见面影响系的继承运行

定理:任何的分布式系统只能以满足其中有数点,不可得三者兼得,此理论以分布式存储系统受,最多只能兑现地方两碰

2.BASE构思(完全不同于ACID思想,牺牲了大一致性,获得可用性或者可靠性)

BASE思想(或者说是BASE模型),BASE是Basically
Available(基本可用),Soft state(软状态/柔性事务)和Eventually
consistent(最终一致性)的缩写:

  1. Basically
    Available(基本可用),支持分区失败(e.g.sharding碎片划分数据库)
  2. Soft
    state(软状态/柔性事务),状态可以有一段时间不齐,异步
  3. Eventually
    consistent(最终一致性),最终数额是同一的饶可以了,而非是时刻高一致

 定理:主要强调基本的可用性,也就算是要追求高性能,那么尽管如牺牲一致性或者容错性,总之BASE思想是针对CAP原则被的一致性与可用性权衡的结果

CAP原则是NoSQL数据库的根基,所以记住这BASE思想和CAP原则!!!!

3.与NoSQL的关系

现在NoSQL就长了BASE思想,可按现实的状定制特别方案,相对关系项目数据库的ACID原则,NoSQL系统通常注重性能和扩展性,而非ACID中之业务机制,事务就要求一致性

三.NoSQL NoSQL数据库分类

数据库分为四百般接近:

  1. 键值(Key-Value)存储数据库
  2. 列存储数据库
  3. 文档型数据库
  4. 图形(Graph)数据库

1.键值(Key-Value)存储数据库

凡同样栽为键值对存储数据的同一种植数据库,类似Java的Map,每个键对应唯一的价,代表的

2.列储存数据库

万般是为此来应本着分布式存储的海量数据,是盖列相关存储架构进行的数目存储的数据库,主要适合批量数额处理同当下查询

3.文档型数据库

欠种的数据模型是版本化的文档,半结构化的文档以一定的格式存储,比如JSON。文档型数据库可
以当是键值数据库的升官版本,允许之间嵌套键值。而且文档型数据库比键值数据库的询问效率又胜

4.图形(Graph)数据库**

图形结构的数据库与另队以及刚性结构的SQL数据库不同,它是下灵活的图片模型,并且能壮大及大半只服务器上。NoSQL数据库没有正规的查询语言(SQL),因此开展数据库查询需要制订数据模型。许多NoSQL数据库都发出REST式的数接口或者查询API

 

网站地图xml地图