华南师范大学数据库系统复习_第1页
华南师范大学数据库系统复习_第2页
华南师范大学数据库系统复习_第3页
华南师范大学数据库系统复习_第4页
华南师范大学数据库系统复习_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、考试范围: 1、 第一到第七章。包括教材、课件、实验(基本内容,只要做过实验就没问题)2、 “熟记”部分,一定要熟记3、 “查询习题讲解”课件中的题型及方法(跟第二次实验讲评一起的方法PPT)4、 掌握蓝色部分的应用题型和解题方法(对应章节的课件中有)第一章 数据库系统概述1. 四个概念:什么是数据? 什么是数据库? 什么是数据库管理系统(DBMS)?什么是数据库系统(DBS)?答:数据:以描述事物属性的符号;数据库:一个相互联系的数据的集合;数据库管理系统DBMS:存取和管理这些数据的一套程序;数据库系统DBS:由数据库、数据库管理系统、计算机系统组成。2. 熟记数据库系统的组成。数据库、硬

2、件、软件(DBMS,OS,数据库应用程序,应用程序开发工具),人员(数据库管理员,应用程序员,最终用户)DBS=数据库+数据库管理系统+计算机系统3. 理解数据库管理员DBA是对数据库进行集中控制和管理的最重要人员。4. 实例和模式的对比(内容/状态 vs 结构,变化 vs 稳定)模式:数据库中表的结构(属性),相对稳定。实例:数据库中表的具体内容(元组),时时变化。5. 三级模式:物理模式(又称内模式),逻辑模式(又称模式),和子模式(又称外模式)的含义是什么?一个数据库有几个物理模式,逻辑模式和子模式? 三级模式间的两极映射,以及是由谁(DMBS)完成这种映射功能的?两级映射的作用(好处)

3、是带来以下两种数据独立性。物理模式:整体数据库的物理结构,描述全体数据在硬盘等介质上如何存储。一个数据库只有一个内模式。逻辑模式:整体数据库的逻辑结构,描述所有数据的结构和数据间联系,屏蔽了向下的物理模式,即与数据的物理存储细节和硬件环境无关。一个数据库只有一个模式。子模式:一部分数据库的逻辑结构(特定用户能看到的部分),一部分数据库的逻辑结构(特定用户能看到的部分)。外模式=用户视图=(逻辑)模式的子集两级映射:内模式/模式映像,外模式/模式映像6. 两种数据独立性:什么是逻辑数据独立性?什么是物理数据独立性?用户或者应用程序面向的到底是哪一级数据库模式?物理数据独立性:当数据库的物理存储结

4、构改变时(如存储位置改变),应用程序不必变化。内模式/模式映射保证了物理数据独立性。逻辑数据独立性:当数据库的整体逻辑结构改变时(如字段的增减,字段名修改),应用程序不一定要改变。外模式/模式映射保证了逻辑数据独立性。用户/应用程序面向的是:外模式7. 熟记数据模型的定义,组成部分(三要素):数据结构,数据操作,数据完整性约束数据模型是用于描述数据、数据联系、数据语义和数据约束的一套工具与方法。8. 概念数据模型用于数据库设计,是对客观世界的第一层抽象。常见例子是E-R模型。9. 例举各种用于数据库的数据模型:层次、网状、关系、对象、半结构化等。第二章 关系模型与关系运算1. 数据模型的三要素

5、?关系模型的三要素?数据模型三要素:数据结构、数据操作、数据完整性约束关系模型三要素:关系、关系操作、关系完整性约束2. 关系的组成:什么是属性?什么是元组?什么是分量? 属性:关系的一列元组:关系的一行分量:行和列的交叉(某个元组的某个属性值)3. 理解关系有哪些基本性质?列的同质性:同一列中的分量(值)必须具有相同的类型,因为它们来自同一个域。异列同域性:不同列可以来自同一个域,但属性名不能相同元组相异性:关系里的任意两行不能相同,因为关系是一个元组集合行列无序性:关系的行或列是顺序无关的。属性值原子性:每一个属性值(分量)都必须是原子的(不可分),不允许出现组合数据,更不允许“表中有表”

