NoSql理解+传统关系型数据库ACID+Nosql的CAP+BASE的理解
1)什么是Nosql
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,
泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。
(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展
2)特点
3)Nosql数据库的四大分类
1.介绍
2.四者对比
4)在分布式数据库中CAP原理CAP+BASE
1.传统的ACID分别是什么
A (Atomicity) 原子性C (Consistency) 一致性I (Isolation) 独立性D (Durability) 持久性
2.CAP(重点)(Nosql CAP最多只能选择两个)
C:Consistency(强一致性)A:Availability(可用性)P:Partition tolerance(分区容错性)CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
最多只能同时较好的满足两个。
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
3.CAP的3进2(重点)
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。
而由于当前的网络硬件肯定会出现延迟丢包等问题,所以
分区容忍性是我们必须需要实现的。
所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。
=======================================================================================================================
C:强一致性 A:高可用性 P:分布式容忍性
CA 传统Oracle数据库
AP 大多数网站架构的选择
CP Redis、Mongodb
注意:分布式架构的时候必须做出取舍。
一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。
因此牺牲C换取P,这是目前分布式数据库产品的方向
注意:分布式架构的时候必须做出取舍。
一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。
因此牺牲C换取P,这是目前分布式数据库产品的方向
=================================================================================================
一致性与可用性的决择
对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地
数据库事务一致性需求
很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低, 有些场合对写一致性要求并不高。允许实现最终一致性。
数据库的写实时性和读实时性需求
对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说发一条消息之 后,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。
对复杂的SQL查询,特别是多表关联查询的需求
任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的报表查询,特别是SNS类型的网站,从需求以及产品设计角 度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。
4.什么是BASE?
BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
BASE其实是下面三个术语的缩写:
基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)(目的是最终一致性)
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法
NoSql理解+传统关系型数据库ACID+Nosql的CAP+BASE的理解相关推荐
- 传统关系型数据库和NoSQL数据库有何区别?
目录 一.传统关系型数据库和NoSQL数据库有何区别? 1.传统关系型数据库的技术特点 二.NoSQL的诞生是为了解决什么问题? 三.单机环境下运行数据库有哪些局限性? 1.单机读写数据的速度瓶颈问题 ...
- 关系型数据库与NoSQL数据库简述
一. 关系型数据库 简单定义,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织. 关系模型中常用的概念: 关系:可以理解为一张二维表,每个关系都具有一个关 ...
- 全面梳理关系型数据库和 NoSQL 的使用情景
今天我将对常见关系型数据库以及NoSQL的使用场景做一个详细的分析和比较.希望对大家以后的数据库选型有所帮助. 目录 数据库场景比较 MySQL还是PostgreSQL? MongoDB 键值(Key ...
- 全面梳理关系型数据库和NoSQL的使用情景
今天我将对常见关系型数据库以及NoSQL的使用场景做一个详细的分析和比较.希望对大家以后的数据库选型有所帮助. 目录 数据库场景比较 MySQL还是PostgreSQL? MongoDB 键值(Key ...
- 关系型数据库和NOSQL的对比
对比 nosql数据库 关系型数据库 常见 mongodb,redias Oracle,DB2,mysql,MariaDB 成本 简单易部署,基本都是开源软件,价格便宜 oracle需花费大量成本 查 ...
- 关系型数据库与NoSql数据库的优缺点
1.关系型数据库与NoSql数据库的比较 一.并发支持 关系型数据库:通过事务和锁来支持并发,高并发情况下,执行效率较低. NoSql:打破了传统关系型数据库范式的约束和事务一致性,因此并发性能高. ...
- 关系型数据库与NOSQL
关系型数据库把所有的数据都通过行和列的二元表现形式表示出来. 关系型数据库的优势: 1. 保持数据的一致性(事务处理) 2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处) 3. ...
- 图数据库:从传统关系型数据库说起
1.数据库 按照早期的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库.网状数据库和关系型数据库.而在当今的互联网中,最常见的数据库模型主要是两种,即SQL关系型数据库和NoSQL非关系型数 ...
- es和传统关系型数据库的类比
es和传统关系型数据库的类比 Ralational DB -> Databases -> Tables -> Rows -> Columns Elastic ...
最新文章
- python中的连续比较是什么_在python中提取连续行之间的差异
- 【HTML】DAY 4
- python如何编程-终于发现怎么自学python编程
- 教你如何阅读Oracle数据库官方文档
- linux io 分析,Linux 下的I/O性能分析 iotop
- gstat | 空间插值(二)——克里金插值之普通克里金
- Atitti cto的日常流程与职责attilax总结
- Java多线程编程那些事:volatile解惑
- B/S、C/S架构与视频对话技术
- c语言圆周率天书解释,c语言天书圆周率的计算及分析.doc
- matlab直流电机pid调速仿真,直流电机双闭环PID调速系统仿真设计
- 打印机显示rpc服务器,win10打印机出现RPC服务器不可用的处理办法
- 徐思201771010132《面向对象程序设计(java)》第十六周学习总结
- 论文学习记录20200306:时序数据聚合[NDSS2011]
- 杭电ACM2085--核反应堆
- 100多个优秀的互联网编程学习平台整理。
- 基于J2EE架构的在线考试系统-Java(报告+源码+PPT
- 进度计划:GANTT图
- 东北大学考研二叉树相关试题
- 如何压缩视频文件大小?
热门文章
- TCP 连接中的TIME_WAIT
- hdu.1254.推箱子(bfs + 优先队列)
- IOS web app一些实用的属性设置
- Activity的四种加载模式(转载)
- Direct3D中的绘制(3)
- android 9格式吗,Android Studio中关于9-patch格式图片的编译错误
- session很快失效_深夜,我偷听到程序员要对session下手...
- python实现决策树数据直接赋值导入_决策树在python中的数据实现
- 联想服务器系统安装bios设置,Windows 8操作系统如何通过Legacy BIOS与UEFI两种模式安装...
- threejs设置对象层次