【软考中级数据库】【知识点整理】事务管理

事务基本概念

  • 事务是一系列的数据库操作,是数据库应用程序的基本逻辑单位,即应用程序对数据库的操作都应该以事务的方式进行
  • 事务是一个操作序列,这些操作“要么全都做,要么全都不做”,是数据库环境中不可分割的逻辑单位
  • 事务四个特性:
    1)原子性:事务的所有操作在数据库中要么全做要么全都不做
    2)一致性:一个事务独立执行的结果,将保持数据的一致性,即数据不会因为事务的执行而遭受破坏
    3)隔离性:一个事务的执行不能被其他事务干扰。并发事务在执行过程中可能会对同一数据进行操作,这些事务的操作应该不会互相干扰,是相互隔离的
    4)持久性:一个事务一旦提交,它对数据库的改变必须是永久的,即使系统出现故障时也是如此
  • 事务的五种状态:
    1)活动状态:事务的初始状态,事务执行时处于这个状态
    2)部分提交状态:部分提交状态:当操作序列的最后一条语句自动执行后,事务处于部分提交状态这时,事务虽然已经完全执行,但由于实际输出可能还临时驻留在内存中,在事务成功完成前仍有可能出现硬件故障,事务仍有可能不得不中止。因此,部分提交状态并不等于事务成功执行。
    3)失败状态:由于硬件或逻辑等错误,使得事务不能继续正常执行,事务就进入了失败状态。处于失败状态的事务必须进行回滚(ROLLBACK)。这样,事务就进入了中止状态。
    4)中止状态:事务回滚并且数据库恢复到事务开始执行前的状态。
    5)提交状态:当事务成功完成后,称事务处于提交状态。只有事务处于提交状态后,才能说事务已经提交。


    image.png
  • 事务进入中止状态后,系统一般有如下两种选择:
    1)重启事务:当事务中止的原因是软、硬件错误而不是事务内部逻辑错误时,一般采用重启事务的方法。重启事务可以被看成一个新事物
    2)杀死事务:这样做通常是因为事务中止的原因是事务内部的逻辑错误,或者是输入错误,也可能是所需数据在数据库中没找到等原因

数据库的并发控制

  • 并发操作带来的数据不一致性有三类:丢失修改、不可重复读、读脏数据
  • 排它锁:也称为写锁,对数据进行写操作时进行锁定,只允许对数据加锁的事务进行读取与修改,其他事务不可读也不可改。
  • 共享锁:也成为读锁,用于对数据进行读操作时锁定,对数据进行加锁操作的事务只允许读取不允许修改,其他事务可以对该数据进行加共享锁操作,不能进行加排他锁
  • 封锁协议:
    1)一级锁协议:事务T在修改数据A之前必须对A加X(排他)锁,直至事务结束才能释放X锁。
    2)二级锁协议:是一级锁协议记上事务T在读取数据A之前必须对其加上S锁,读完之后即可释放S锁。但释放后有其他事务对A进行修改,事务T再次读取A时,就会出现不可重复读的错误。
    3)三级所协议:是一级锁协议上加上事务T读取A之前必须对A加上S锁,直到事务结束才释放S锁,解决不可重复读的问题。

一级可以防止:丢失修改
二级可以防止:丢失修改和脏读
三级可以防止:丢失修改、脏读、不可重复读

  • 两段锁:是指对任何数据进行读写之前都必须对数据进行加锁,在释放一个封锁前,事务不在申请和获得任何其他封锁。两段锁的含义是指食物分为两个阶段,第一级阶段是获取锁,第二个阶段是释放锁。
  • 两段锁协议与可串行化:如果事务遵循两段锁协议,那么他们的并发调度是可串行化的。

数据库的备份恢复

数据库备份

  • 数据备份:数据转储时将数据库自制到另一个磁盘或者磁带上保存的过程
    1)静态转存:转储期间不允许对数据库进行任何存取、修改操作
    2)动态转存:转储期间允许对数据库进行存取、修改操作,因此转储和用户事务可并发执行
    3)海量转存:指每次转储全部数据
    4)增量转存:每次只转储上次转储后更新过的数据
    5)日志文件:在事务处理的过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件,每条记录主要内容包括执行操作的事务标识、操作类型、更新前的数据旧值、更新后的数据值、更新日期和时间。一旦发生故障,数据库的恢复子系统可以利用日志文件撤销食物对数据库的改变,回退到事务的初识状态。
    6)数据库镜像:为了避免磁盘介质出现故障影响数据库的可用性,许多DBMS提供数据库镜像功能用于数据库恢复。

数据库恢复

  • 数据恢复的基本原理是冗余
  • 故障恢复的两个操作
    1)撤销事务(UNDO):将未完成的事务撤销,使数据库恢复到事务执行前的正确状态

撤销事务的过程:
1)由后往前扫描找到未完成的事务日志,查找事务的更新操作
2)对该事务的更新操作执行逆操作,用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删除,删除的记录重新插入数据库,
3)继续反向扫描日志文件,查找该事务的其他更新操作,并执行逆操作直至事务开始标识
2)重做事务(REDO):将已提交的事务重新执行
重做事务的过程:
从事务的开始标识起,正向扫描日志文件,重新执行日志文件登记的该事务的所有对数据库的操作,直至事务结束标记

对于不同的故障,采用不同的恢复策略:

  • 事务故障的恢复:
    1)事务故障定义(事务异常终止):由于程序执行错误而引起食物非预期、异常终止的事务。常见为逻辑错误,如非法输入、找不到数据、溢出等;系统错误,系统进入不良状态如死锁导致事务无法执行。事务故障主要靠数据库自己进行故障恢复,要在不影响其他事务运行情况下,强行回滚该事务,这类恢复操作成为事务撤销(UNDO)。
    2)事务故障恢复:事务故障是事务执行到至终点前异常结束,日志文件中只有开始标识,因此需要执行撤销事务操作进行恢复。事务故障的恢复是由系统自动完成的,对用户透明。
    步骤1:反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作
    步骤2:对事务的更新操作执行逆操作
    步骤3:继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到食物的开始标志

  • 系统故障(内存中数据丢失)的恢复:
    1)系统故障的定义:指硬件、软件的漏洞影响,导致丢失内存中的信息,影响正在执行的事务,但并未破坏外存上的信息,这种成为故障-停止假设(fail-stop assumption)。系统故障终止了事务的执行过程,破坏了事务的原子性,由于缓冲中的部分数据可能已经写入数据库,系统重启后数据库可能处于不一致状态
    2)系统故障恢复:系统故障的原因有两个,一是未完成的事务对数据库的更新可能已经写入数据库,而是已提交的事务对数据库的更新可能还在缓冲区中未写入数据库,因此需要对未完成的事务执行撤销事务操作,重做已提交事务

  • 介质故障的恢复:
    1)介质故障定义:指数据库的存储介质发生故障,如磁盘损坏、瞬间强磁场干扰等,这种故障直接破坏了数据库,会影响所有正在读取这部分数据的事务。
    2)介质故障恢复:介质故障时数据库遭到破坏,需要重装数据库,装载故障前最近一次的备份和故障前的日志文件副本,在按照系统故障的恢复过程执行撤销和重做来恢复。

数据库的安全性与完整性

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容