1 经典案例

1.1 红包雨

1.2 事务ACID

1.3 红包雨与ACID

1.3.1 原子性

1.3.2 一致性

1.3.3  隔离性

1.3.4 持久化

1.4  红包雨与高并发

1.5 红包雨与高可靠

2 发展历史

2.1 前DBMS时代

2.1.1 人工管理

2.1.2 文件系统

1950s,现代计算机的雏形基本出现。1956年IBM发布了第一个的磁盘驱动器--Model 305 RAMAC,从此数据存储进入磁盘时代。在这个阶段,数据管理直接通过文件系统来实现。

2.1.3 DBMS时代

1960s,传统的文件系统已经不能满足人们的需要,数据库管理系统( DBMS )应运而生。

DBMS:按照某种数据模型来组织、存储和管理数据的仓库。
所以通常按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。

2.2 DBMS数据模型

2.2.1 网状模型

网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式。
1964年,世界上第一个数据库系统——集成数据存储(Ilntegrated Data Storage , lDS)诞生于通用电气公司。IDS是世界上第一个网状数据库,奠定了数据库发展的基础,在当时得到了广泛的应用。在1970s网状数据库系统十分流行,在数据库系统产品中占据主导地位。

2.2.2 层次模型

2.2.3 关系模型

1970年,IBM的研究员E.E.Codd博士发表了一篇名为'ARelational Model of Data for Large Shared Data BankS'的论文,提出了关系模型的概念,奠定了关系模型的理论基础。1979年Oracle首次将关系型数据库商业化,后续DB2,SAP Sysbase ASE, and nformix等知名数据库产品也纷纷面世。

2.2.4 DBMS数据模型

2.3 SQL语言

2.4 历史回顾

3 关键技术

3.1 一条SQL的一生

3.2 SQL引擎

3.2.1 Parser

3.2.2 Optimizer

基于规则的优化:

基于代价的优化:

3.2.3 Executor

火山模型:

向量化:

编译执行:

3.3 存储引擎

3.3.1 InnoDB

3.3.2 Buffer Pool

3.3.3 Page

3.3.4 B+Tree

3.4 事务引擎

3.4.1 Atomicity与Undo Log

3.4.2  Isolation与锁

3.4.3 Isolation与MVCC

3.4.4 Durability与Redo Log

深入理解RDBMS-学习笔记相关推荐

  1. 基于神经网络的机器阅读理解综述学习笔记

    基于神经网络的机器阅读理解综述学习笔记 一.机器阅读理解的任务定义 1.问题描述 机器阅读理解任务可以形式化成一个有监督的学习问题:给出三元组形式的训练数据(C,Q,A),其中,C 表示段落,Q 表示 ...

  2. 关于VAO,VBO和EBO的理解-OpenGL学习笔记

    本文章首发于我的个人博客,希望大家多多支持! Hi! This is Showhoop Studio! 如果要从代码层面去理解渲染管线的工作,学习使用OpenGL编程可以说是一个不错的选择.这里我将记 ...

  3. 【深入理解计算机系统-学习笔记】第一章 计算机系统漫游

    第一章 计算机系统漫游 简介: 我们通过跟踪hello程序的生命周期来开始对系统的学习--从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止 我们将沿着这个程序的生命周期,简单得介绍一些逐 ...

  4. 关于对 NUMA 理解(学习笔记,便于以后查阅)

    对NUMA的理解: NUMA是多核心CPU架构中的一种,其全称为Non-Uniform Memory Access,简单来说就是在多核心CPU中,机器的物理内存是分配给各个核的,架构简图如下所示: 每 ...

  5. scala java抽象理解_Scala学习笔记(五) 抽象类以及类中的一些语法糖

    1. 抽象类 Scala 的抽象类跟Java的一样,不能被实例化. 1.1抽象字段 抽象类中,变量不使用就无需初始化,可以等到子类继承时再进行初始化. scala> abstract class ...

  6. 深入理解JavaScript学习笔记-第一章

    第一章.基础JavaScript 1.4 原始值和对象 1. 原始值: 布尔值:true.false 数字:123.0.123 字符串:'ab'."abcA我" 空值:undefi ...

  7. 深入理解LTE-A 学习笔记(1)

    LTE 中,下行(downlink)传输可以简单地理解为由 eNodeB 发送,而 UE 负责接收的传输: 上行(uplink)传输可以简单地理解为由 UE 发送,而 eNodeB 负责接收的传输. ...

  8. FIFO读rd写wr控制信号处理方式的简单理解-FPGA学习笔记(五)

    文章目录 1.1 分类: 1.2 FIFO阻塞 1.3 FIFO读操作处理方式 1.4 Xilinx FIFO generator IP复位释放方式 1.5 读写小tips 参考文档 FIFO在FPG ...

  9. java程序语句的理解,[每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)

    一. for 循环 1.循环结构的四个组成部分 (1). 初始部分:设置循环的初始状态,比如我们设置记录循环次数的变量 i 为 0 . (2). 循环体:重复执行的代码 . (3).迭代部分:下一次循 ...

  10. 汤姆大叔深入理解JavaScript 学习笔记

    myname = "global"; // 全局变量 function func() {alert(myname); // "undefined"var myn ...

最新文章

  1. STC89C52单片机 数码管静态显示
  2. 数据中心用多模光纤技术及发展趋势
  3. java中的方法 net.中的函数_.Net转Java.01.从Main(main)函数说起
  4. Android解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget(转)
  5. 《软件工艺师:专业、务实、自豪》一2.8 小结
  6. 如何配置mysql 5.7_win7 64位下如何安装配置mysql-5.7.7-rc-winx64
  7. getBoundingClientRect使用指南
  8. 学习OpenCV——Gabor函数的应用
  9. 锋利的jQuery-3--用js给多选的checkbox或者select赋值
  10. 1036: 谭浩强C语言(第三版)习题1.6
  11. 单片机lcd1602程序 c语言,单片机I2C通信及LCD1602显示C程序
  12. 动态申请空间 malloc函数
  13. PS油画特效插件AKVIS Artwork for mac
  14. python实现提取视频里的语音转换为文字
  15. 电影沙龙之《黑镜-白熊公园》
  16. 台式计算机无线网络连接打印机,台式机怎么样连接无线打印机
  17. TM1637数码管实验总结
  18. 书法拓片matlab,拓墨书法作品(拓片)的具体操作方法和步骤?
  19. STM32红外寻迹小车
  20. CSS 样式继承 inherit 属性

热门文章

  1. 数据可视化之Pyecharts制作酷炫图表
  2. Linux简明系统维护手册
  3. 教师干货丨这5款微课必备提效神器,我要告诉全世界!
  4. java(若依)防止表单重复提交
  5. mac系统下使用flink消费docker运行的kafka
  6. 如何使用CBO,CBO与RULE的区别
  7. ‘utf-8‘ codec can‘t decode byte 0x87 in position 10: invalid start byte 解决方案
  8. 【愚公系列】2021年12月 攻防世界-进阶题-MISC-063(saleae)
  9. 输入两个字符串,从第一个字符串中删除第二个字符串中的字符
  10. 逻辑漏洞挖掘之——逻辑漏洞概述