数据科学每日总结--Day12--数据库

数据库

事务失败
  1. 计算机故障:在事务执行过程中,计算机系统中发生硬件或软件错误。如果硬件崩溃,计算机内存的内容可能会丢失。

  2. 事务错误:事务中的某些作可能会导致其失败,例如整数溢出或除以零。事务失败也可能由于参数值错误或逻辑编程错误而发生。此外,用户可能会在事务执行过程中中断交易。

  3. 事务检测到的本地错误或异常情况:某些条件需要取消事务。例如,可能找不到事务数据。

  4. 并发控制执行:并发控制方法可能会决定中止事务,稍后重新启动,因为它违反了可序列化性,或者因为多个事务处于死锁状态。

  5. 磁盘故障:某些磁盘块可能会因为读写故障或磁盘读/写头崩溃而丢失数据。这可能发生在事务的读取或写入作期间。

  6. 物理问题:这是指无穷无尽的问题,包括电源或空调故障、火灾、盗窃、覆盖磁盘

失败的原因中,1-4比5,6更常见,当发生类型 1-4故障时,系统必须保留足够的信息以快速从故障中恢复。

回滚
  • 概念:指在事务执行过程中,由于某些原因(如操作失败、违反约束、系统异常或人为干预),撤销当前事务已执行的所有操作,使数据库恢复到事务开始之前的状态。

  • 不可回滚:无法回滚具有脏读问题的已提交事务

级联回滚
  • 定义:指在并发事务执行过程中,如果一个事务因为某种原因(如违反约束、死锁等)被回滚,而该事务所做的修改已经被其他未提交的事务读取或依赖,那么这些依赖的事务也必须回滚,以保证数据库的一致性。

  • 例子:假设有两个事务T1和T2,T1修改了某条数据并未提交,T2读取了T1修改的数据并进行了进一步操作。如果T1因为某种原因回滚了,那么T2也必须回滚,因为它依赖了T1的未提交数据

  • 影响:级联回滚会导致多个事务被连锁回滚,影响系统性能和并发性。为避免级联回滚,数据库可以采用严格调度或可恢复调度。

级联时间表
  • 定义:指允许事务读取其他未提交事务的数据的调度方式。这种调度方式可能导致级联回滚

  • 特点:在级联时间表中,事务可以读取其他事务尚未提交的数据(即“脏读”);如果前面的事务回滚,后面依赖它的事务也必须回滚

严格时间表
  • 定义:严格时间表是一种调度方式,要求事务只能读取和修改已经提交的数据,不能读取未提交的数据

  • 特点:可以完全避免级联回滚;只有当前一个事务提交后,后一个事务才能读取或修改它的数据;保证了事务的隔离性和一致性

  • 定义:是一种用于控制并发访问共享资源的机制。它的主要作用是保证在并发环境下数*据的正确性和一致性

  • 排它锁:加锁后,其他操作不能再读写该资源,保证写操作的独占性

  • 共享锁:加锁后,其他操作可以继续读,但不能写,保证读操作的并发性

  • 意向锁:根据锁的粒度和用途进一步细分

工作流程:

  1. 当一个事务需要操作某条数据时,会先申请锁。

  2. 如果锁可用,则获得锁,进行操作。

  3. 操作完成后释放锁,其他事务才能继续操作该数据。

  4. 通过锁机制,可以防止多个事务同时修改同一数据,避免数据不一致

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值