6、。4. 关系有哪四种键?数量(是否有多个)?什么是外部键?外部键的属性名可以和所对应的主键不同。外部键可以指向同一个关系的主键。例如:学生(学号,姓名,班长学号.)。外部键从E-R图的什么概念转化而来?超键:关系中能够唯一标识每个元组的属性或者属性组,数量可能有多个。候选键:把超键中多余的属性去掉后,剩余的就是候选键,数量可能有多个。主键:从候选键选出一个作为主键,数量只能一个。外部键:关系R1中的单个属性或属性集合,对应关系R2的主键,可能有多个。5. 关系模式和关系实例的对比。关系模式比较稳定。而关系实例随时间而变化,原因是元组不断被插入/删除/更新6. 查询语言分类:过程化和非过程化语言

7、的区分和理解看课件。过程化:用户要指定 what: 查询什么 how:怎么查询,用什么方法、过程?非过程化:用户只要指定查询什么,而“怎么查询”的问题留给系统处理系统会自动寻找(近似)最优的查询方法/查询执行计划,即查询优化。关系代数是过程化的,SQL和关系演算是非过程化的7. 关系操作分为查询和更新操作。表示关系操作的语言:关系代数,关系演算(又分为元组关系演算和域关系演算)。关系代数是过程化的,关系演算是非过程化的。8. 掌握关系代数的各种运算(包括符号)。其中最基本的运算(不可替代)是哪些? 基本运算:选择s,投影Õ,笛卡儿积X,集合并È,集合差,更名r 附加运算:集

8、合交Ç,自然连接(同名属性相等,去掉重复同名属性),除÷(“所有”的查询,一般用除运算表示),赋值¬ 扩展运算:广义投影Õ(下标可有计算表达式),外连接,聚集运算 聚集函数:avg,sum,count,max,min(-distinct) 聚集运算:G1 , G2 , . , Gn G F1(A1) , F2(A2) , , Fm(Am)(E)一元运算:输入为一个关系 二元关系:输入为两个关系9. 查询优化的三种技术:物理优化,规则优化,代价估算优化。规则优化的三种启发式规则:选择优先,投影优先,笛卡尔积合并。物理优化:利用某些存储数据结构,如索引、聚簇

9、、排序文件等进行优化规则优化:只考虑查询语句本身,根据某些启发式规则进行优化,例如“先选择、先投影和后连接”代价估算优化:对多个候选查询计划,逐个进行代价估算(需要访问一些数据字典信息,如表的大小),从而选取代价最小的10. 应用题型:用关系代数表达查询问题(查询习题课件)第三章 关系数据库语言SQL1. SQL的全名(中英文)。SQL是非过程化的语言。理解SQL的特点(基本功能特征)。SQL的全名:结构化查询语言Structured Query Language特点:综合统一性(功能的统一、操作过程的统一)、高度非过程化、面向集合的操作方式2. 熟记SQL的四种功能。这些功能分别由哪些语句(

10、动词)实现?DDL(数据定义):create,alter,dropDML(数据操纵):select(数据查询)insert、update、delete(数据修改)DCL(数据控制):grant,revoke3. SQL对数据库三级模式的规定:每级模式由什么组成?物理模式:描述所有数据是如何在硬盘等介质上存储的,存储文件。(逻辑)模式:描述所有数据的结构及所有数据间的联系,基表。子模式:描述某个特定用户能看到的那一部分数据的结构及它们之间的联系,视图。4. 理解SQL中的系统数据类型,char/varchar/numeric等。char (n):长度固定为n的字符串varchar (n):可变长

11、度的字符串,最大长度为nnumeric (p, q):总共不多于p位,小数点右边不多于q位的定点数5. 掌握SQL的各个数据定义语句(特别是新建表,建视图,修改表,删除表的语句)。1) create table Student(Sno char(8) not null, SName varchar(8) not null, Sex char(1) default M, Primary key (Sno,SName), /Foreign key (Sno) references S(Sno) Check (Sex=M or Sex=F)2) alter table Student add Age

