大数据技术原理与应用学习笔记(五)

  • 本系列历史文章
  • NoSQL数据库
    • NoSQL概述(Not Only SQL)
      • NoSQL特点
      • MySQL集群方式的缺陷
      • 传统关系型数据库缺陷
      • NoSQL兴起的原因
    • NoSQL与关系型数据库的比较
    • NoSQL的四大类型
      • 键值数据库——键值对
      • 列族数据库——列族
      • 文档数据库——文档
      • 图数据库——图
    • NoSQL的理论基石
      • CAP理论
    • 从NoSQL到NewSQL数据库
    • MongoDB——(C++、分布式、开源)
    • 补充

本系列历史文章

大数据技术原理与应用学习笔记(一)
大数据技术原理与应用学习笔记(二)
大数据技术原理与应用学习笔记(三)
大数据技术原理与应用学习笔记(四)

NoSQL数据库

NoSQL概述(Not Only SQL)

NoSQL特点

  • 灵活的扩展性
  • 灵活的数据模型
  • 和云计算紧密结合

MySQL集群方式的缺陷

  • 复杂性
  • 延迟性
  • 扩容问题

传统关系型数据库缺陷

  • 无法满足海量数据的管理要求
  • 无法满足数据高并发需求
  • 无法满足高扩展性和高可用性要求

NoSQL兴起的原因

  • 关系型数据库无法满足Web 2.0需求
  • 数据模型的局限性
  • Web 2.0关系型数据库中许多特性没有发挥

NoSQL与关系型数据库的比较

  • 数据库原理方面,关系数据库有完备的关系代数理论作为基础,而NoSQL缺乏统一的理论基础;
  • 数据规模方面,关系型数据库很难实现横向扩展,纵向扩展非常有限,而NoSQL具有非常好的水平可扩展性;
  • 数据库模式方面,关系型数据库定义了严格的数据库模式,而且要严格遵守,而NoSQL的数据模型非常灵活;
  • 在查询效率方面,关系型数据库适当量级查询效率较高,当量级较大时,效率会下降,而NoSQL在未构建面向复杂查询的索引查询性能差;
  • 在事务一致性方面,关系型数据库遵循ACID事务模型可以保证事务强一致性;
  • 在数据完整性方面,关系型数据库具有保证完整性的完备机制,而NoSQL不能实现完整性约束;
  • 在可用性方面,关系型数据库保证了严格的一致性,所以其可用性就削弱,而NoSQL具有非常好的可用性,响应快;
  • 在标准化方面,关系型数据库遵循SQL标准,而NoSQL暂未形成通用的行业标准;
  • 在技术支持方面,关系型数据库已有商业版关系数据库,拥有强大的技术支持,而NoSQL仍处于初期阶段,大多为开源产品;
  • 在可维护性方面,关系型数据库需要管理员维护,而NoSQL还没有成熟的基础,且实践维护较为复杂。

NoSQL的四大类型

NoSQL典型数据库通常包括键值数据库、列族数据库、文档数据库和图数据库。

键值数据库——键值对

列族数据库——列族

文档数据库——文档

图数据库——图

NoSQL的理论基石

CAP理论

C: 一致性(任意读操作总能读到之前写操作的结果)
A: 可用性(快速获取数据,在确定时间内返回结果)
P: 分区容忍性(当出现网络分区(一部分节点无法与其他节点通信时)也能正常运行)
(注:3个条件实现时最多实现2个。)
如:
CA(放弃P): 把所有与事务相关的放到同一台机上。(如:MySQL)
CP(放弃A): 受影响服务器需等待数据一致。(如:Neo4j,HBase)
AP(放弃C): 允许系统返回不一致的数据。(如:CouchDB,Cassandra)

BASE与ACID
BASE的意义:

  • Basically Available:基本可用(允许分区失败)
  • Soft-State: 软状态(可有一段时间不同步(滞后性))
  • Eventual consistency:最终一致性(可有不一致,但最终一定一致)
    与BASE对应的ACID
    ACID的意义:
  • Atomicity:原子性(事物必须是原子工作单元)
  • Consistency: 一致性(所有数据保持一致)
  • Isolation:隔离性(并发事务间修改隔离)
  • Durability:持久性(事务完成后,对系统的影响是永久性的)

设数据冗余份数为N,更新数据时需保证写完成的节点数W,读取时要读的节点数R,
满足强一致性的要求:W + R > N;
满足弱一致性的要求:W + R ≤ N;

从NoSQL到NewSQL数据库

最主要的是了解应用场景:
分析型应用:NewSQL
事务型应用:OldSQL
互联网应用:NoSQL

MongoDB——(C++、分布式、开源)

这部分请参考厦大数据库博客:Ubuntu下MongoDB安装与使用教程

补充

关系型数据库与NoSQL数据库都起着不同的作用,彼此不可互相取代

项目 优势 劣势
关系型数据库 以完善的关系代数理论作为基础,有严格标准,支持事务ACID四性,借助索引机制可实现高效查询,技术成熟,有专业公司的技术支持。 可扩展性交差,无法较好支持海量数据存储,数据模型过于死板,事务机制影响了系统性能等。
NoSQL数据库 支持超大规模数据存储,数据模型灵活,强大的横向扩展能力 缺乏数学理论基础,复杂查询性能不高,大都不能实现事务一致性,很难实现数据完整性,技术尚不成熟,缺缺乏专业团队技术支持,维护较困难等。

