软考数据库工程师

软考数据库工程师

成绩

image

重点

事务调度

1. 串行调度

多个事务依次(顺序)串行执行,且只有当一个事务的所有操作都执行完成才执行另一个事务的所有操作

2. 可串行化调度:并发调度

多个事务并发执行是正确的。当且仅当其并发结果某一次序串行地执行的结果相同

并发问题

1. 丢失修改:

两个事务对同一个数据进行修改,导致事务A对数据库的修改 被事务B的修改所覆盖

image-20240524193916545

2. 不可重复读

image-20240524193953975

3. 读脏数据

image-20240524194035178

封锁协议:三级封锁协议

image-20240524194634473

2段锁协议

两段锁协议:2pL: 同一事务对任何数据进行读写之必须对该数据加锁,在释放一个封锁之后该事务不在申请和获得任何其他封锁

两段锁: 获得封锁, 释放封锁

遵循两段锁协议 一定可串行化,不遵循两段锁,可串行化,也不可串行化

两段锁协议可能产生死锁: 因为每个事务都不即时解除被封锁的数据,可能导致多个事务都要求对方一封锁的数据二不能继续运行。

image-20240524194550590

隔离级别

image-20240524194743616

1. 触发器

create trigger 触发器名称 [before|after]
	[delete |INSERT |UPDATE OF 列名]
ON 表名
	referencing [new row as nrow| old row as orow]
[for each row|for each statement]
[with <触发条件>]
begin
	<触发动作>
end [触发器名称]

2. 游标

定义游标 exec sql declare 游标名称 cursor for
		select 语句
打开游标 exec sql open 游标名称
推进游标 exec sql fetch 游标名 into 变量表
关闭游标 exec sql close 游标名称

3. 存储过程

create procedure 存储过程名(in|out|in out 参数1 类型名称,in |out|in out 参数2 类型名称)
[as]
begin
	sql语句
end
in :输入参数
out: 输出参数
in out: 既可以输入参数 又可以输出参数

4. 视图

create view 视图名(列表)
as select 查询子句
with check option 

事务

学习视频链接

链接: https://pan.baidu.com/s/1rzDV8G9ILdaKEulmTlRRFw?pwd=1111 提取码: 1111 复制这段内容后打开百度网盘手机App,操作更方便哦

2011-2018真题 https://pan.baidu.com/s/1KkhUst1c0fPJJZp466p-OQ提取码:2058

中级数据库系统工程师考试_山与先生的博客-CSDN博客

中级数据库系统工程师考试_山与先生的博客-CSDN博客

2020年中级数据库系统工程师考试笔记12—事务管理_2020数据库系统工程师-CSDN博客

小题

计算机网络

tcpip 协议栈

image-20240524162910747

OSI 7层模型

image-20240524162957686

网关:应用层,传输层以上都是报文协议转换

路由器:网络层,数据包

网桥,交换机:数据链路层

中继器,集线器:物理层

网路 设备总结

image-20240524163340153

网络分类

image-20240524163436709

主动攻击与被动攻击

1. 主动攻击:篡改数据,产生虚假信息

2. 被动攻击,窃听或者流量分析

防火墙:隔离外部网络与受保护的内部网络

1. 包过滤防火墙: 用户透明,包含在路由器数据包中

2. 应用代理网关防火墙:切断内外网痛惜,所有通信必须经过应用层软件转发

3. 状态检测技术防火墙:结合1和2,

入侵检测与防御

image-20240524165531161

常见攻击方式

1. 重复攻击: 发送一个目的主机接受过的包,欺骗系统的目的

2. 会话劫持: 攻击者在初始授权之后建立一个连接,在会话劫持之后,攻击者具有合法的用户特权

Internet基础知识

域名

image-20240524170114628

子网掩码

image-20240524165825029

计算机系统 的组成

cpu

image-20240524162342161

image-20240524162428745

image-20240524162438556

输入输出控制

image-20240524162516978

image-20240524162528010

计算机体系结构

流水线

image-20240524161955020

存储系统

image-20240524162021165

地址映像

image-20240524162100479

image-20240524162126163

image-20240524162153048

安全,可靠系统性能评测

1.对称加密

image-20240524161444344

2. 非对称加密(公钥加密):RSA

image-20240524161514495

image-20240524161530521

3. 数字签名:发送者A私钥加密,发送者A公钥解密

不能保证信息保密(发送原文),确认信息发送者是否被修改

image-20240524161601655

