5.1 NoSQL概论

最初:反SQL

概念演变,现在:Not only SQL

特点:

1.灵活的可扩展性

所以支持海量数据存储

2.灵活的数据模型

例如:HBase

3.和云计算的紧密结合

(一)nosql兴起原因:

1.关系性数据库无法满足web2.0的需求;

传统的关系数据库优点:

1.非常完备的关系理论基础

2.具有事务机制的支持

3.高效的查询优化机制

传统的关系数据库性能上的缺陷:

1.无法满足海量数据的管理需求:
互联网时代,数据产生速度非常快,那么庞大的数据如果还是按照传统的关系数据库进行搜索,效率低下,响应时间慢。
 
2.无法满足高并发的需求:
网页先访问底层数据库,找到相关满足要求的记录,再去生成网页。
以前:动态网页静态化,事先保存HTML。存在性能瓶颈。
现在:很多网页(动态数据)需要实时生成;实时生成的数据对关系数据库的负载很高;基本上用关系数据库无法满足这个高并发的需求。
3.无法满足高扩展性和高可用性的需求;
某些网站很多时候会面临负载高峰期。对于关系数据库来讲无法在短时间提升整个对外的服务能力,因为关系数据库不具备非常好的可扩展性。
 
很多企业采用mysql集群。
mysql集群:主从备份,一主一从。主从机制读写分离,可以解决阶段性问题,无法完全解决问题。
 缺陷:
1.复杂性:整个集群部署管理配置都非常复杂。
2.延迟性:(一般采取异步方式)当主库压力较大时,会带来较大的延迟。
3.扩容问题:整个集群压力过大时,需要增加新的机器,对整个数据集进行重新分区,非常复杂。
 
 
2.数据模型的局限性
关系数据库设计提出理想的模式:One size fits all.
提出一个关系模型去适用于所有的业务场景。
 
不同业务场景的特性不同,不实际。
 
3.web2.0关系数据库许多特性没有发挥
没有发挥作用,反而成了鸡肋:完善的事务机制,高效的查询机制
1.Web2.0通常是不用严格数据库事务
2.Web2.0不要求严格的读写实时性
3.Web2.0不包含复杂的sql语句(有范式)
 

5.2 NoSQL与关系数据库的比较

 

一、数据库原理方面:

NoSQL数据库产品没有同一的理论基础。分为不同的大类,每个大类都有自己的产品规范。

二、数据规模方面:
 
纵向扩展:加CPU,加内存。再怎么加都是有上限的。
NoSQL数据库:增加结点的方式,扩大性能,提升处理能力。
三、数据库模式方面:
 
 关系数据库:严格的数据库模式,不灵活。
NoSQL数据库:不存在固定的数据库模式。
 
四、查询效率方面:
 
关系数据库:有索引机制,也有非常好的查询优化引擎;在适当数量级的时候,查询效率很高;数据量大,查询效率下降;
NoSQL数据库:很多数据库没有构建起面向复杂查询的索引,面对复杂的查询时的性能不如关系数据库。
 
五、事务一致性方面:

NoSQL:很多产品在设计时,放松了对ACID四种性质的要求;采用另一种方法,BASE模型(BASE模型是NoSQL数据库三大理论基础之一);很多NoSQL只能保证最终一致性,不能保证事务强一致性。

(NoSQL有ACID特性,NewSQL没有ACID)

 
六、数据完整性方面:

关系数据库:会设置主键或相关的约束,来实现实体完整性、参照完整性、用户自定义完整性。
NoSQL:
七:可扩展方面:

八,在可用性方面:

关系:优先目标是,保证数据的一致性。
NoSQL:为了提高可用性来设计的,有时会适当牺牲一致性。
九、在标准化方面:

关系:遵循一套标准

NoSQL:有很多不同类别,不可能统一标准。
十、技术支持方面:
 
十一、在可维护性方面:

NoSQL:不像关系数据库一样有成熟的基础,以及实践的操作规范,维护起来较为复杂。

 
 
总结:
1.关系数据库的优势:

2.关系数据库的劣势

3.nosql优势与劣势:

很多NoSQL产品不支持事务强一致性,直接影响了它在一些企业的关键业务系统中的应用。

 
这两种数据库各有优缺点,所以无法互相取代。
 
 
(二)两种数据库的应用场景:(可采用混合型架构)

电信银行等关键业务,需要保证事务的强一致性。
 
 

