2022年数据库原理知识点总结 .pdf

上传人:H****o 文档编号:60504318 上传时间:2022-11-16 格式:PDF 页数:19 大小:241.32KB
返回 下载 相关 举报
2022年数据库原理知识点总结 .pdf_第1页
第1页 / 共19页
2022年数据库原理知识点总结 .pdf_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《2022年数据库原理知识点总结 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库原理知识点总结 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据库原理知识点总结目录未找到目录项。一数据库基础知识(第 1、2 章)一、有关概念1.数据2.数据库(DB)3.数据库管理系统(DBMS)Access 桌面 DBMS VFP SQL Server Oracle 客户机/服务器型DBMS MySQL DB2 4.数据库系统(DBS)数据库(DB)数据库管理系统(DBMS)开发工具应用系统二、数据管理技术的发展1.数据管理的三个阶段人工管理文件系统数据库系统数据能否保存不能保存可以保存可以保存数据面向的对象某一应用程序某一应用程序整个应用系统数据的共享程度无共享,一组数据只能对应一个应用程序。共享性差,一个数据文件只能对应一个应用程序。共享性高

2、数据的独立性不独立,它就是应用程序的一部分。独立性差数据库与应用系统完全分开概念模型一、模型的三个世界1.现实世界2.信息世界:即根据需求分析画概念模型(即 E-R 图),E-R 图与 DBMS 无关。3.机器世界:将 E-R 图转换为某一种数据模型,数据模型与DBMS 相关。注意:信息世界又称概念模型,机器世界又称数据模型二、实体及属性1.实体:客观存在并可相互区别的事物。2.属性:数据库原理知识点总结3.关键词(码、key):能唯一标识每个实体又不含多余属性的属性组合。一个表的码可以有多个,但主码只能有一个。例:借书表(学号,姓名,书号,书名,作者,定价,借期,还期)规定:学生一次可以借多

3、本书,同一种书只能借一本,但可以多次续借。4.实体型:即二维表的结构例 student(no,name,sex,age,dept)5.实体集:即整个二维表三、实体间的联系:1.两实体集间实体之间的联系1:1 联系1:n 联系m:n 联系2.同一实体集内实体之间的联系1:1 联系1:n 联系m:n 联系四、概念模型(常用 E-R 图表示)实体型:属性:联系:说明:E-R 图作为用户与开发人员的中间语言。E-R 图可以等价转换为层次、网状、关系模型。举例:学校有若干个系,每个系有若干班级与教研室,每个教研室有若干教员,其中有的教授与副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,

4、每门课程有若干学生选修。用E-R 图画出概念模型。数据库原理知识点总结数据模型一、层次模型:用树型结构表示实体之间的联系。每个结点代表一个实体型。只能直接处理一对多(含一对一)的实体关系。查找层次数据库中的记录,速度较慢。二、网状模型:用图结构表示实体之间的联系。每个结点代表一个实体型。可以处理多对多的实体关系。查找网状数据库中的记录,速度最快。三、关系模型:用二维表表示实体之间的联系。1.重要术语:关系:一个关系就就是一个二维表;元组:二维表的一行,即实体;关系模式:在实体型的基础上,注明主码。关系模型:指一个数据库中全部二维表结构的集合。2.特点:关系模型就是建立在严格的数学理论的基础上的

5、;关系模型的存取路径对用户透明;查找关系数据库中的记录,速度最慢。小结:数据有三种类型,DBMS 就有三种类型,DB 亦有三种类型。数据库系统结构一、数据库系统的 体系结构 单机结构:DBMS、数据库、开发工具、应用系统安装在一台计算机上。C/S 结构:局域网结构客户机:装开发工具、应用系统数据库原理知识点总结服务器:装 DBMS、数据库 B/S 结构:Internet 结构服务器:装 DBMS、数据库、开发工具、应用系统客户机:装 IE即可三、数据库系统的模式结构1.三级模式 模式:就是数据库中全体数据的逻辑结构与特征的描述。模式只涉及数据库的结构;模式既不涉及应用程序,又不涉及数据库结构的