4. 数字加密:对称和非对称加密:信息保密(加密)无法确定发送者身份(公钥公开)

image-20240524161755904

程序语言知识基础

编译程序 和解释程序

image-20240524160428220

解释程序:每次都要解释,边解释,边运行

编译程序:一次编译,终身运行,编译成目标程序

image-20240524160502153

数据成分

image-20240524160541182

编译过程

  1. 词法分析: 单词,符号
  2. 语法分析: 合法表达式,语句和程序
  3. 语义分析:** 类型分析 和检查
  4. 中间代码生成: 后缀表达式
  5. 动态错误: 运行时,1/0 下标越界
  6. 静态语法错,编译器idea,检查错误

传值和引用调用

image-20240524161028116

image-20240524161015713

中,前,后缀表达式

image-20240524160704684

前后缀都是栈

数据结构

二叉树

image-20240524160044285

image-20240524160138028

image-20240524160147234

排序

直接插入排序

image-20240524154634484

冒泡排序

image-20240524154724105

简单选择排序

image-20240524154758428

希尔排序

image-20240524154818928

快速排序

image-20240524154847126

image-20240524154905305

堆排序

image-20240524154939206

归并排序

image-20240524155222506

总结

image-20240524154604637

image-20240524154501943

图算法

最小生成树

最小生成树算法: 普利姆算法(顶点) 克鲁斯卡尔(边)

image-20240524155554321

image-20240524155605808

查找

二分查找:顺序表,有序

索引顺序查找(分块查找):块内不一定有序,块间有序

hash冲突解决办法:

image-20240524155848140

image-20240524155902061

数据库基本内容

三级模式和两级映像

image-20240517160338224

image-20240517161703364

数据模型和三要素

image-20240517161503600

关系数据库

相关名词

image-20240518145536470

image-20240518151341099

元组/记录:行

字段属性:列

关系模式表示

image-20240518150128371

完整性约束

image-20240518150348464

关系运算

基本的关系代数运算

1.并(union)

image-20240519130940317

2.差

image-20240519131030253

3. 笛卡尔积:合并后 相同项不取消

image-20240519131112415

4. 投影:选择若干属性作为新的关系:(列)

image-20240519131326137

5. 选择(行)

image-20240519131504539

image-20240519131537619

6. 交

image-20240519131642960

7. 连接:先笛卡尔积再 选择(行)

普通的连接

image-20240519131916455

image-20240519131931631

等值连接

image-20240519132107767

自然连接:(所有)相同的属性值 并去掉重复的属性列

image-20240519132247392

8. 除法

image-20240519132429635

9.外连接:去掉重复的列属性

  1. 左外连接:左为准,右填充

image-20240519132925581

  1. 右外连接:右侧为准,左填充

image-20240519133105058

  1. 全外连接

image-20240519133147901

10. 总结

image-20240519133354107

几个属性/列:就是几元关系

查询优化

1.优化准则

image-20240519140123022

2.列题:先选择,再投影,再自然连接

image-20240519140507293

image-20240519140759492

image-20240519140823676

关系规范化

1. 函数依赖

image-20240519155206296

**X(学号,课程号) -> Y(课程号) **

SC(sno,cno) : X-> sno : Y 平凡依赖

2. 完全函数与部分函数依赖

image-20240519161323308

3. 传递依赖

image-20240519162238956

4.码

1. 主码和候选码

image-20240519163352122

SC(sno,pno,sname,status,city,qty)
U={sno,pno,sname,status,city,qty}:全部属性集合
F={Sno→Sname,Sno→Status,Status→City,(Sno, Pno)>Qty} 函数关系
K={sno,pno}的真子集{sno},{pno} 都无法确定U
所以k就是候选码,如果存在多个候选码选择一个当主码

2. 外码

image-20240519163545200

5. 多值传递依赖

image-20240519200238899

范式

候选码

第一范式:属性不可再分

image-20240519181519558

第二范式:1范式消除了 非主属性对码()的部分函数依赖image-20240519181856272

第三范式:2范式 消除了非主属性对码的传递函数依赖

image-20240519182640651

BCNF: 3nf 消除主属性 对码 部分函数依赖和传递函数依赖

image-20240519195514908

第四范式:多值依赖只有两个依赖关系。U-X-Y=Z Z是空集

image-20240519201738361

范式总结

image-20240519195941719

例题

image-20240519202730264

候选码求解和无损连接

候选码求解

image-20240520221224907

无损连接

image-20240520221324140

例题

image-20240520222020287

