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

思维导图

大纲笔记

  • 多用户数据库系统

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

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

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

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

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

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

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

相关推荐
疯狂打码的少年4 小时前
【数据库技术】关系模型基本概念(关系/属性/元组/键)
java·服务器·数据库·笔记
普马萨特6 小时前
实体与位置关系的数据从哪里来:获取、治理与仍待解决的问题
网络·数据库
醉颜凉6 小时前
MySQL 8 忘记 root 密码?这两种方法帮你轻松解决
数据库·mysql·adb
有梦想的骇客7 小时前
PyTorch学习笔记
pytorch·笔记·学习
RestCloud7 小时前
集成链路监控体系搭建:接口调用、数据流转与异常告警全覆盖
数据库·数据安全·ipaas·api管理·数据监控·集成平台·api 治理
Capricorn19887 小时前
个人知识库接入大模型频现“幻觉引用”?排查 RAG 溯源失效问题,解析知芽构建可信第三大脑的底层架构
大数据·论文阅读·人工智能·笔记·架构·论文笔记
陈年老古董7 小时前
深度学习入门笔记:从神经元到深度神经网络
人工智能·笔记·深度学习·神经网络·学习
xxwl5858 小时前
MySQL 基础学习笔记
数据库·mysql
SKH.8 小时前
Linux软件编程(6)线程间通信
java·开发语言·数据库
Rain的Java大神之路8 小时前
PC版网站被狂刷怎么处理
java·数据库·redis·后端·mysql·web安全·运维开发