大数据技术原理与应用【第五讲】NoSQL数据库:5.1 NoSQL概论&5.2 NoSQL与关系数据库的比较的更多相关文章

  1. 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)

    1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...

  2. 大数据技术原理与应用【第五讲】NoSQL数据库:5.4 NoSQL的三大基石

    NoSQL的三大基石:cap,Base,最终一致性   5.4.1 cap理论(帽子理论):   consistency:一致性availability:可用性partition tolerance: ...

  3. 大数据技术原理与应用——大数据处理架构Hadoop

    Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构. Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以 ...

  4. 大数据技术原理与应用【第五讲】NoSQL数据库:5.6 文档数据库MongoDB

    文档数据库介于关系数据库和NoSql之间: 是最像关系数据库的一款产品,也是当前最热门的一款产品. 1.MongoDB简介:   1)     2)文档类型BSON(Binary JSON),结构类似 ...

  5. 大数据技术原理与应用【第五讲】NoSQL数据库:5.3 NoSQL的四大类型

    5.3 NoSQL的四大类型   5.3.1 键值数据库和列族数据库 可以分为四大类产品:键值数据库,列族数据库,文档数据库,图数据库 (代表)   1.键值数据库:   用的多:redis云数据库: ...

  6. 大数据技术原理与应用【第五讲】NoSQL数据库:5.5 从NoSQL到NewSQL数据库

    应用场景: OldSql数据库:希望一种架构就能支持多种应用场景,但证明不可能.   NewSql数据库:同时具备OldSql和NoSQL各自的优点:水平可扩展性,强一致性,事务一致性,支持查询,支持 ...

  7. 大数据技术原理与应用——分布式文件系统HDFS

    分布式文件系统概述 相对于传统的本地文件系统而言,分布式文件系统(Distribute File System)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统.分布式文件系统的设计一般采用 ...

  8. 大数据技术原理与应用:【第二讲】大数据处理架构Hadoop

    2.1 Hadoop概论 创始人:Doug Cutting 1.简介: 开源免费; 操作简单,极大降低使用的复杂性; Hadoop是Java开发的; 在Hadoop上开发应用支持多种编程语言.不限于J ...

  9. 学一下HDFS,很不错(大数据技术原理及应用)

    http://study.163.com/course/courseMain.htm?courseId=1002887002 里面的HDFS这一部分.

随机推荐

  1. 3.GO-项目结构、包访问权限、闭包和值传递引用传递

    3.1.goland中项目结构 (1)在goland中创建标准Go项目 (2)goland配置 创建项目Learn-Go file-settings-go-GOPATH-添加 在项目目录下创建src目 ...

  2. STL——sort函数的实现原理

    实现原理 sort结合了快速排序.堆排序.直接插入排序三种排序方法. 根据不同的数量级别以及不同情况,能自动选用合适的排序方法.当数据量较大时采用快速排序,分段递归.一旦分段后的数据量小于某个阀值,为 ...

  3. 【转】TCP连接突然断开的处理方法

    TCP是因特网中的传输层协议,使用三次握手协议建立连接,下面是TCP建立连接的全过程. TCP断开连接的过程:TCP四次挥手. TCP/IP 协议簇分层结构 数据链路层主要负责处理传输媒介等众多的物理 ...

  4. C++版本 ORM 访问数据库之ODB 的Window环境编译(一)

    先简单说说我为什么要编译一个ORM访问数据库的版本, 以前在做C#访问数据库时候, 直接以orm方式访问数据库, 代码写起来简单,  不用写各种复杂的sql语句, 直接有orm框架生成, 后来转到C+ ...

  5. C语言I作业12—学期总结

    一.我学到的内容 二我的收获 作业 收获 C语言博客作业1 刚开始初步了解C语言方面的知识 学会Markdown基本语法 C语言博客作业2 学会了应该如何提问 PTA系统常见问题解答 学会了MinGW ...

  6. Codeforces Round #606 (Div. 1) Solution

    从这里开始 比赛目录 我菜爆了. Problem A As Simple as One and Two 我会 AC 自动机上 dp. one 和 two 删掉中间的字符,twone 删掉中间的 o. ...

  7. springcloud(六,多个服务提供者)

    spring cloud (一.服务注册demo_eureka) spring cloud (二.服务注册安全demo_eureka) spring cloud (三.服务提供者demo_provid ...

  8. Vertica性能分析

    Vertica的特点简单的说可以总结为:列存储.MPP架构.技术比较新.列存储本身带来了数据高度压缩的便利,MPP架构使得可以用相对廉价的PC级服务器横向扩展到较大规模(PB级),05年才问世使得它在 ...

  9. php 500报错解决方案

    php 500报错解决方案 1 先看nginx error.log 指定的错误日记文件路径 找到这个日记文件看 里面信息 2 再看 php-fpm.conf 里面指定的PHP错误日记的路径 具体如下& ...

  10. unity资源机制(转)

    原文地址:https://www.jianshu.com/p/ca5cb9d910c0作者:重装机霸 2.资源概述 Unity必须通过导入将所支持的资源序列化,生成AssetComponents后,才 ...