12、 int not null3) alter table Student modify Age smallint4) drop table Student 5) create index index_on_age Student(Age)6) create view Book_Not_Borrow(Book_Num,Book_Writer) as (select Book.Name,Writer.Name frome Book,Writer,Borrow where )6. 掌握SQL的Select数据查询语句。1) 计算次序:From (笛卡儿积) Where (选择) Group by Ha

13、ving Select (投影) Order by2)select姓名as name, 0.05*工资 as taxselect distinct 部门 select 选修.姓名 from 选修,选修 as 王3)where中可以出现:<、<=、>、>=、=、<>、and、or、not、between 下 and 上、in(集合)、not in(集合)、like(匹配串)4) Group By 属性1,属性2,:作用:Where子句筛选元组后,对它们分组,分组依据:属性1,属性2。用法:出现统计词,比如“平均,最高,总和, ”的问题Select 子句的作用发

14、生变化:对分组进行统计,Select中出现的属性只能是:分组属性、聚集函数Select 课程,Avg(成绩) as 平均成绩,Max(成绩) as 最高成绩From 选修Group By 课程5) Having Q (分组限定条件):作用:出现在group by子句后面,不能单独使用,Group By分好组后,按条件Q作筛选,Q中出现的属性只能是:分组属性、聚集函数(Having用于分组,Where用于元组)。Having Avg(成绩) > 856)Order By 属性1ascdesc,属性2 ascdesc,:出现在最最后面,作用:在Select子句得出结果后,先按属性1的值,升序

15、(asc)或降序(desc)排列,缺省是升序;属性1的值相等时,再按属性2值升序或降序排列Order By 成绩 desc ,姓名7) From子句中用子查询构造派生关系:复杂的查询分解成若干步->把上一步的查询结果变成一个派生关系->在下一步查询中使用,例如求平均一间宿舍的人数?(先求各间宿舍的人数,再求平均)8) Where子句中用子查询构造条件:a.where A not in (子查询),意义:A是否出现在子查询的结果中? (是为真,否则为假),可以多个元组,但只能有一个属性Where 课程 in (Select 课程 From 课程计划 Where 专业=网络'

16、)b.where A (比较运算, >, <, =,) some|all (子查询),意义:some: A与子查询结果中的一个值满足,比较时为真; all:A与子查询结果中的所有值都满足,比较时为真Where 年龄<=all (Select 年龄 From学生),可以多个元组,但只能有一个属性c.where A not exists (子查询),意义:子查询结果存在 (至少一条)记录,可包含多个属性。exists和in的差别:exists可包含多个属性,in只能有一个属性,故in的Select语句只有一个属性。Where exists (Select * From 选修 Wh

17、ere 姓名=学生.姓名 and 课程=物理)9) from子句中可以是连接运算A (inner) join B on 条件、A left/right/full outer join B on 条件From 报名表 right outer join 招工表 on 报名表.年龄<=招工表.年龄限制From 员工 right outer join 部门 on员工.部门部门.部门7. 掌握SQL的各个数据修改语句: Insert, Update, Delete。Insert Into 职员表(职工号,姓名,年龄) Values (E05,张明, 30);#没有包含的属性则采用默认值或者null

18、。delete from 学生表 Where 姓名=刘芳;#没有Where子句,则删除全部元组(但表的结构如字段、主键等保留)。Update 员工 Set 经理=(select 经理 From 部门 Where 部门=员工.部门); Update学生 Set 宿舍=203 Where 姓名=黄大鹏;#在关系中找到满足Where条件的 (没有就是全部)记录,然后更新 Set子句说明更新哪些字段,以及更新后的值(表达式的结果)8. 空值的意义;空值的运算规则(包括聚集函数忽略空值等)。给出一个包含空值的式子,能计算最终结果。表示两种情况:值未知,或值不存在计算规则:空值出现在算术运算中,其结果一定

19、还是null;如:2014-null=null空值出现在比较运算中,结果一定是unknown (true or false);如:not(Null = Null) and(Null<>Null)=unknown=false(最后一步计算得到的结果是unknown,那么就替换为false)空值出现在布尔运算中,null替换为unknown后再计算;如:(unknown or true) =true、(true and unknown)=unknown、(not unknown)=unknown聚集函数忽略空值,但count(*)例外。9. 理解视图的本质:命名的查询语句,只有这个才是