大数据技术原理与应用学习笔记(五)相关推荐

  1. 《大数据技术原理与应用》笔记

    一.大数据概述 大数据的特征(4V): 1.Volume,数据量大 2.Variety,数据类型多 大数据由结构化和非结构化数据组成: 10%的结构化数据,存储在数据库中: 90%的非结构化数据,与人 ...

  2. 大数据技术原理与应用(第五章 NoSQL数据库)

    目录 5.1 NoSQL数据库 Not only SQL特点 传统的关系型数据库特点 MySQL集群方式的缺陷 5.2 NoSQL与关系型数据库的比较 数据库原理 数据规模 数据库模式 查询效率 事务 ...

  3. 关于大数据技术原理与应用的学习(6)

    学习目标: 大数据技术原理与应用 学习内容: 6云数据库 6.1概述 6.2产品 6.3UMP系统 6.4Amazon云数据库 6.5微软云数据库SQL Azure 学习时间: 2022/03/31 ...

  4. 关于大数据技术原理与应用的学习(1)

    学习目标: 大数据技术原理与应用 学习内容: 大数据概述 1.1大数据时代 1.2大数据的概念和影响 1.3大数据的应用 1.4大数据的关键技术 1.5大数据与云计算.物联网的关系 学习时间: 202 ...

  5. 关于大数据技术原理与应用的学习(4)

    学习目标: 大数据技术原理与应用 学习内容: 分布式数据库HBase 4.1HBase简介 4.2HBase数据模型 4.3HBase实现原理 4.4HBase运行机制 4.5HBase应用方案 4. ...

  6. 关于大数据技术原理与应用的学习(3)

    学习目标: 大数据技术原理与应用 学习内容: 分布式文件系统HDFS 3.1HDFS简介 3.2HDFS相关概念 3.3HTFS体系结构 3.4HTFS存储元原理 3.5HDFS数据读写 3.6HDF ...

  7. 关于大数据技术原理与应用的学习(5)

    学习目标: 大数据技术原理与应用 学习内容: 5.NoSQL数据库 例如: 5.1NoSQL数据库 5.2与关系数据库的比较 5.3四大类型 5.4理论基石 5.5从NoSQL到NewSQL 5.6文 ...

  8. 大数据第二阶段Python基础编程学习笔记(待完善)

    大数据第二阶段Python基础编程学习笔记(待完善) 第一章 Python基础语法 3.8 1-1Python概述 python基础部分: ●Python基础语法: 标识符,关键字,变量,判断循环.. ...

  9. [渝粤教育] 厦门大学 大数据技术原理与应用 参考 资料

    教育 -大数据技术原理与应用-章节资料考试资料-厦门大学[] 第1章 大数据概述 单元测验 1.[单选题]第三次信息化浪潮的标志是: A.个人电脑的普及 B.互联网的普及 C.云计算.大数据.物联网技 ...

  10. 大数据技术原理与应用课后题(林子雨)

    大数据技术原理与应用(林子雨) 第1章 大数据概述 1单选(2分) 第三次信息化浪潮的标志是: A.个人电脑的普及 B.云计算.大数据.物联网技术的普及 C.虚拟现实技术的普及 D.互联网的普及 正确 ...

最新文章

  1. php接收表单图片,如何在PHP中获取表单图片数据
  2. 把企业分“三只鸟”的发展好比“三个策略”
  3. springboot中使用lua脚本+aop作限流访问案例代码
  4. 移动端(H5)弹框组件--简单--实用--不依赖jQuery
  5. bzoj1966 [AHOI2005]病毒检测 结论+暴力
  6. HDU2020 绝对值排序【排序】
  7. 德鲁克:终生难忘的7堂课
  8. C语言的实现的程序算法,算法:C语言实现(Algorithms In C)的学习
  9. 微软亚洲研究院20年20人
  10. 2016.11.03回顾 more excel交换两列
  11. 【Unity 框架】QFramework v1.0 使用指南 架构篇:05. 引入 Utility | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏
  12. rocketdock皮肤_使用RocketDock皮肤获取Windows 7,Vista和XP中的Windows 8魅力栏
  13. VOLTE_协议栈架构
  14. 《禅与摩托车维修艺术》读后感第一篇
  15. win10 内存清理
  16. 【C语言】将十进制数转化为二进制并输出
  17. 隐形的翅膀怎么用计算机弹出来,《隐形的翅膀》原版吉他谱分享,用音阶指法弹简谱其实很简单 ... ......
  18. [THUWC2017]在美妙的数学王国中畅游 LCT+泰勒展开+求导
  19. 图形学基础 | 基于物理的渲染理论(PBR)
  20. 达梦数据库DM8安装ODBC驱动无法正常连接

热门文章

  1. 从零开始学androidIntent初步.四十.
  2. java项目-第35期在线购书商城系统【毕业设计】
  3. html显示链接音乐,歌曲链接怎么填_HTML中如何链接本地音乐
  4. bxp客户端手工PNP基本过程(转)
  5. linux下载安装花生壳
  6. 《机械基础》记忆性内容总结
  7. matlab怎么计算行列式,matlab一元线性回归方程的计算和检验/用四种方法计算行列式...
  8. Flutter中的JSON解析
  9. 迅雷老版本总是提示升级,怎样关闭?
  10. 【数学建模】评价类算法