6、存储;外模式:就是模式的一个子集,就是与某一个应用程序有关的逻辑表示。特点:一个应用程序只能使用一个外模式,但同一个外模式可为多个应用程序使用。内模式:描述数据库结构的存储,但不涉及物理记录。2.两级映象 外模式/模式映象:保证数据库的逻辑独立性;模式/内模式映象:保证数据库的物理独立性;3.两级映象的意义 使数据库与应用系统完全分开,数据库改变时,应用系统不必改变。数据的存取完全由DBMS 管理,用户不必考虑存取路径。数据库管理系统1 DBMS 的功能:负责对数据库进行统一的管理与控制。数据定义:即定义数据库中各对象的结构 数据操纵:包括对数据库进行查询、插入、删除、修改等操作。数据控制:包

7、括安全性控制、完整性控制、并发控制、数据库恢复。2.DBMS 的组成:DDL 语言DML 语言DCL 语言实用程序注意:SQL 集 DDL,DML,DCL 功能于一体;所有应用程序通过SQL语句才能访问数据库一、基本概念1.码:能唯一标识元组的属性集。2.候选码:一个属性集既能唯一标识元组,且又不含有多余属性,一个关系模式可以有多个候选码。3.主码:任选候选码中的一个。4.主属性:主码中包含的各个属性。5.非主属性:不包含在主码中的各个属性。数据库原理知识点总结6.外码:设 F就是关系R的一个属性,不就是 R 的主码,但却就是另一个关系S的主码,则称F就是关系R 的外码。例:student(s

8、no,sname,ssex,sage,sdept)Sc(sno,cno,grade)Sc的主码为:(sno,cno);外码为:sno 二数据库设计(第 3 章)一、数据库设计的步骤 需求分析:了解分析用户的需要、要求。概念结构设计:根据需求分析的结果画概念模型(即 E-R 图)。逻辑结构设计:将 E-R 图转换为某一种数据模型,并优化。物理结构设计 数据库实施 数据库运行与恢复概念结构设计一、局部 E-R 图设计1.确定局部范围通常把系统涉及的各个部门或各个主要功能作为局部。2.确定实体与属性 属性就是不能再分的数据项;联系只发生在两实体之间;原则上,能够作为属性,就不要作为实体。二、合并成总

9、体E-R 图1.消除各局部E-R 图的冲突问题。2.按公共实体名合并,生成初步E-R 图。3.消除冗余的属性与冗余的联系,生成总体 E-R 图。逻辑结构设计一、联系的属性与主码(1)联系的属性:必须包含相关联的各实体型的主码。(2)联系的主码1:1 联系:可以就是相关联的任一实体型的主码。1:n 联系:必须就是n 方实体型的主码。m:n 联系:必须就是相关联的各实体型的主码之与。二、E-R 图向关系模型的转换(1)把每个实体型转换为一个关系模式。(2)1:1 联系:可以消化到相关联的任一实体型对应的关系模式中。XH XM NL 数据库原理知识点总结班长(XH,XM,NL,BH)班级(BH,RS

10、)(3)1:n 联系:可以消化到n 方实体名对应的关系模式中。例:一个班级有多名学生,每名学生只能属于一个班级。每一个班级有一名班长,她就是学生中的一员。学生(XH,XM,NL,BH)班级(BH,RS,XH)班长的学号(4)m:n 联系:必须转换为一个关系模式,并且不能消化。例:学生(sno,sname,ssex,sage,sdept)课程(cno,cname,credit)选修(sno,cno,grade)(5)多元联系:不能消化例:物理结构设计与数据库实施1.物理结构设计在逻辑设计的基础上,为每个关系模式选择合适的存储结构与存储方式。选择存储结构:即决定每个表的记录顺序。班长管理班级BH