20、真正存储在数据库里;表象:虚拟表,与真正的表基本表相比有相同也有不同;动态变化)。理解视图的优点。一个命名、用查询从基本表中导出的虚拟表,物理上不存在,视图中的数据(记录)平时并没有存储在数据库里,而是用到时候才执行查询算出来(动态变化)。用户对视图的操作(查询或更新),系统在执行时必须转化为对相关基本表的操作。优点:简化用户的操作、个性化服务、安全性、逻辑独立性10. 掌握定义视图的语句。理解对视图的查询以及对视图的更新在后台是怎样进行的(视图的查询:展开视图替换视图为它所对应的查询。视图的更新:转化为对基本表的更新,这种转化可能因为缺少主键等原因失败,从而无法更新)。Create View

21、 物理成绩单 as (Select 姓名,课程,成绩 From 选修 Where 课程=物理 with check option 课程=物理) with check option:当对视图进行插入,更新时,要检查新元组是否满足视图对应的条件,否则拒绝。如果展开一个视图后,(它定义中的)查询又还出现了其它视图,那么继续展开,直到没有任何视图为止。11. 嵌入式SQL不要求。12. 应用题型:用SQL表达查询问题(查询习题课件)。用SQL建表,建视图等定义语句。第四章 关系数据库模式设计1. 熟记关系模式设计不当可能产生的四种问题:数据冗余和三种异常。数据冗余、更新异常、插入异常、删除异常2. 理

22、解函数依赖的概念。三对特殊类型的函数依赖:平凡/非平凡,部分/完全,传递/非传递。根据定义去理解和判定它们。1)关系模式R上存在以下函数依赖, X®Y(X函数决定Y,或Y函数依赖X, X是Y的决定元素)条件是当且仅当:两个元组如果在属性集X上相等,则它们在属性集Y上也相等。特例:X®X'(X'ÌX)2)平凡/非平凡:函数依赖X®Y,当YÍX 时是平凡的;否则是非平凡的。平凡的函数依赖一定成立,平凡的函数依赖是没有实质意义的3)部分/完全:函数依赖X®Y是部分的,当存在 X'ÌX , 使X'&#

23、174;Y成立;函数依赖X ® Y是完全的,当不存在 X'ÌX , 使X'®Y。理解:部分:左边的一部分就可以决定(右边);完全:左边全部才可以决定右边;4)传递/非传递:函数依赖X®Y是传递的,当存在Z,使X®Z, Z®Y 同时成立,但Z®X不成立(Z不是X的等价因素);函数依赖X®Y是非传递的,当不存在Z,使X®Z, Z®Y 同时成立,且Z®X不成立。理解:传递:左边与右边是间接的(决定)关系,存在中间元素;非传递:左边与右边是直接的(决定)关系,不存在中间元素。5

24、)对候选键的部分/传递函数依赖是”坏”的(KA是部分函数依赖or KA是传递函数依赖,其中K为候选键)。3. 用函数依赖判断一个属性集是否超键,或者是否候选键的方法。该超键能否通过函数依赖推出整一个属性集?该超键的子集能否推出整一个属性集?/判断超键:判断属性集是否在超键的闭包中;如果是,再判断属性集是否在超键的子集的闭包中。4. 例举Armstrong公理系统的各条定律:自反律.YÍX, 则X®Y (自反律);X®Y,则XZ®YZ(增广律);X®Y,且Y®Z,则X®Z(传递律);X®Y,且X®Z,则X&

25、#174;YZ(结合律);X®YZ,则X®Y且X®Z(分解律);X®Y,YZ®d,则XZ®d(伪传递律)若AB®C,则AB = AB(B)®BC5. 掌握计算属性集闭包的算法。以及由此判定一个函数依赖是否成立的方法。属性集的闭包:a所决定的全部属性的集合(包括a自身),例如F=A®B, B®C,(A)+ = (ABC)判断a®b是否成立,等价的方法判断b是否在a+ 中。证明候选键:求它的闭包,看能否包含U,且它的真子集均不是主键。6. 最小函数依赖集不要求。4.3这一节不要求。7. 掌