SQL

DDL: 提供定义关系模式和视图、删除关系和视图、修改关系模式的命令

DML:增删改

DQL: 查

asc:升序, desc :降序

不等于:<>

**distinct: 去重**

数据库表

属性的数据类型

image-20240522085910385

创建数据库表

CREATE TABLE 表名称
(
列名称1 数据类型 列完整性约束条件,
列名称2 数据类型 列完整性约束条件,
列名称3 数据类型,列完整性约束条件,
…
表级完整性约束
);

主键约束

(1)在列后面加 PRIMARY KEY

(2)在最后加PRIMARY KEY(属性名1,属性名2)

//主码为属性组(两个或以上属性的组合)只能

属性值上的约束

非空 NOT NULL

  • 不允许重复 UNIQUE

  • 按条件检查 CHECK (条件)

  • 非空 NOT NULL

  • NOT NULL UNIQUE:表示取值唯一且不为空

    注意:PRIMARY KEY=NOT NULL+UNIQUE。

    CHECK (Sex='男' OR Sex='女'),CHECK (余额>=0),CHECK (年龄>=18 AND 年龄<=60)

参照完整性

(1)在列后面加 References 表名(属性名)

(2)在最后面加,有几个外码,就写几行。

Foreign Key (属性名) References 表名(属性名)

[ON DELETE [CASCADE|SET NULL]

ON DELETE CASCADE 表示删除被参照关系的元组时,同时删除参照关系中的元组

ON DELETE SET NULL表示删除被参照关系的元组时,将参照关系的相应属性值置为空值。

练习题

image-20240522090859382

create table S(
	sno char(5) not null unique,
    sname char(30) unique,
    status char(8),
    city char(20),
    primary key(sno)// 此处隐含Sno唯一且不为空,列级完整性约束可不写
);


create table P(
	pno char(5) not null unique,
    pname char(30) unique,
    color char(8),
    weight numeric(6,2),//整数6位 小数两位
    city char(20),
    primary key(pno)
);


create table SP(
	sno char(8),
    pno char(8),
    status char(8),
    Qty numeric(9),
    primary key (sno,pno),//主键为属性组合
    foreign key sno references S(sno),
    foreign key pno references P(pno)
);


2020年中级数据库系统工程师考试笔记9—SQL语言_数据库系统工程师是那种sql语言-CSDN博客

修改数据库表

ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <原列名>|<完整性约束名> ]
[MODIFY <原列名> <数据类型> ];

例子:
ALTER TABLE Student ADD Scome DATE not null;// 增加一列scome 
ALTER TABLE Student MODIFY sno varchar(13);// 修改 sno的数据类型为varchar
ALTER TABLE Student DROP stuNum;// 删除属性stuNum

删除数据库表

drop table 表名
drop table scs

索引

创建索引

image-20240522092356105

CREATE INDEX index_name ON table_name (column_list);
create index index_cn on  sc(cno);
CREATE UNIQUE INDEX index_name ON table_name (column_list);
create unique index index_name on table_name (column_list);

删除索引

drop index (索引名)
drop index studentIndex//删除索引studentIndex

视图

创建视图

image-20240522093347815

CREATE VIEW 视图名(列表名)
AS SELECT 子查询
[WITH CHECK OPTION] --可以省略;

create view v_student (name,age,sex,id,source)
as select * from student
with check option;

删除视图

drop view 视图名
drop view cs_student//删除视图cs

查询更新视图

create view cs_view
as 
select sno ,sname,sage,sex
from student
where sd='sd'
with check option;

image-20240522110028727

数据操作

select