11、RS XH BH 1 1 学生XH XM NL 组成班级BH RS XH BH 1 n 学生sno sname ssex sage sdept 选 修课程cno cname credit sno cno grade m n 供应商m 供应产品零件nk 班 长1 1 数据库原理知识点总结选择存取方式:即决定为哪些属性建立非聚集索引,以便加快查找速度。一般把经常查询的属性名指定为非聚集索引。2.数据库实施主要工作:定义数据库结构;组织数据入库;编写应用程序;数据库试运行;三关系数据库(第 4 章)一、域(domain)1.定义:域就是一组具有相同类型的值的集合。2.域的基数:域中所含数据的个数。二

12、、笛卡尔积1.定义:给定一组域D1,D2,D3,则 D1 D2 D3 称为笛卡尔积。2.笛卡尔积D1 D2 D3 对应一个二维表,所含元组的个数等于各个域的基数之积。三、关系1.定义:笛卡儿积的一部分元组称为关系。2.关系的目(或度):一个关系所含属性的个数。3.关系的性质任意两个元组不能完全相同,同一关系的属性名不允许重复。四、关系的完整性1.实体完整性:指关系的所有主属性都不能取空值。注意:实体完整性不仅仅就是主码整体不能取空值。2.参照完整性:指一个关系外码的取值必须就是相关关系中主码的有效值或空值。例:班级(班名,人数)学生(学号,姓名,性别,密码,班名)在学生表中,班名的取值必须就是