26、握1NF、2NF、3NF、BCNF。并能够进行判定。1)4NF Ì BCNF Ì 3NF Ì 2NF Ì 1NF2)1NF:关系模式的每个属性都是原子的。判断:逐个属性分析是否为原子属性(属性值不可再分,注意复合属性:如Parents;多值属性:如phone-number)。3) 键属性(主属性):出现在某个候选键中的属性;非键属性(非主属性):不出现在任何候选键中的属性。4)2NF:关系模式在1NF中,且每一个非键属性完全函数依赖于键。判断:检查键以外每个属性A,且X是候选键的一部分,如有X®A,则违反2NF(存在部分键(<键)属性能推

27、出非键属性:NO!)。简而言之,第二范式就是属性完全依赖于主键。5)3NF:关系在1NF中,每一个非键属性不传递函数依赖于键。判断:检查键以外每个属性A,且X不包含键,如有X®A,则违反3NF(存在非键属性能推出非键属性:NO!)。简而言之,第三范式就是属性不依赖于其它非主属性。6)BC范式:关系在1NF中,每一个属性不传递函数依赖于键。判断:每一个非平凡函数依赖XY,不管Y是什么,X必含键(=超键)(存在非键属性能推出其他任意属性:NO!)。7)求R最高属于第几范式:假设R最高属于第x范式,则证明R属于第x范式,而不属于第(x+1)范式。证明R属于第x范式:x=2:假设候选键HS,

28、证明所有非键属性C、T、R都不在H+ 或者S+ 中;x=3:假设候选键HS,找不到非键属性能推出非键属性如C®T,因为如果存在,则HS®C®T,则存在非键属性对候选键的函数依赖是传递的。8. 掌握规范化到1NF,3NF,BCNF的相关方法。关系模式应该至少规范化到3NF。规范化到3NF和规范化到BCNF相比,后者得到的关系模式属于更高级别,但是可能会丢失函数依赖。规范化到1NF:复合属性:转化成相应的多个原子属性;多值属性:移出去生成一个新关系,同时还包含原来的主键规范化到3NF:对于每一个X®Y,如果XY在Ri中则什么都不做,否则看X是否为Ri的主键,

29、是则把Y加到Ri中,否则新增加关系Ri+1=(XY),其中X为主键。规范化到BCNF:9. 多值依赖不要求。这个原来的有误。10. 应用题型:给出关系和函数依赖a) 判断和证明某个属性(集合)是否候选键?b) 判断某个函数依赖是否成立?c) 判断关系所属的最高范式,并给出证明。d) 将关系规范化到3NF,或者BCNF第五章 数据库设计1. 理解E-R模型的三要素:实体、属性和联系。以及在E-R图中的表示。E-R模型:实体-联系模型。实体:客观存在且可以与其他物体相区分的某一物体(如学生、课程、公司等);属性:实体具有的描述作用的特征(例如人的姓名、身高等),有复合(如Parents)、多值(如

30、phone-numbers)、派生属性(如税收);联系:实体之间的相互联系(如雇佣关系),有同一实体集内部联系、实体集之间联系。按照基数分类:一对一、一对多、多对一、多对多联系、多元联系。实体:矩形表示;属性:椭圆表示(双线椭圆表示多值属性,虚线属性表示派生属性);联系:菱形表示,如联系有属性,则用椭圆连接起来。EE-R模型:实体的属性是另一个实体(嵌套),在E-R图中表示:实体A通过有向线段连接另一个实体B的属性;实体A是实体B的一个子集(继承),在E-R图中表示:带圆圈的直线连接超类和子类。2. 能判断二元联系的类型:一对一,一对多,多对多。以及在E-R图中的表示。判断:如教师:课程,则1

31、个教师只有一门课程,则课程为“1”;而一门课程可以有多个教师,则教师为“多”。表示:两个矩形之间连接同一个菱形,直线上标注1,m,n表示映射的基数。3. 能将E-R图转化为关系模型。注意:多值属性的处理;1对1,1对多,多对1,多对多,三元以上联系各自的转化方式不要张冠李戴。E-R模型®关系模型:从基本元素到基本元素,实体®关系,属性®属性,联系®关系/属性。联系一对一:将“一”方主键+联系的属性一同添加到另外“一”方里面(成为外部键)。联系一对多、多对一:将“一”方主键+联系的属性一同添加到 “多”方里面(成为外部键)。联系多对多:转化为一个新关系,属

