数据库并发控制思维导图+大纲笔记

思维导图

大纲笔记

  • 多用户数据库系统

    • 定义
      • 允许多个用户同时使用的数据库系统
    • 特点
      • 在同一时刻并发运行的事务数可达数百上千个
      • 多事务执行方式
        • 事务串行执行
        • 交叉并发方式
          • 单处理机系统
        • 同时并发方式
          • 多处理机系统
    • 事务并发执行带来的问题
      • 产生多个事务同时存取同一数据的情况
      • 可能会存取和存储不正确的数据,破坏事务隔离性和数据库的一致性
    • 数据库管理系统必须提供并发控制机制
    • 并发控制机制是衡量一个数据库管理系统性能的重要标志之一
  • 封锁

    • 定义
      • 封锁就是事务T在对某一个数据对象操作之前,先向系统发出请求,对其加锁
    • 基本封锁类型
      • 排它锁(写锁):X锁
      • 共享锁(读锁):S锁
    • 锁的相容矩阵
      • Y=Yes,相容的请求
      • N:No,不相容的请求
    • 作用
      • 封锁是实现并发控制的一个非常重要的技术
  • 活锁和死锁

    • 活锁
      • 避免活锁
        • 先来先服务
    • 死锁
      • 解决死锁方法
        • 死锁预防
          • 一次封锁法
          • 顺序封锁法
        • 死锁的诊断与解除
          • 超时法
          • 等待图法
  • 并发调度的可串行性

    • 可串行化调度
      • 可串行化调度
        • 多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行的执行这些事务时的结果相同
      • 可串行性
        • 是并发事务正确调度的准则
        • 一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度
    • 冲突可串行化调度
      • 冲突可串行化
      • 冲突操作
        • 不同的事务对同一数据的读写操作和写写操作
      • 冲突
        • 不能交换的动作
          • 同一事务的两个操作
          • 不同事务的冲突操作
  • 并发控制概述

    • 事务是并发控制的基本单位
    • 并发控制的任务
      • 对并发操作进行正确调度
      • 保证事务的隔离性
      • 保证数据库的一致性
    • 并发操作带来的数据不一致行包括
      • 丢失修改
        • 写-写
      • 不可重复读
        • 读-更新(插入、修改、删除)
        • 三种情况
          • 情况1
            • 事务1读取某一数据
            • 事务2对其做修改
            • 当事务1再次读该数据时,得到与前一次不同的值
          • 情况2
            • 读-删除
          • 情况3
            • 读-插入
          • 2、3称为幻影现象
      • 读'脏'数据
        • '脏'数据即不正确的数据,读到的数据是数据库的临时状态
          • 修改-读
    • 记号
      • R(x):读数据x
      • W(x):写数据x
    • 并发控制机制就是要用正确的方式调度并发操作,使一个用户的执行不受其他事务的干扰,避免造成数据的不一致性
    • 并发控制的主要技术
      • 封锁
      • 时间戳
      • 乐观控制法
      • 多版本并发控制
  • 封锁协议

    • 规则
      • 何时申请X锁或S锁
      • 持锁时间
      • 何时释放
    • 三级封锁协议
      • 一级封锁协议
        • 解决问题
          • 丢失修改
        • 未解决问题
          • 可重复读
          • 不读'脏'数据
      • 二级封锁协议
        • 解决问题
          • 丢失修改
          • 读赃数据
        • 未解决问题
          • 不能保证可重复读
      • 三级封锁协议
        • 解决问题
          • 丢失修改、读赃数据、不可重复读
        • 未解决问题
  • 两段封锁协议

    • 事务遵循两段封锁协议是可串行化调度的充分条件,不是必要条件
  • 封锁的粒度

相关推荐
lengxuemo8 小时前
ICC2学习笔记之Placement and Optimization
笔记·学习
IT龟苓膏8 小时前
Redis 数据类型底层原理:SDS、quicklist、intset、skiplist、Bitmap、HyperLogLog 一篇讲清
数据库·redis·skiplist
sheeta19989 小时前
LeetCode 每日一题笔记 日期:2026.06.02 题目:3635. 最早完成陆地和水上游乐设施的时间 II
笔记·算法·leetcode
流星白龙9 小时前
【MySQL高阶】19.变更缓冲区,自适应哈希索引,日志缓冲区
数据库·windows·mysql
晴天¥9 小时前
Oracle中的监听配置与管理(动态、静态监听配置对比以及listener.ora和tnsnames.ora)
数据库·oracle
小满Autumn10 小时前
MVVM Light 架构笔记:定位器、命令、消息与 IoC 实践
笔记·学习·架构·c#·上位机·mvvm
瀚高PG实验室10 小时前
python连接HGDB超时
数据库·瀚高数据库·highgo
jnrjian10 小时前
ddl_lock_timeout 设置 read only table 通过view 实现细粒度依赖
sql·oracle
闪电悠米11 小时前
黑马点评-Redisson-01_why_redisson
java·服务器·网络·数据库·缓存·wpf
kobesdu11 小时前
【ROS2实战笔记-24】ROS2 Launch 实用技巧:条件逻辑与节点动态生成
笔记·ros·slam