13、班级表班名 的值或空值。关系代数一、传统的集合运算设关系 R、S的结构完全相同,则:RS:由属于 R 或属于 S的元组组成。RS:由既属于 R 又属于 S的元组组成。RS:由属于 R 而不属于S的元组组成。思考:(RS)(RS)=?R S:设 R 有 m 个属性,K1 个元组;S有 n 个属性,K2 个元组,则 R S含有(m+n)个属性,(K1 K2)个元组。二、专门的关系运算1.选择:从关系 R 中选择满足条件的元组。记为:)(RF数据库原理知识点总结2.投影:从关系 R 中选择若干属性组成新的关系,并把新关系的重复元组去掉。记为:(R)A3.条件连接:将两关系按一定条件连接成一个新关系,

14、记为:S)(RSRFF说明:条件连接:两关系可以没有公共属性,若有公共属性,则新关系含有重复属性。4.自然连接:将两关系按公共属性连接成一个新的关系,并把新关系的重复属性去掉。记为:SR说明:自然连接:两关系至少有一个公共属性。对于 R 的每个元组,S 都从第一个元组开始判断,若两元组的公共属性值相同,则产生一个新元组添加到新关系中,最后把新关系中的重复属性去掉。等值连接?5.除:给定关系R(x,y)与 S(y,z),则 R S=P(x),其中 x,y,z 为属性组。求解过程:求 R 中 x 可以取哪些值,并求各值的象集。求 S在属性组y 上的投影K。检查每个象集就是否包含K 注:除不就是一个

15、必须的运算,可以由其它运算符代替。例:设有关系R,S如下图,求 R S。R A B C S B C D a1 b1 c2 b1 c2 d1 a2 b3 c7 b2 c1 d1 a3 b4 c6 b2 c3 d2 a1 b2 c3 a4 b6 c6 a2 b2 c3 a1 b2 c1 解:在关系 R 中,A 可以取四个值,a1,a2,a3,a4。a1 的象集为(b1,c2),(b2,c3),(b2,c1)a2 的象集为(b3,c7),(b2,c3)a3 的象集为(b4,c6)a4 的象集为(b6,c6)S在(B,C)上的投影K 为(b1,c2),(b2,c3),(b2,c1)显然只有 a1 的象

16、集包含K,故 R S=a1 结论:如何写关系代数表达式?答:查询涉及多个关系时,一般使用。查询涉及“否定”时,一般用差运算。查询涉及“全部”时,一般用除运算。查询涉及“至少”时,一般用四关系数据库标准语言SQL(第 5 章)数据库原理知识点总结T-SQL 一、SQL语言的特点SQL 语言集数据定义、数据查询、数据操纵、数据控制的功能于一体。动词数据定义Create、drop 数据查询select 数据操纵Insert、delete、update 数据控制Grant、revoke 所有的 DBMS 都支持 SQL语言。SQL 基础一、创建与使用数据库1.创建数据库create database

17、数据库名2.使用数据库Use 数据库名3.删除数据库drop database数据库名二、定义表1.创建表create table 表名(属性名类型,属性名类型)指定标识字段:identity(标识种子,标识增量)指定公式字段:属性名as 表达式例:create table student(no int identity(1,1),name char(6),chi smallint,mat smallint,score as chi+mat)2.删除表drop table表名,表名三、select 语句select*/表达式表into 新表 from 表名,表名where 条件 group b

18、y 属性名 having 条件 order by 属性名 Asc/Desc 数据库原理知识点总结1.Select 子句*代表所有属性名 若一个属性名来自多个表,则属性名前须冠以表名,格式为:表名、属性名 设置表达式的别名:表达式As 别名 限制查询结果的记录行数:all 返回全部记录top n 返回前面n 号记录distinct 表示取消重复行说明:top n 只能放在关键字select 的后面;all、distinct 只能放在关键字select 或聚合函数的后面。2.Where 子句 in 的格式:属性名in(常量,常量)like 的格式:属性名like 通配字符串通配符有:%表示 0 个

19、或多个字符-表示 1 个字符 在 Where 子句中指定连接:Where 表名 1、属性名=表名 2、属性名3.Order by子句order by 属性名 1 Asc/Desc,属性名 2 Asc/Desc 4.聚合函数 sum(属性名):纵向求数值型属性之与。avg(属性名)count(*)返回表的记录行数(含重复行)。count(属性名)返回指定列中取非NULL 值的单元格数目。count(distinct 属性名)返回指定列中取非NULL 值、非重复的单元格数目。max(属性名)min(属性名)5.Group by 子句使用 Group by 子句时,Select 子句只能使用分组项字

20、段与聚合函数例:以性别为分组项,求每一组的平均年龄。Select ssex,avg(sage)as 平均年龄From student Group by ssex 6.Having 子句 Having 子句只能跟在Group by 子句之后,且只能使用聚合函数与分组项字段。where 子句放在Group by子句之前,甚至可以没有Group by子句;且不能包含聚合函数。数据库原理知识点总结例:以系别为分组项,查询学生平均年龄大于19 岁的系的系名,平均年龄。Select sdept,avg(sage)as 平均年龄From student Group by sdept Having avg(s

21、dept)19 7.into 子句功能:将查询结果保存到新的基表中。一、查询的分类单表查询连接查询嵌套查询1.连接查询:在 where 子句中指定连接where 表名 1、属性名=表名 2、属性名2.嵌套查询 嵌套查询的特点每级查询的from 子句一般只包含一个表名。一个嵌套查询总可以分解为若干个单表查询,总可以改写成连接查询。若查询结果显示的属性名来自一个表,才可以写成嵌套查询。子查询不能使用 order by 子句,order by 只能用于最顶层的查询。在 where 子句中指定子查询where 属性名not in(子查询):子查询返回一列多行。where 属性名=(子查询):子查询返回

22、一列一行。where not exists(子查询):子查询返回多列多行。五、数据操纵1.insert 语句(1)每次插入一条记录insert into 表名(属性名表)values(表达式表)(2)插入子查询的结果insert into 表名(属性名表)子查询例:insert into student select*from student1 2.update 语句update 表名set 属性名=值,属性名=值 where 条件 缺省 where 子句,默认为更新全部记录。3.delete 语句数据库原理知识点总结delete from 表名where 条件 五关系数据库规范化理论(第 7

23、 章)函数依赖一、有关概念:1.函数依赖:任给 R(U),U 为属性集,x、y 为 U 的子集,如果对于x 的每个值,y 有唯一确定的值与之对应,则称 x 决定 y,或 y 函数依赖于x。记为:xy。2、完全函数依赖:若 x y,且对于 x 的所有真子集x,都有 xy,则称 x 完全决定 y,或 y 完全函数依赖于x。记为:yxf。结论:若 xy,且 x 只包含一个属性,则yxf。3.部分函数依赖:若 xy,且存在 x 的一个真子集x,满足 x y,则称 x 部分决定y,或 y 部分函数依赖于x。记为:yxp。4.传递函数依赖:若 xy,yz,但y x,则zxt二、平凡函数依赖与非平凡函数依赖

24、设 xy,如果 y 就是 x 的子集,则该依赖就是平凡的。如:Sno,sname sno 如果 y 中至少有一个属性不在x 中,则该依赖就是非平凡的。如:Sno,sname sname,sdept 如果 y 中没有一个属性在x 中,则该依赖为完全非平凡的。三、函数依赖的推理规则设有关系 R,x、y、z 为 R 的一个属性集,则有:自反律:若xy,则 xy。增广律:若 x y,则 xzyz。传递律:若 x y,yz,则 xz。注意传递律与传递函数依赖的区别。合并律:若 x y,xz,则 xyz。分解律:若 x yz,则 xy,xz。关系模式的规范化一、问题提出R 表XH KH KM XM DZ

25、CJ 961 C1 OS 高明D1 70 962 C2 DBS 高飞D2 72 962 C4 AI 高飞D2 80 数据库原理知识点总结962 C1 OS 高明D1 75 963 C1 OS 高明D1 90 答:存在问题 数据冗余大;修改麻烦;插入异常:应该插入到DB 中的数据插不进去。如:新开课程没有学生选修时,新开课程的课程号、课程名插不进去。删除异常:不应该删除的数据被删掉。如选修某门课的学生毕业了,在删除学生信息的同时,把课程信息也删除掉。结论:一个好的关系模式应满足:冗余应尽可能少;应尽可能避免插入、删除异常;消去关系中不合适的属性依赖关系。二、范式 什么叫范式?指一个关系的非主属性

26、函数依赖于主码的程度。什么叫关系规范化?指一个关系从低级范式向高级范式的转换过程。NFNFBCNFNFNFNF54321 应用:关系规范化理论应用在逻辑结构设计阶段。三、关系模式的规范化1.第一范式(1NF)定义:若关系 R 的所有属性不能再分,则 R1NF 2.第二范式(2NF)定义:若关系 R1NF,且它的每个非主属性都完全依赖于主码,则称 R2NF。存在问题:冗余大:R1 必要冗余,R2 冗余可以修改。修改麻烦插入异常:如新来的教师没有上课,则该教师的信息就没办法插入R2表中。删除异常:若某位教师只授一门课,当该门课不开时,该教师的信息亦被删除。原因:存在非主属性对主码的传递依赖。KHX

27、M,XM DZ,但 XM KH DZKHt传递依赖必须有两个非主属性 解决办法:将 R2 一分为二R21 表R22 表KH KM XM XM DZ C1 OS 高明高明D1 数据库原理知识点总结C2 DBS 高飞高飞D2 C4 AI 高飞R21 主码:KH R22 主码:XM 3.第三范式(3NF)定义:若关系 R2NF,且它的每个非主属性都不传递依赖于主码,则称 R3NF。规范化过程非规范关系使每个属性都不能再分1NF 消去非主属性对主码的部分依赖2NF 消去非主属性对主码的传递依赖3NF BCNF:关系模式R中,如每一个决定因素都包含码,则 R 就是范式。如果 R 属于 BCNF 那么 R

28、 一定属于3NF,反之未必。3NF 消去主属性对主码的部分依赖与传递依赖BCNF 4.结论 若 R1NF,且主码只含一个属性,则 R 一定为 2NF。若 R2NF,且只有 01 个非主属性,则 R 一定为 3NF。3NF 一般控制了数据冗余,一般避免了操作异常。范式并非越高越好,适可而止。六数据库保护技术(第 8 章)安全管理一、两种身份验证模式:仅 windows 模式:用户只能使用windows 登录名登录SQL Server 混合模式:用户可以使用windows 登录名或SQL Server 登录名登录SQL Server 二、两种身份验证:用户登录到SQL Server 时,必须使用特

29、定的登录名与密码标识自己。Windows 身份验证:用户登录到SQL Server 时,使用操作系统当前的登录名与密码。SQL Server 身份验证:用户登录到SQL Server 时,必须显式提供登录名与密码。常用安全性控制方法:用户标识与控制、存取控制、视图、审计、数据加密数据库完整性一、在创建表时指定约束1.主键约束数据库原理知识点总结constraint约束名 Primary key Clustered/Nonclustered(属性名,属性名)说明:每个约束都有一个约束名,约束名通常由系统自动给出。列级约束:只牵涉到一个属性的约束,它放在相关属性的后面,且省略属性名表。表级约束:牵

30、涉到多个属性的约束。创建主键约束、唯一性约束时可以指定聚集(clustered)或非聚集(nonclustered)。主键约束默认为聚集的,唯一性约束默认为非聚集的。一个表最多只能创建一个约束就是聚集的,聚集约束会影响数据表的记录号顺序。2.外键约束constraint约束名 Foreign key(属性名,属性名)References 主键表名(属性名,属性名)注意:两表关联的方式:临时关联:where 表名 1.属性名=表名 2.属性名永久关联:创建外键约束3.唯一性约束constraint 约束名 Unique Clustered/Nonclustered(属性名,属性名)主键约束与唯一

31、约束的区别:在一个表中只能定义一个主键约束,但可定义多个唯一性约束;指定为主键约束的字段不能取null 值,但指定为唯一性约束的字段允许取null 值。4.检查约束constraint约束名 Check(条件表达式)5、缺省约束constraint约束名 Default 常量二、删除表中的约束alter table 表名drop constraint 约束名,、,约束名注意:alter 语句后面只能跟着一个子句。三、向表添加约束alter table 表名add constraint 约束名约束定义,、,constraint 约束名约束定义约束定义指:Primary key Clustered

32、/Nonclustered(属性组)数据库原理知识点总结Foreign key(属性组)references 主键表名(属性组)Unique Clustered/Nonclustered(属性组)Check(条件表达式)Default 常量for 属性名默认对象默认对象与默认约束的功能类似。默认对象以单独的对象创建,可以绑定到数据库的所有表中。默认约束只能绑定到一个表中。规则规则与check 约束的功能类似。则以单独的对象创建,可以绑定到数据库的所有表中。check 约束只能绑定到一个表中。索引一、索引的概念:索引使用户能快速访问数据表的特定信息。索引必须依附于某个基本表,不能单独存在。二、索

33、引的类型:聚集索引:影响数据表的记录顺序非聚集索引:不会影响数据表的记录顺序注:一个表只能建立一个聚集索引,但可以建立若干个非聚集索引。三、创建索引1.自动创建索引:。如果在数据表的某个属性设置主键约束或唯一约束,则系统将在这些属性上自动创建唯一索引。自动创建的索引随约束的存在而存在,随约束的消失而消失。2.使用 SQL语句创建索引Create unique clustered/nonclustered index 索引名On 表名(属性名 asc/desc,属性名 asc/desc)注:若未指定clustered,则创建非聚集索引;若未指定排序方式,则为 ASC;text,ntext 类型的

34、字段不能指定为索引字段。四、删除索引:Drop index 索引名,索引名思考题:创建主键时,如果使主键字段值不影响数据表的记录顺序?视图一、视图的特点:数据库原理知识点总结视图只有结构,没有记录,就是虚表;一个视图总对应着一个select 语句;对视图的查询、更新,实际上就是对基本表的查询、更新。二、定义视图:1.创建视图:Create view 视图名(属性名,属性名)As 子查询with check option 说明:视图的属性个数必须与子查询中select 子句的表达式个数相同。2.删除视图:Drop view 视图名,视图名三、查询视图:select*/表达式表from 视图名,视

35、图名where 条件 group by 属性名 order by 属性名 Asc/Desc 四、操纵视图:1.向视图插入一条记录insert into 视图名(属性名表)values(表达式表)2.修改视图中的数据update 视图名 set 属性名=值,属性名=值 where 条件 3.删除视图中的记录delete from 视图名where 条件 存储过程1.什么叫存储过程?将一组 SQL语句,以一个名称存储在数据库中,就形成存储过程。2.创建存储过程Create proc 存储过程名 形参名类型=常量 output As SQL 语句序列说明:=常量:用于指定形参的默认值;output

36、用来指定该形参值就是可以返回的。触发器一、维护数据完整性的措施:创建约束基于一个表创建创建触发器创建规则:以单独的对象创建,可以绑定到数据库的所有表中。事务处理与并发控制1.什么叫事务?事务就是用户定义的一组操作序列。数据库原理知识点总结事务就是并发控制的基本单位。一个事务包含的诸操作要么都执行,要么都不执行。1 事务的属性原子性:指事务中包含的诸操作要么都执行,要么都不执行。一致性:事务必须使数据库从一个一致性状态变到另一个一致性状态。隔离性:一个事务的执行不能被其她事务干扰。持久性数据的锁定一、并发操作与数据不一致性1.数据不一致性包括三类丢失修改:指事务 1 与事务 2 从数据库中读入同

37、一数据并修改,事务 2 的提交结果破坏事务 1 提交的结果,导致事务1 的修改被丢失。不可重复读:指事务 1 读取数据后,事务 2 执行更新操作,使事务 1 无法再现前一次读取结果。读脏数据:指事务 1 修改某一数据后,事务 2读取该数据,事务 1 由于某种原因被撤销,这时数据又恢复到原值,事务 2 读到的数据与数据库中的数据不一致,称为“脏”数据。2.产生数据不一致性的原因并发操作破坏了事务的隔离性。二、并发控制的目标、方法1.目标:确保 DB 中的数据一致性。2.并发事务正确性的原则几个事务的并发执行就是正确的,当且仅当其结果与任何一个串行执行的结果相同。2 并发控制的方法DBMS 一般采

38、用“封锁”技术,保证并发操作的可串行化。一、封锁(Locking)1 什么叫封锁?SQL Server 自动强制封锁,并且会将封锁粒度控制在合适的级别,用户不必考虑封锁问题。2 封锁类型排它锁(X 锁):事务 T 对数据 A 加 X 锁,其它事务不能再对A 加锁,即其它事务不能读取与修改 A。共享锁(S 锁):事务 T 对数据 A 加 S锁,其它事务只能再对A 加 S 锁,即其它事务只能读A,不能修改A。3 封锁粒度封锁对象可以就是属性列、元组、关系、整个数据库。封锁对象的大小称为封锁粒度。封锁粒度越小,并发度越高,但并发控制的开销越大。4 封锁协议 事务 T 在修改数据A 之前,必须对其加X

39、 锁,直到事务结束才释放。事务 T 在读取数据A 之前,必须对其加S锁,直到事务结束才释放。数据库原理知识点总结遵循封锁协议,可以解决三种数据不一致性问题:丢失修改不可重复读读“脏”数据四、死锁与活锁封锁技术可以解决并发操作的不一致性问题,但也带来新的问题,即死锁与活锁。1 死锁:定义:两个事务已经各自锁定一个数据,但就是又要访问被对方锁定的数据,造成了循环等待,称为死锁。避免死锁的方法:顺序封锁法:若规定封锁顺序为A,B,则 T1,T2 只能先封锁A,再封锁 B。2.活锁:定义:若多个事务请求封锁同一个数据时,其中的某个事务总处于等待状态,则称为活锁。避免活锁的方法:先来先服务事务可串行化调度:两段锁协议

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