32、性包括两个“多”方的主键and联系的属性。联系三元以上:转化为一个新关系,属性包括各个涉及主体的主键and联系的属性。4. 熟记数据库设计的基本过程,包括在各个阶段分别要做的工作? 1.用户需求分析;2.概念设计(需求转化为概念模型,如E-R模型);3.逻辑设计(概念模型转化为数据模型,如关系模型);4.物理设计(定义物理特性,如索引、内部存储结构、文件组织方式等);5.数据库建立与管理。5. 应用题型1:画E-R图(概念设计)。6. 应用题型2:将E-R图转化为关系模型(逻辑设计)。第六章 数据库安全性与完整性1. 安全性是防止非法用户进入数据库,以及合法用户进入数据库后做了(未授权的)非法

33、操作。完整性是防止非法数据进入数据库,即使是合法用户及合法操作产生的。2. 掌握用SQL授予权限和回收、禁止权限的语句(grant, revoke, deny)。with grant option子句的作用。1)grant 权限 on 对象类型 对象名 to用户1, n|public with grant option权限有:create、select、insert、update、delete、reference、all对象类型有:schema(数据库模式)、table、view、attribute(属性)用户有:用户名,public代表所有用户with grant option :有此选项,

34、 用户可把获得的权限转授给其它用户。否则, 用户只能使用不能转授该权限。如:grant select, update on TABLE 选修表 to 教务员王 with grant option2)revoke 权限 on 对象类型 对象 from 用户1,n|public cascade|restrictcascade:级联式回收权限(包括权限转授),restrict:不存在级联时回收成功,存在则回收失败。revoke update on Table 选修表 from 教务员王 cascade 3)deny 权限 on 对象类型 对象 to 用户1, n|public禁止(授予负)权限:使用

35、户以后绝对不可以做相应操作4)create role 角色名:创建角色5)grant 角色 to 用户 with grant option:将此用户拉入这个用户集合。6)grant 数据库权限 to 用户 :数据库权限有connect、resource、dba。3. 理解常见权限的含义。(例如 insert on table S, update on view A等) 4. 理解完整性的含义:正确、有效、相容。完整性约束(规则)是数据为保证完整性所必须满足的条件。5. 熟记关系模型中的三类完整性规则。各有什么要求?理解哪些(修改)操作会破坏这些规则?实体完整性规则:元组主键取值唯一,且不能取空

36、值;破坏:主键取值不唯一或取空值。参照完整性规则:外部键要么取空值,要么取一个存在的对应主键值。破坏:取空值或取不存在的值。用户定义完整性规则:用户根据具体的应用环境定义的规则。6. 掌握用SQL定义主键约束、外键约束、非空(not null)约束、唯一(unique)约束、域约束、检查(check)约束的语句?以及这些约束的含义、作用。1)主键约束:primary key (Bookno,Readerno,Borrowdate);声明主键的同时定义了约束。2)外键约束:foreign key (Bookno) references Book(Bookno) on delete restric

37、t on update cascade;3)非空约束:姓名 varchar(20) not null:创建表的时候声明。4)默认值约束:地址 varchar(100) default 这家伙很懒,什么也没留下5)唯一约束:unique(姓名,电话):指定的属性/属性组不能取重复值。6)检查约束:check (性别=男or 性别=女or 性别 is null)。7)域约束:create domain SEX char(2) check(value in (男,女,Null)性别 SEX7. 熟记在定义外部键约束时,有哪几种参照动作?代表什么意义?说明当被参照关系的某个主键值被删除/更新时,如何处

38、理自己表中对应的外部键值。1)restrict方式(SQL SERVER:no action):仅当没有任何对应的外部键值时,才可以删除/更新这个主键值,否则系统拒绝执行此操作2)cascade方式:连带将所有对应的外部键值一起删除/更新3)set null方式:将所有对应的外部键值设为空值4)set default方式:将所有对应的外部键值设为默认值8. 断言不作要求9. 触发器是一种ECA规则,构成:Event事件,Condition条件,Action动作。触发器的事件主要有三类:INSERT,UPDATE,DELETE。第七章 数据库事务管理。1. 深刻理解事务的概念。熟记事务的ACID

