noSQL数据库.ppt
《noSQL数据库.ppt》由会员分享,可在线阅读,更多相关《noSQL数据库.ppt(26页珍藏版)》请在课桌文档上搜索。
1、NoSQL数据库非关系型数据库,NoSQL数据库,目录,NoSQL数据库简介,为什么使用NoSQL数据库,NoSQLCAP原理,NoSQL数据库应用,NoSQL数据库简介,NoSQL,即是不提供SQL功能的数据库,是一项全新的数据库革命性的运动。NoSQL早期就有人提出,发展至2009年趋势越发高涨。NoSQL是指非关系型数据库,分布式,不提供ACID的数据库设计模式。ACID,是指在数据库管理系统(DBMS)中,事务(transaction)所具有的四个特性:原子性、(atomicity)、一致性(consistency)、独立性(isolation)、持久性(durability)。关系数
2、据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中的数据的检索和操作。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。,为什么使用NoSQL数据库,随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域。传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS(social networking service,即社会性网络服务)类型的web2.0纯动态网站已经显
3、得力不从心,暴露了很多难以克服的问题。,为什么使用NoSQL数据库,web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载分成高,往往要达到每秒上万次的读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求。,对数据库高并发读写的需求,为什么使用NoSQL数据库,对于大型的SNS网站,每天用户产生海量的用户动态,以国外的Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5
4、亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的账号,关系数据库也很难以应付。,对海量数据的高效率存储和访问的需求,为什么使用NoSQL数据库,在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server 和app server 那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服
5、务器节点来实现扩展呢?,对数据库的高可扩展性和高可用性的需求,为什么使用NoSQL数据库,在上面提到的“三高”需求面前,关系数据库遇到了难以克服的障碍,而对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如:1、数据库事务一致性需求 很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高,因此数据库事务管理成了数据库高负载下一个沉重负担。2、数据库的写实时性和读实时性需求 对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但对于很多web应用来说,并不需要这么高的实时性,比如发一条消息之后,过几秒乃至十几秒后,我
6、的订阅者才看到这条动态是完全可以接受的。3、对复杂的SQL查询,特别是多表关联查询的需求任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,此时SQL的功能被极大的弱化了。,为什么使用NoSQL数据库,总结:传统的关系型数据功能支持上通常很宽泛,从简单的键值查询,到复杂的多表联合查询再到事务机制的支持。而与之不同的是,NoSQL系统通常注重性能和扩展性,而非事务机制。,NoSQL数据一致性,传统的SQL数据库的事务通常都是支持ACID的强事务机制。NoSQL中,通常有两个层次的一致性:第一种是强一致性,即集群中的所有机器状态同步保持一致。第二种的
7、最终一致性,既可以允许短暂的数据不一致,但数据最终会保持一致。,CAP原理,分布式系统中,有三种重要的属性,分别是:一致性(Consistency):任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的。可用性(Availability):每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。分区容忍性(ToleranceofnetworkPartition):在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。,一致性or可用性,下面是一个牺牲一致性换取可用性的小例子。假设N1和N2是分布式环境下的两个节点,它们有保存了共同的数据V,它们
8、的值都是V0,A和B是两个分别对数据进行操作的进程。我们看看这么一个过程:A向N1节点写入了新的V值V1,B读取V的值。,如果一切正常的话,这个过程看起来像是这样的:,(1)A写入V的新值V1。(2)N1向N2发送消息M以更新V值。(3)B读取V的新值V2,但是现实可能是这样子的,由于网络分区,N1发向N2的消息很有可能没送达,那么,B节点将读取到一个过时的V值,不一致性产生了。并且当把节点的规模不断扩大的时候,不一致性问题也会更加严重。所以如果我们希望A B都是高可用的(也就是低延迟),那么一致性通常就不能得到很好的保证,我们必须要容忍一定的不一致性以换取高可用性。,从客户端角度看一致性,强
9、一致性:读取到的数据总是最新的。弱一致性:读取到的数据不一定是最新的。最终一致性:属于弱一致性,不同的是,最终一致性的系统会在后台异步地更新所有的备份,所以最终所有的备份都会是最新的数据。,从服务器端角度看一致性,我们利用一个数学模型来分析一下服务器端对于一致性的实现N:存储备份的节点数目,可以理解为备份的数目。W:更新(写)操作成功之前所必须更新的最少备份数目。假设W=3,表示至少等到3个备份的数据得到更新时,更新操作才算完成。R:读操作所需要连接的最少备份数目。假设R=3,表示读取一个数据时,至少要读取到这个数据的3个备份,然后选其中最新的备份。,调整N、W、R的取值,数据库系统的性质就会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- noSQL 数据库
链接地址:https://www.desk33.com/p-242074.html