SELECT [ALL|DISTINCT [字段或目标列表达式]
FROM table_name
[ WHERE search_condition]
[ GROUP BY group_by_expression]
[ HAVING search_condition]
[ ORDER BY order_expression [ ASC|DESC ] ]

(1)先从from字句一个表或多个表创建工作表
(2)将where条件应用于(1)的工作表,保留满足条件的行;
(3)Group By 将(2)的结果分成多个组
(4)Having 将条件应用于(3)组合的条件过滤,只保留符合要求的组;
(5)Order By对结果进行排序。:asc: 升序 desc:降序 不等于:<>

image-20240522103030218

连接查询

image-20240522103433953

子查询

image-20240522103512367

image-20240522103623591

聚集函数

image-20240522103730034

image-20240522103915533


select name,age from S where age<all(select age from s where sd='计算机') and sd <> '计算机'
select name,age from S where age<(select  min(age) from S where sd='计算机') and sd<>
'计算机'

分组查询

image-20240522104602168

字符串操作

image-20240522104700623

集合操作:UNION (并) intersect (交) except(差)

image-20240522104801085

左外连接

image-20240522105237072

右外连接

image-20240522105313970

全连接

左外连接 union 右外连接

insert into

insert into 表名(列名1,列名2...) values (值1,值2,。。。)

image-20240522105529654

delete

image-20240522105616557

update

update 表名 set 列名=新值 where 条件表达式

image-20240522105752352

授权

赋予权限

image-20240522110159567

grant All privileges on table/database 表名/数据库名
to 用户1,用户2 /public
with grant option
//public :表示授权限 授予所有人
// with grant option: 表示获得权限的用户可以将权限赋给其他用户

题目

image-20240522110444840

grant all privileges on table s,p,j to user1,user2
grant insert on table s to user1 with grant option
grant createtab on database spj to user1

收回权限

image-20240522110809225

remove 权限 on table/database 表名/数据库名
from 用户1,用户2./public
restrict
cascade


remove all privileges table s,p,j from user1,user2 ;

remove select table s from public;
remove update(sno) on table S from user1;

触发器

image-20240522123356494

创建触发器

CREATE <触发器名> < BEFORE | AFTER >
<INSERT | DELETE | UPDATE OF[列名清单]>
ON <表名> 
[REFERENCING <临时视图名>]
[FOR EACH ROW|FOR EACH STATEMENT]
[WHEN <触发条件>]
BEGIN
<触发动作>
END[触发器名]

image-20240522125719027

(1)BEFORE | AFTER:只是DBMS在执行触发语句之前或之后激发触发器;

(2)INSERT | DELETE:分别表示每当一个insert语句向表中插入一行数据时激发触发器、每当delete语句从表中删除一行时激发触发器;

(3)UPDATE/UPDATE OF:每当update语句修改表任何列值时,DBMS都将激发触发器,每当update语句修改有of子句指定的列值时激发触发器

(4)REFERENCING:指定临时视图的别名,在触发器运行过程中,系统会生成存放更新值(旧值)和更新后的值(新值)的临时视图,行级触发器视图名为OLD和NEW,语句级触发器,默认视图名OLD-TABLE和NEW-TABLE,触发器运行结束,视图也就不存在了;

(5)WHEN:指定触发器的触发条件,触发条件必须包含临时视图名,不包含查询

事务和锁

事务

基础知识点

image-20240523150242707

image-20240523150327226

事务的4大特性

image-20240523150923123

大题

数据库故障与恢复

1. 数据库故障

事务故障

事务故障是由于程序执行错误引起事务非预期的、异常终止的 故障。通常有如下两类错误引起事务执行失败:

(1)逻辑错误。如非法输入、找不到数据、溢出、超出资源限制等原 因引起的事务执行失败。 (2)系统错误。系统进入一种不良状态(如死锁),导致事务无法继 续执行。

解决办法:

事务故障的恢复:事务故障是事务在运行至正常终止点(SUMMIT或ROLLBACK)前终止,日志文 件只有该事务的开始标识而没有结束标识。对这类故障的恢复通常是通过撤销(UNDO)产生故障的 事务。

系统故障

系统故障:是指硬件故障、软件(如DBMS、OS===或应用程序)漏洞的 影响,导致丢失了内存中的信息,影响正在执行的事务,但未破坏存储在外存上的信息

解决办法:

系统故障的恢复:系统故障会使数据库的数据不一致:

一是未完成的事务对数据库的更新可能已经写入数据库;

二是已提交的事务对数据库的更新可能还在缓冲区没来得及写入数据库。

因此对于系统故障,恢复操作是UNDO+REDO

1、撤销故障发生时未完成的事务(UNDO)。

2、重做已经提交的事务(REDO)

介质故障

介质故障:是指数据库的存储介质发生故障,如磁盘损坏、瞬间强 磁场干扰等。这种故障直接破坏了数据库,会影响到所有正在读取这部 分数据的事务

解决办法:

介质故障的恢复:介质故障时数据库遭到破坏,需要重装数据库,一般需要DBA的参与,装载 故障前最近一次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销(UNDO)和 重做(REDO)来恢复

2. 数据库恢复

1. 故障恢复操作

撤销事务(undo)

未完成的事务撤销,使数据库恢复到事务执行前的正确状态。

插入的记录从数据库中删除

删除 的记录重新插入数据库中

更新操作并执行逆操作直至事务开始标志

重做事务(REDO)

将已提交的事务重新执行

从事务的开始标志起,正向扫描日志文件,重新执行日志文件登记的该事务 对数据库的所有操作直至事务结束标识

3. 数据库恢复真题步骤

检查点机制

检查点机制(CHECKPOINT):在日志中设置检查点,当发生故障需要利用日志文件 恢复时,反向扫描日志文件,找到检查点,确认检查点时刻正在执行的事务(活动 事务),即检查点前有事务开始标志但没有事务结束标志。

事务开始标志:start 事务结束标志: commit 或者 callack

对于检查点后提交的事务执行REDO(重做)继续更改

对于检查点后未提交的事务执行UNDO(撤销)撤销更改

解题思路

1、找到检查点(CHECKPOINT)

2、观察检查点之前有START标志的事务。

3、将这些事务分为以下三类:

(1)在检查点之前提交(COMMIT)的事务:这类事务在检查点时已经正 常结束,并不是活动事务,它所做的所有操作已经更新到了数据库,在 恢复时不用做任何操作

(2)在检查点之后提交的事务:这类事务在检查点时并没有正常结束, 是活动事务,故障恢复时需要做REDO(重做)

(3)在检查点之前和之后都没有提交的事务:这类事务在检查点时并 没有正常结束,是活动事务,故障恢复时需要做UNDO(撤销)

4. 真题练习

2020

题目

image-20240516182949118

问题

image-20240516183011706

答案

image-20240516183031077

2021

题目

image-20240516183519174

问题

image-20240516183545419

答案

image-20240516184003234

2022

题目

image-20240516183917981

问题

image-20240516183942579

答案

image-20240516183843020

2023

题目

image-20240516184147975

问题

image-20240516184116039

答案

image-20240516184045161

ER图

常考类型

1、两方联系两个实体之间产生联系。说明中的句式类似AB,BA

一个库管员(A)可以管理多个仓库(B),每个仓库(B)有一名库管员(A)

AB BA

2、三方联系:当同一联系需要三方同时参与的时候就是三方联系。说明中的句式 类似AB,BC

一个订单(A)包含多类服装(B),每类服装(B)可以由多个不同的供应商(C)供应

AB BC

3、弱实体一个实体的存在必须以另一个实体为前提

image-20240517185437050

4、聚合将联系作为实体,与其他的实体产生联系。 即两个实体A和B先产生联系联系本身再与C产生联系,需要用方框把A和B之间的 联系框起来先后顺序

租客租赁公寓必须和公司签订租赁合同。一份租赁合同通常由一个或多个租客(合租)与该公寓楼的经理签订一个租客也可租赁多套公寓

**租客和公寓组成租聘合同,然后和经理签约**

image-20240517192240506

5、子实体一个实体集可以按照某些特征区分为几个子实体

image-20240517192901356

6、同一实体集内的联系:同一实体集内的两个实体之间相互存在着一定的关系

image-20240517193008385

PS:三方联系与聚合的区别:三方联系必须要三方实体同时参与缺一不可。而聚 合是有先后顺序的,两个实体先产生联系,再与第三个实体产生联系

小tips

我们画E-R图采取的方法为:

1、依据需求分析中的文字说明来判断。

2、依据逻辑结构设计(关系模式)来判断。

3、依据现实中的生活经验来判断

ER图-逻辑结构相互转换

真题

真题总结

  1. 主码一定是唯一 确定一条信息
  2. 主码下划线实线外码 下划线是虚线
  3. 主码是(a,b)属性组合

2023

题目:主键或者主码是对应唯一的一条信息:要加上日期

image-20240517202718708

image-20240517202743964

问题

image-20240517202837326

image-20240517202825601

答案

image-20240517203259565

image-20240517203334184

2022

题目

image-20240517195247136

image-20240517195304647

image-20240517195324202

问题

image-20240517195340773

答案

image-20240517201952524

image-20240517202049475

注意事项:为什么第二个的主码为(省份证号,接种日期)

  1. 主码可以确定唯一的消息。 如果选择(省份证,医院名称,供应商名称):就会产生多个记录(不同日期):不满足唯一性
  2. 题目中规定每人每天可以接种一次。故可以采用省份证号,接种日期做为主码

image-20240517202120868

同上。选择(省份证号,检测日期) 作为主码

2021

题目

image-20240517203449721

image-20240517203510606

主码:用实线下标标出来了

问题

image-20240517203937649

image-20240517204127413

image-20240517204044842

2020

题目

image-20240517204435075

image-20240518133058665

问题

image-20240518133123085

答案

image-20240518134054928

image-20240518134109421

注意事项: 主码:唯一性 快递员的姓名不一定唯一,所以选择手机号作为主码

2019

题目

image-20240518134700164

image-20240518134715181

问题

image-20240518134741185

答案

image-20240518140237721

image-20240518140249441

2018

题目

image-20240518140412158

image-20240518140400655

image-20240518140430143

问题

image-20240518141818157

答案

image-20240518141647043

image-20240518141717303

image-20240518141750857

关系规范化

做题方法总结

1. 找候选码

记住候选码的含义:候选码可以决定关系模式中的所有属性,且候 选码任何一个真子集不能单独决定全属性

image-20240521131129617

2. 范式判断

(1)有非主属性码(候选码)部分函数依赖的,不满足2NF

(2)有非主属性对码的传递函数依赖的,不满足3NF

(3)有主属性码的部分和函数依赖的,不满足BCNF

(4)有多值依赖的,形如X→→Y,X和Y必在一个关系模式,且只有X和Y, 不能有其它多余属性。如果有,不满足4NF

image-20240521131315461

3. 分解关系模式

image-20240521131353441

**多值函数依赖**: 多值函数依赖分在一起

**传递函数依赖**:就将传递函数依赖分开

**部分函数依赖**:部分函数依赖分开

总结

image-20240521131548974

真题

2023

image-20240521161858566

image-20240521161918341

2022

image-20240521154534086

image-20240521154657870

2021

image-20240521170431512

image-20240521170448277

2020

image-20240521171426048

image-20240521171503978

2018

image-20240521201112236

image-20240521201555096

image-20240521201542770

image-20240521201636293

image-20240521201730873

image-20240521201829777

image-20240521201820086

2017

image-20240521211119724

image-20240521211128448

image-20240521211018807

image-20240521212643221

2016

image-20240521215709332

image-20240521215724360

image-20240521215754494

image-20240521215804478

2015

image-20240521221121078

image-20240521221131356

image-20240521221142464

image-20240521221153526

image-20240521221202044

image-20240521221210495

image-20240521221218808

image-20240521221242683

SQL

1. 触发器

create trigger 触发器名称 [before|after]
	[delete |INSERT |UPDATE OF 列名]
ON 表名
	referencing [new row as nrow| old row as orow]
[for each row|for each statement]
[with <触发条件>]
begin
	<触发动作>
end [触发器名称]

2. 游标

定义游标 exec sql declare 游标名称 cursor for
		select 语句
打开游标 exec sql open 游标名称
推进游标 exec sql fetch 游标名 into 变量表
关闭游标 exec sql close 游标名称

3. 存储过程

create procedure 存储过程名(in|out|in out 参数1 类型名称,in |out|in out 参数2 类型名称)
[as]
begin
	sql语句
end
in :输入参数
out: 输出参数
in out: 既可以输入参数 又可以输出参数

4. 视图

create view 视图名(列表)
as select 查询子句
with check option 

事务

事务调度

1. 串行调度

多个事务依次(顺序)串行执行,且只有当一个事务的所有操作都执行完成才执行另一个事务的所有操作

2. 可串行化调度:并发调度

多个事务并发执行是正确的。当且仅当其并发结果某一次序串行地执行的结果相同

并发问题

1. 丢失修改:

两个事务对同一个数据进行修改,导致事务A对数据库的修改 被事务B的修改所覆盖

image-20240524193916545

2. 不可重复读

image-20240524193953975

3. 读脏数据

image-20240524194035178

封锁协议:三级封锁协议

image-20240524194634473

2段锁协议

两段锁协议:2pL: 同一事务对任何数据进行读写之必须对该数据加锁,在释放一个封锁之后该事务不在申请和获得任何其他封锁

两段锁: 获得封锁, 释放封锁

遵循两段锁协议 一定可串行化,不遵循两段锁,可串行化,也不可串行化

两段锁协议可能产生死锁: 因为每个事务都不即时解除被封锁的数据,可能导致多个事务都要求对方一封锁的数据二不能继续运行。

image-20240524194550590

隔离级别

image-20240524194743616

2022

image-20240524192617726

image-20240524192633511

image-20240524192653723

image-20240524192944501image-20240524193229292

posted @ 2025-03-19 14:44  我爱读论文  阅读(132)  评论(0)    收藏  举报