前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库复习笔记

数据库复习笔记

作者头像
hotarugali
发布2022-03-01 09:28:14
3860
发布2022-03-01 09:28:14
举报

1. 并发控制

1.1 不一致性

  • 丢失修改
  • 不能重复读
  • 脏读

2. 事务

2.1 概念

具有ACID特性的若干数据库 基本操作的组合体被称为事务。

2.2 特性

  • 宏观独立完整
  • 微观交错执行

2.3 ACID

  • 原子性 Atomicity
  • 一致性 Consistency
  • 隔离性 Isolation
  • 持久性 Durability

2.4 调度

一组事务的基本步(读、写、其他控 制操 作如加锁、解锁等)的一种执行顺序称为对这组事务的一个调度。

  • 多个事务从宏观上看是并行执行的,但其微观上的基本 操 作(读、写)则是交叉执行的。

2.5 冲突

调度中一对连续的动作:如果它们的顺序交换,那么涉及的事务中至少有一个事务的行为会改变。

  • 有冲突的两个操作是不能交换次序的,没有冲突的两个事务是可交换的
  • 同一事务的任何两个操作都是冲突的
  • 不同事务对同一元素的两个写操作是冲突的
  • 不同事务对同一元素的一读一写操作是冲突的

2.6 可串行性

如果不管数据库初始状态如何,一个调度对数据库状态的影响都和某个串行调度相同,则我们说这个调度是可串行化的(Serializable)或具有可串行性(Serializability)。

2.7 冲突可串行性

一个调度,如果通过交换相邻两个无冲突的操作能够转换到某一个串行的调度,则称此调度为冲突可串行化的调度。

  • 冲突可串行性是比可串行性 要严格的概念。
  • 满足冲突可串行性,一定满足可串行性;反之不然。
  • 判别算法:
  1. 构造一个前驱图(有向图)
  2. 结点是每一个事务Ti。如果 Ti的一个操作与Tj的一个操作发生冲突,且Ti Tj前 执行,则绘制一条边,由Ti指向Tj, 表征Ti要在Tj前执行。
  3. 测试检查: 如果此有向图没有环,则是冲突可串行化的!

2.8 并发调度的正确性

当且仅当在这个并发调度下所得到的新数据库结果与分别串行地运行这些事务所得的新数据库完全一致,则说调度是正确的。

  • 并发调度的正确性 可串行性 冲突可串行性

3. 基于封锁的并发控制方法

3.1 锁

  • Li(A) : 事务 Ti 对数据元素 A 加锁
  • Ui(A) : 事务 Ti对数据元素 A 解锁
  1. 排他锁X (exclusive locks):只有一个事务能读、写,其他任何事务都不能读、写
  2. 共享锁S (shared locks):所有事务都可以读,但任何事务都不能写
  3. 更新锁U (Update locks):初始读,以后可升级为写
  4. 增量锁I (Incremental lock):增量更新(例如A=A+x) 区分增量更新和其他类型的更新

3.2 封锁协议

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 并发控制
    • 1.1 不一致性
    • 2. 事务
      • 2.1 概念
        • 2.2 特性
          • 2.3 ACID
            • 2.4 调度
              • 2.5 冲突
                • 2.6 可串行性
                  • 2.7 冲突可串行性
                    • 2.8 并发调度的正确性
                    • 3. 基于封锁的并发控制方法
                      • 3.1 锁
                        • 3.2 封锁协议
                        相关产品与服务
                        数据库
                        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档