39、性质(包括英文单词、解释)。概念:由一序列的数据库访问和修改操作组成,这些操作要么全做,要么全不做,是一个不可分割的整体性质:原子性(Atomicity):事务包含的所有操作要么全部做,要么全不做。一致性(Consistency):单独执行一个事务(无其它事务同时并发执行)的结果必须保证数据一致性。隔离性(Isolation):多个事务在并发执行时不会相互影响,最后的效果,与按某个顺序依次执行这些事务是一样的。持久性(Durability):事务一旦提交,它对数据库的影响就是永久性的。2. 掌握事务控制的多个SQL语句。两种结束方式(提交或回滚)的含义及区别。begin transaction

40、:开始事务commit(transaction):提交事务,若此时事务正常结束,事务所做的修改操作都有效且永久地写入数据库。事务没有执行完Commit之前,因某种原因(故障)而终止了,那么系统就会自动地回滚这个事务。rollback(transaction):回滚事务,事务非正常结束,事务所做的操作修改都无效且必须撤销(undo)如果SQL语句处于某个事务的Begin transaction和Commit/Rollback之间,那么这些语句就属于这个事务。如果以上不成立,那么这个SQL语句本身构成一个独立的事务。如:Begin Transaction Update account set mo

41、ney= money 50 where no=AUpdate account set money= money 50 where no=BCommit3. 熟记并发引起的三类数据不一致问题,它们是如何发生的(过程?)。产生不一致问题的根本原因是事务在并发执行(调度)时,没有保证隔离性。丢失修改:并发调度两个事务T1和T2,T1和T2从数据库读入同一数据后分别修改,T1提交后T2再提交,T2提交的修改覆盖了T1提交的修改,导致T1的修改丢失。不可重复读:事务T1读取某些数据之后,T2对数据记录进行了插入/删除/更新操作,当T1再次读取数据时,得到的是前一次不同的值。读“脏”数据:“脏”数据是其他

42、事务修改后但还没提交的数据。事务T1修改某一数据,并写入数据库,但尚未提交。T2读取该数据之后,可能因为该数据还未提交,后面被撤销,变成无效数据。4. 并发执行(调度)的正确性准则:可串行化等价于一个串行调度。5. 并发控制的任务:保证事务的并发执行(调度)是正确的/有隔离性/可串行化,避免不一致问题的产生。常见的一种实现方法是封锁。6. 封锁的类型:排他锁(写锁、X锁)、共享锁(读锁、S锁)、更新锁(U锁)、多种意向锁等。每种锁的含义(例如排他锁是读+写,共享是读,意向读是读一部分),相容关系?封锁的粒度越大=范围越大=冲突可能性=并发度1)排它锁(写锁,X锁):一个事务对数据对象A操作(写

43、)之前,给它加上X锁。获得X锁之后,该事务可以写+读。此时其他事务不能再加任何锁直到X锁被释放。2)共享锁(读锁,S锁):一个事务对数据A进行读取操作前,给它加上S锁,获得S锁之后,用户可以读,但不可以写。其他事务可以对A加更多的锁(X锁除外)。3)更新锁(U锁):对数据加U锁,然后读取到内存,在内存中更新数据A的值(此时其他事务可以对它加S锁进行读取)。然后申请将U锁升级为X锁(如果A有其他事务的读锁,则要延迟等待到所有S锁释放才能申请),升级后将更新写入外存。4)意向锁(部分锁):事务在一个小粒度对象上加S/X锁,之前先要对上级的大粒度对象加意向S/X锁,表示要对这个大粒度对象“读/写一部分”。5)意向共享锁(IS锁):表示要读取上级粒度的一部分页面或记录,此时一部分页面或记录上会对应存在S锁。6)意向排它锁(IX锁):表示事务打算写入该数据对象的一部分。7)共享意向排它锁(SIX锁):表示事务打算读取该整个数据对象(全部下级粒度) ,和写入该数据对象的一部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论