数据库原理总结-课件

上传人:仙*** 文档编号:241431122 上传时间:2024-06-25 格式:PPT 页数:111 大小:1.42MB
返回 下载 相关 举报
数据库原理总结-课件_第1页
第1页 / 共111页
数据库原理总结-课件_第2页
第2页 / 共111页
数据库原理总结-课件_第3页
第3页 / 共111页
点击查看更多>>
资源描述
2002 IBM Corporation1数据库原理总结数据库原理总结数据库原理总结数据库原理总结课程性质:学位课,课程性质:学位课,48学时学时考核方式和比重考核方式和比重平时成绩平时成绩,20作业,出勤,网教测试题作业,出勤,网教测试题附加作业附加作业,=5分分闭卷考试闭卷考试,803数据库原理总结数据库原理总结填空题填空题(每空(每空1分,共计分,共计20分)分)判断题判断题(每题(每题1分,共计分,共计10分)分)选择题选择题(每题(每题1分,共计分,共计15分)分)简答题简答题(每题(每题5分,共计分,共计15分)分)综合题综合题(共计(共计20分)分)设计题设计题(共计(共计20分)分)4数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程5数据库原理总结数据库原理总结1.数据管理技术的发展数据管理技术的发展2.数据库基本概念数据库基本概念3.数据模型数据模型4.数据库系统结构数据库系统结构5.数据库管理系统数据库管理系统6数据库原理总结数据库原理总结1.数据管理技术的发展数据管理技术的发展人工管理阶段人工管理阶段(40年代中年代中-50年代中年代中)文件系统阶段文件系统阶段(50年代末年代末-60年代中年代中)数据库系统阶段数据库系统阶段(60年代末年代末-现在现在)数据结构化数据结构化数据独立性高数据独立性高减少数据冗余减少数据冗余数据共享数据共享统一的数据保护功能统一的数据保护功能7数据库原理总结数据库原理总结2.什么是数据库什么是数据库数据库数据库(DataBase,DB)是长期存储在计算机内、是长期存储在计算机内、有组织的数据集合,它根据数据间的联系组织在有组织的数据集合,它根据数据间的联系组织在一起,具有较高的数据独立性,较少数据冗余,一起,具有较高的数据独立性,较少数据冗余,能够为各种用户共享能够为各种用户共享它需要由一个软件系统统一管理,这个软件系统它需要由一个软件系统统一管理,这个软件系统称为数据库管理系统称为数据库管理系统(DataBaseManagementSystem,DBMS)对数据提供存储、管理和应用的计算机系统称为对数据提供存储、管理和应用的计算机系统称为数据库系统(数据库系统(DataBaseSystem,DBS)8数据库原理总结数据库原理总结数据模型是数据特征的抽象,用来描述数据的一组数据模型是数据特征的抽象,用来描述数据的一组概念和定义。数据模型的三个要素概念和定义。数据模型的三个要素:(1)数据结构数据结构对数据静态特性的描述对数据静态特性的描述应用所涉及的对象和对象具有的特征,对象应用所涉及的对象和对象具有的特征,对象间的联系间的联系(2)数据操作数据操作对数据的动态特性的描述。对数据的动态特性的描述。主要分为更新和主要分为更新和检索两大类检索两大类具体包括检索、插入、删除、修改等具体包括检索、插入、删除、修改等(3)数据的完整性约束数据的完整性约束对数据静态和动态特性的限定,反映了数据对数据静态和动态特性的限定,反映了数据间的制约和依存关系间的制约和依存关系是区别数据模型最主要的部分是区别数据模型最主要的部分9数据库原理总结数据库原理总结数据库系统结构的三级模式,数据库系统结构的三级模式,外模式:外模式:是模式的子集,是用户的数据视图。是模式的子集,是用户的数据视图。模式(也称逻辑模式):模式(也称逻辑模式):是全体数据的逻辑结构和特征的描述,独立是全体数据的逻辑结构和特征的描述,独立于应用程序和物理存储于应用程序和物理存储内模式:内模式:是数据物理结构和存储方式的描述,是数据是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法在数据库内部的表示方法10数据库原理总结数据库原理总结三级模式结构的二级映像三级模式结构的二级映像目的:实现三个模式的联系和转换,目的:实现三个模式的联系和转换,外模式外模式/模式映像模式映像一个模式对应多个外模式,当一个模式对应多个外模式,当模式结构改变模式结构改变,则,则只要修改外模式与模式间的映像关系只要修改外模式与模式间的映像关系,而不必修,而不必修改外模式中的局部逻辑结构,因而相应的应用程改外模式中的局部逻辑结构,因而相应的应用程序亦可不必修改,实现了序亦可不必修改,实现了数据的逻辑独立性数据的逻辑独立性模式模式/内模式映像内模式映像一个模式对应一个内模式。一个模式对应一个内模式。当数据库的物理存储当数据库的物理存储结构改变结构改变时,时,仅需要修改模式与内模式间的映像仅需要修改模式与内模式间的映像关系关系,而可以使模式保持不变,从而使应用程序,而可以使模式保持不变,从而使应用程序保持不变,提供了保持不变,提供了数据的物理独立性数据的物理独立性11数据库原理总结数据库原理总结数据库的定义功能数据库的定义功能数据库的操纵功能数据库的操纵功能数据库的保护功能数据库的保护功能数据库维护功能数据库维护功能12数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程13数据库原理总结数据库原理总结1.E-R概念模型概念模型2.层次数据模型层次数据模型3.网状数据模型网状数据模型4.关系数据模型关系数据模型14数据库原理总结数据库原理总结数据模型是数据库研究的一个核心问题。数据模型是数据库研究的一个核心问题。概念模型概念模型,按用户的观点来对数据和信息建模。按用户的观点来对数据和信息建模。不涉及信息在计不涉及信息在计算机中如何表示;如实体算机中如何表示;如实体-联系模型联系模型逻辑模型逻辑模型按计算机系统的观点对数据建模按计算机系统的观点对数据建模主要包括网状模型、层次模型、关系模型、面向对象主要包括网状模型、层次模型、关系模型、面向对象模型、对象关系模型等模型、对象关系模型等物理模型物理模型它描述数据在系统内部的表示方式和存取方法,在磁它描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法盘或磁带上的存储方式和存取方法15数据库原理总结数据库原理总结(1)实体:客观存在并可相互区别的事物称为实体。实体:客观存在并可相互区别的事物称为实体。(2)属性:实体所具有的某一特征称为属性。属性:实体所具有的某一特征称为属性。(3)联系:在现实世界中,事物内部以及事物之间是联系:在现实世界中,事物内部以及事物之间是有联系的有联系的两个实体集之间的三类联系两个实体集之间的三类联系实体实体集集1联系名联系名实体实体集集2111:1联系联系实体实体集集1联系名联系名实体实体集集2mnm:n联系联系实体实体集集1联系名联系名实体实体集集21n1:n联系联系16数据库原理总结数据库原理总结概念模型的表示方法很多,最著名的是实体联系概念模型的表示方法很多,最著名的是实体联系模型模型,它由它由E-R图来表示。图来表示。E-R图三个基本成分:实体、属性和联系图三个基本成分:实体、属性和联系(1)实体)实体:用矩形表示,矩形框内写明实体名。用矩形表示,矩形框内写明实体名。(2)属性)属性:用椭圆形表示用椭圆形表示(3)联系:实体之间的联系用菱形框表示,)联系:实体之间的联系用菱形框表示,n学时数学时数课程课程课程号课程号课程名课程名m选课选课姓名姓名性别性别年龄年龄成绩成绩学生学生学号学号17数据库原理总结数据库原理总结层次数据模型层次数据模型(hierarchicaldatamodel)是较早用是较早用于数据库技术的一种数据模型,它是按层次结构来于数据库技术的一种数据模型,它是按层次结构来组织数据的。组织数据的。3.网状数据模型网状数据模型网状模型的结点间的联系可以是任意的,任何二个网状模型的结点间的联系可以是任意的,任何二个结点间都能发生联系,更适于描述客观世界。结点间都能发生联系,更适于描述客观世界。将层次模型中对结点的限制去掉后就成为网状模型。将层次模型中对结点的限制去掉后就成为网状模型。18数据库原理总结数据库原理总结在关系模型中,基本数据结构是二维表在关系模型中,基本数据结构是二维表(1)关系(关系(relation)关系是一张二维表,是由多个行和列组成的。一个关关系是一张二维表,是由多个行和列组成的。一个关系可用来描述一个实体集系可用来描述一个实体集(2)属性(属性(attribute)(3)域(域(domain)(4)元组(元组(tuple)(5)键(键(key)键是一个或多个属性组成的,能够唯一标识一个元组。键是一个或多个属性组成的,能够唯一标识一个元组。一一个个关关系系中中可可能能有有多多组组属属性性都都能能够够起起到到标标识识元元组组的的作作用用。因因而而,一一个个关关系系中中可可能能有有多多个个键键.选选择择其其中中的的一一个作为主键,其余为候选键个作为主键,其余为候选键19数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程20数据库原理总结数据库原理总结1.关系模型的基本概念关系模型的基本概念2.关系代数关系代数3.关系演算关系演算域关系演算域关系演算元组关系演算元组关系演算21数据库原理总结数据库原理总结1.关系模型的基本概念关系模型的基本概念定义定义3.1给定一组集合给定一组集合D1,D2,Dn,它们可以是,它们可以是相同的。相同的。D1,D2,Dn的的笛卡尔积笛卡尔积为:为:D1D2Dn=(d1,d2,dn)|di Di,i=1,2,n所有域的所有值的一个组合,不能重复所有域的所有值的一个组合,不能重复定义定义3.2D1D2Dn的任一个子集称为的任一个子集称为D1,D2,Dn上的一个上的一个关系关系。n叫做关系的目或度叫做关系的目或度(degree)22数据库原理总结数据库原理总结无限关系在数据库中是无意义的,因此限定关系代无限关系在数据库中是无意义的,因此限定关系代数数据模型中的关系必须是有限集合。数数据模型中的关系必须是有限集合。关系数据库中,关系都是规范化的,具有如下性质:关系数据库中,关系都是规范化的,具有如下性质:(1)每一列中的值是同类型的数据每一列中的值是同类型的数据,来自同一个域来自同一个域(2)不同的列可以有相同的域,每一列称为属性,不同的列可以有相同的域,每一列称为属性,用属性名标识。用属性名标识。(3)列的次序是无关紧要的。列的次序是无关紧要的。(4)元组的每个分量是原子的元组的每个分量是原子的,是不可分的数据项是不可分的数据项(5)元组的次序是无关紧要的。元组的次序是无关紧要的。(6)各个元组是不同的,即关系中不允许出现重各个元组是不同的,即关系中不允许出现重复元组复元组23数据库原理总结数据库原理总结对关系结构的描述称为关系模式。用如下形式表示:对关系结构的描述称为关系模式。用如下形式表示:关系名(属性名关系名(属性名1,属性名,属性名2,属性名,属性名n)关系模型的数据完整性约束关系模型的数据完整性约束实体完整性、参照完整性、用户自定义完整性实体完整性、参照完整性、用户自定义完整性其中,实体完整性、参照完整性是必须支持的其中,实体完整性、参照完整性是必须支持的关系模型的数据操纵关系模型的数据操纵查询、插入、删除和修改操作查询、插入、删除和修改操作在关系数据库系统中,对数据的全部操作都可以在关系数据库系统中,对数据的全部操作都可以归结为对关系的运算归结为对关系的运算24数据库原理总结数据库原理总结关系代数运算的分类:关系代数运算的分类:传统的集合运算传统的集合运算并、差、交、笛卡尔积并、差、交、笛卡尔积专门的关系运算专门的关系运算选择、投影、连接、除选择、投影、连接、除不仅涉及行运算,也涉及列运算,这种运算是为数据不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。库的应用而引进的特殊运算。关系代数中五种基本运算关系代数中五种基本运算并、差、笛卡尔积、投影、选择并、差、笛卡尔积、投影、选择交、连接、除法可以用交、连接、除法可以用5种基本运算来表达种基本运算来表达引进它们并不增加语言的能力,但可以简化表达引进它们并不增加语言的能力,但可以简化表达25数据库原理总结数据库原理总结集合运算是二个关系间的运算,运算结果生成一个集合运算是二个关系间的运算,运算结果生成一个新关系。其中,并新关系。其中,并()、交、交()、差、差()运算要求运算要求参加运算的二个关系参加运算的二个关系R和和S具有相同的目具有相同的目且其对应属性定义在同一个域上且其对应属性定义在同一个域上,称称R和和S为同类型的关系为同类型的关系R S仍为仍为n目关系,由属于目关系,由属于R或属于或属于S的元组组成的元组组成 R S=t|t R t S RS仍仍为为n目目关关系系,由由属属于于R而而不不属属于于S的的所所有有元元组组组组成成R-S=t|t R t S26数据库原理总结数据库原理总结RS仍为仍为n目关系,由既属于目关系,由既属于R又属于又属于S的元组组成的元组组成 RS=t|t R t S RS=R(R-S)R S关系关系R和和S的笛卡尔积为的笛卡尔积为R中所有元组和中所有元组和S中所有中所有元组的拼接。元组的拼接。F(R)选选择择运运算算是是关关系系上上的的一一元元运运算算,是是从从关关系系中中选选择择满足一定条件的元组子集满足一定条件的元组子集 F(R)t t R t(F)27数据库原理总结数据库原理总结x(R)从从R中选择出若干属性列组成新的关系中选择出若干属性列组成新的关系条条件件连连接接是是将将二二个个关关系系中中满满足足连连接接条条件件的的元元组组拼拼接起来形成新元组的集合接起来形成新元组的集合,也叫也叫连接连接自然连接自然连接是在两个关系是在两个关系共同属性共同属性上的等值连接上的等值连接它要求两个关系中进行比较的分量必须是它要求两个关系中进行比较的分量必须是相同的属性相同的属性组组,并且在结果中,并且在结果中把重复的属性列去掉把重复的属性列去掉28数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程29数据库原理总结数据库原理总结结构化查询语言结构化查询语言SQL(StructuredQueryLanguage)是一种介于关系代数与关系演算之间)是一种介于关系代数与关系演算之间的语言,是一个通用的、功能极强的关系数据库语的语言,是一个通用的、功能极强的关系数据库语言,是关系数据库的标准语言言,是关系数据库的标准语言SQL语言集数据定义语言语言集数据定义语言DDL、数据操纵语言、数据操纵语言DML、数据控制语言数据控制语言DCL的功能于一体,充分体现了关系的功能于一体,充分体现了关系数据语言的特点和优点数据语言的特点和优点30数据库原理总结数据库原理总结1.数据定义数据定义:create2.数据查询数据查询:select3.数据更新数据更新:insertupdatedelete4.SQL中的视图中的视图5.SQL的数据控制的数据控制6.嵌入式嵌入式SQL31数据库原理总结数据库原理总结SQL的数据定义功能主要包括表、视图、索引和数的数据定义功能主要包括表、视图、索引和数据库模式的定义据库模式的定义表的定义、删除与修改表的定义、删除与修改CREATETABLE、ALTERTABLE、DROPTABLE32数据库原理总结数据库原理总结索引类型:索引类型:依据索引的顺序和数据库的物理存储顺序是否相依据索引的顺序和数据库的物理存储顺序是否相同,索引分为两类:同,索引分为两类:聚簇索引、非聚簇索引聚簇索引、非聚簇索引唯一索引、组合索引等唯一索引、组合索引等数据查询数据查询单表查询、连接查询单表查询、连接查询(外连接外连接)、嵌套查询、集合、嵌套查询、集合查询查询33数据库原理总结数据库原理总结语句格式语句格式SELECTALL|DISTINCT,FROM,WHEREGROUPBYHAVINGORDERBYASC|DESC;SELECT子句子句:指定要显示的属性列:指定要显示的属性列FROM子句子句:指定查询对象:指定查询对象(基本表或视图基本表或视图)WHERE子句子句:指定查询条件:指定查询条件GROUPBY子子句句:对对查查询询结结果果按按指指定定列列的的值值分分组组,该该属属性性列值相等的元组为一个组。通常会在每组中作用集函数。列值相等的元组为一个组。通常会在每组中作用集函数。HAVING短语短语:筛选出只有满足指定条件的组:筛选出只有满足指定条件的组ORDERBY子句子句:对查询结果表按指定列值的升序或降序:对查询结果表按指定列值的升序或降序排序排序34数据库原理总结数据库原理总结主要集函数主要集函数计数计数COUNT(DISTINCT|ALL*)COUNT(DISTINCT|ALL)计算总和计算总和SUM(DISTINCT|ALL)计算平均值计算平均值AVG(DISTINCT|ALL)求最大值求最大值MAX(DISTINCT|ALL)求最小值求最小值MIN(DISTINCT|ALL)DISTINCT短语短语在计算时要取消指定列中的重复值在计算时要取消指定列中的重复值ALL短语:不取消重复值短语:不取消重复值;ALL为缺省值为缺省值35数据库原理总结数据库原理总结细化集函数的作用对象细化集函数的作用对象没有分组时,集函数将作用于整个查询结果没有分组时,集函数将作用于整个查询结果有分组时,集函数将作用于每个组有分组时,集函数将作用于每个组分组方法分组方法按指定的一列或多列值分组按指定的一列或多列值分组,值相等的为一组值相等的为一组使用使用GROUPBY子句后,子句后,SELECT子子句句的的中中只只能能出出现现分分组属性和集函数组属性和集函数使用使用HAVING短语筛选最终输出结果短语筛选最终输出结果只有满足只有满足HAVING短语指定条件的组才输出短语指定条件的组才输出36数据库原理总结数据库原理总结SELECT productid,orderid,quantity FROM orderhistSELECT productid,SUM(quantity)AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)=30productidproductidtotal_quantitytotal_quantity235345productidproductid orderidorderid quantityquantity1151110211022253115323037数据库原理总结数据库原理总结插入数据插入数据(1)插入单个元组插入单个元组语句格式语句格式INSERT INTO(,)VALUES(,)(2)插入子查询结果插入子查询结果语句格式语句格式INSERT INTO(,);38数据库原理总结数据库原理总结修改数据修改数据UPDATE SET 列名列名1=,列名列名2=WHERE;删除数据删除数据 DELETE FROMWHERE;39数据库原理总结数据库原理总结视图是建立在一个或多个基本表上的虚表。视图提视图是建立在一个或多个基本表上的虚表。视图提供了用户从不同角度观察数据库的方法。供了用户从不同角度观察数据库的方法。视图的定义视图的定义CREATEVIEW(,)ASWITHCHECKOPTION;WITHCHECKOPTION表示通过视图进行增删表示通过视图进行增删改操作时,不得破坏视图定义中子查询中的条件改操作时,不得破坏视图定义中子查询中的条件表达式表达式视图的删除视图的删除DROPVIEW;该语句从数据字典中删除指定的视图定义该语句从数据字典中删除指定的视图定义40数据库原理总结数据库原理总结更新视图更新视图可以通过视图插入、删除和修改数据,对视图的可以通过视图插入、删除和修改数据,对视图的更新最终要转换成对基本表的更新更新最终要转换成对基本表的更新DBMS实现视图查询的方法实现视图查询的方法实体化视图、视图消解法实体化视图、视图消解法视图的更新操作有些可以执行;有些不能执行,视图的更新操作有些可以执行;有些不能执行,即不能转换为对基本表的对应操作。即不能转换为对基本表的对应操作。视图的优点视图的优点(1)视图提供了逻辑数据独立性)视图提供了逻辑数据独立性(2)简化了用户视图)简化了用户视图(3)视图使用户以不同角度看待相同的数。)视图使用户以不同角度看待相同的数。(4)视图提供了安全保护功能)视图提供了安全保护功能41数据库原理总结数据库原理总结5.SQL的数据控制的数据控制授权语句授权语句GRANT回收语句回收语句REVOKE具有授予权的用户可以通过回收语句具有授予权的用户可以通过回收语句REVOKE将所授予的权限回收。将所授予的权限回收。6.嵌入式嵌入式SQLSQL语言提供了两种使用方式:语言提供了两种使用方式:交互式交互式SQL、嵌入式、嵌入式SQL嵌入式嵌入式SQL引入了游标机制协调面向集合和面向引入了游标机制协调面向集合和面向记录两种不同的处理方式记录两种不同的处理方式42数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程43数据库原理总结数据库原理总结1.查询处理查询处理2.查询优化查询优化3.代数优化代数优化4.基于存取路径的优化基于存取路径的优化5.基于代价估算的优化基于代价估算的优化44数据数据库原理原理总结查询处理过程包括:查询处理过程包括:查询分析查询分析查询检查查询检查查询优化查询优化查询执行查询执行45数据数据库原理原理总结(1)选择操作的实现选择操作的实现顺序扫描方法顺序扫描方法二分查找法二分查找法使用索引(或散列)的扫描方法使用索引(或散列)的扫描方法(2)连接操作的实现连接操作的实现嵌套循环法嵌套循环法索引嵌套循环法索引嵌套循环法排序合并法排序合并法散列连接法散列连接法46数据库原理总结数据库原理总结查询优化的总目标查询优化的总目标选择有效策略使查询代价最小选择有效策略使查询代价最小(实际上是较小实际上是较小)(1)代数优化)代数优化是关系代数表达式的优化,即按照一定的规则改变代数是关系代数表达式的优化,即按照一定的规则改变代数表达式中操作的次序和组合,使查询执行更高效。不涉表达式中操作的次序和组合,使查询执行更高效。不涉及底层的存取路径及底层的存取路径(2)基于存取路径的优化)基于存取路径的优化合理选择各种操作的存取路径以获得优化效果,需要考合理选择各种操作的存取路径以获得优化效果,需要考虑数据的物理组织和访问路径,以及底层操作算法的选虑数据的物理组织和访问路径,以及底层操作算法的选择,涉及数据文件的组织方法、数据值的分布情况等,择,涉及数据文件的组织方法、数据值的分布情况等,也称为物理优化也称为物理优化(3)基于代价估算的优化)基于代价估算的优化对于多个可选的查询策略通过估算执行策略的代价,从对于多个可选的查询策略通过估算执行策略的代价,从中选择代价最小的作为执行策略中选择代价最小的作为执行策略47数据库原理总结数据库原理总结代数优化策略代数优化策略(1)在关系代数表达式中尽可能早地执行选择操作在关系代数表达式中尽可能早地执行选择操作,这是最重要、最基本的一条这是最重要、最基本的一条(2)投影运算和选择运算同时进行投影运算和选择运算同时进行(3)将投影运算与其前面或后面的双目运算结合将投影运算与其前面或后面的双目运算结合(4)把某些选择同在它前面要执行的笛卡尔积结合把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算起来成为一个连接运算(5)找出公共子表达式找出公共子表达式48数据库原理总结数据库原理总结代数优化算法代数优化算法遵循代数优化的启发式规则遵循代数优化的启发式规则,应用关系代数等,应用关系代数等价变换公式来优化关系表达式的算法价变换公式来优化关系表达式的算法(1)把形如把形如F1 F2 Fn(E)变换为变换为F1(F2(Fn(E)(2)对每一个选择,尽可能把它移到树的叶端对每一个选择,尽可能把它移到树的叶端(3)对每一个投影,尽可能把它移向树的叶端对每一个投影,尽可能把它移向树的叶端(4)利用等价变换规则把选择和投影的串接合并,利用等价变换规则把选择和投影的串接合并,使多个选择或投影能同时执行,或在一次扫描中使多个选择或投影能同时执行,或在一次扫描中全部完成全部完成(5)把语法树的内节点分组。每一双目运算和它把语法树的内节点分组。每一双目运算和它所有的直接祖先为一组。所有的直接祖先为一组。49SELECTCnameFROMSt,Course,SCWHERESt.Sno=SC.SnoANDSC.Cno=Course.CnoANDSt.Sdept=ISSname(Student.Sno=SC.SnoCourse.Cno=SC.CnoStudent.Dept=计算机学院算机学院Course.Cname=DataBase(StudentSC)Course)50数据库原理总结数据库原理总结51数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程52数据库原理总结数据库原理总结数据库中所采用的安全性方法和技术数据库中所采用的安全性方法和技术1.用户标识与鉴别:用户标识与鉴别:该方法由系统提供一定的方式让用户标识自己的该方法由系统提供一定的方式让用户标识自己的名字或身份。用户进入系统时,由系统进行核对,名字或身份。用户进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权通过鉴定后才提供系统的使用权最外层的安全保护措施最外层的安全保护措施2.存取控制:存取控制:通过用户权限定义和合法权检查确保只有合法权通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法限的用户访问数据库,所有未被授权的人员无法存取数据。存取数据。53数据库原理总结数据库原理总结3.视图机制:视图机制:为不同的用户定义视图,通过视图机制把要保密为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护对数据提供一定程度的安全保护4.数据加密:数据加密:对存储和传输的数据进行加密处理,从而使得不对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容知道解密算法的人无法获知数据的内容5.数据库审计:数据库审计:数据库审计可以作为预防手段,建立审计日志,数据库审计可以作为预防手段,建立审计日志,把用户对数据库的所有操作自动记录下来放入审把用户对数据库的所有操作自动记录下来放入审计日志中,计日志中,DBA可以利用审计跟踪的信息,重可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等存取数据的人、时间和内容等54数据数据库原理原理总结(1)自主存取控制)自主存取控制DAC主体主体是指一个提出请求或要求的实体,主体可以是指一个提出请求或要求的实体,主体可以是是DBMSDBMS所管理的实际用户,或其它任何代表用户所管理的实际用户,或其它任何代表用户行为的进程、作业和程序。行为的进程、作业和程序。客体客体是接受其他实体访问的被动实体,是受主体是接受其他实体访问的被动实体,是受主体操纵,客体可以是文件、记录、视图等。操纵,客体可以是文件、记录、视图等。控制策略控制策略是主体对客体的操作行为集和约束条件是主体对客体的操作行为集和约束条件集,即主体对客体的访问规则集。集,即主体对客体的访问规则集。通过通过SQL的的GRANT语句和语句和REVOKE语句实语句实现现55数据数据库原理原理总结(2)强制存取控制)强制存取控制MAC每一个数据对象被标以一定的每一个数据对象被标以一定的密级密级,每一个用户,每一个用户也被授予某一个级别的许可证。对于任意一个对也被授予某一个级别的许可证。对于任意一个对象,具有合法象,具有合法许可证许可证的用户才可以存取的用户才可以存取强制存取控制规则:强制存取控制规则:1)仅当主体的许可证级别大于或等于客体的仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;密级时,该主体才能读取相应的客体;2)仅当主体的许可证级别等于客体的密级时,仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。该主体才能写相应的客体。规则修正:规则修正:主体的许可证级别主体的许可证级别=客体的密级客体的密级主体主体能写客体能写客体56数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程57数据库原理总结数据库原理总结数据的完整性是指数据的正确性、有效性和相容性数据的完整性是指数据的正确性、有效性和相容性为维护数据库的完整性,为维护数据库的完整性,DBMS必须提供哪些功能必须提供哪些功能?提供定义完整性约束条件的机制提供定义完整性约束条件的机制提供完整性检查的方法提供完整性检查的方法违约处理违约处理即如果发现用户的操作请求使数据违背了完即如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数整性约束条件,则采取一定的动作来保证数据的完整性据的完整性完整性约束条件的作用对象可以是:完整性约束条件的作用对象可以是:关系、元组和属性(列)关系、元组和属性(列)58数据库原理总结数据库原理总结实体完整性是指主键的值不能为空或部分为空实体完整性是指主键的值不能为空或部分为空如果一个元组的键为空值,或部分为空,该元组如果一个元组的键为空值,或部分为空,该元组将不能表示任何实体,因而无意义将不能表示任何实体,因而无意义通过对主键值的约束实现实体完整性通过对主键值的约束实现实体完整性CREATETABLEStudent(SnoCHAR(8)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20)CREATETABLESC(SnoCHAR(8),CnoCHAR(4),GradeSMALLINT,PRIMARYKEY(Sno,Cno)59数据库原理总结数据库原理总结参照完整性约束是对关系中作为外键的值的约束参照完整性约束是对关系中作为外键的值的约束若关系若关系R1中属性中属性A定义为外键,参照关系定义为外键,参照关系R2中的中的主键,则对于关系主键,则对于关系R1中的任一个元组在属性中的任一个元组在属性A上上的值或者为空值,或者为另一个关系的值或者为空值,或者为另一个关系R2中某个中某个元组的主键的值元组的主键的值用用FOREIGNKEY短语定义哪些列为外键短语定义哪些列为外键,用用REFERENCES短语指明外键参照哪些表的主键短语指明外键参照哪些表的主键CREATETABLESC(SnoCHAR(8),CnoCHAR(4),GradeSMALLINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno)60数据库原理总结数据库原理总结参照完整性违约处理参照完整性违约处理拒绝执行拒绝执行(NOACTION)级联操作级联操作(CASCADE)设置为空值设置为空值(SET-NULL)61数据库原理总结数据库原理总结用用户户定定义义的的完完整整性性反反映映应应用用领领域域需需要要遵遵循循的的约约束束条条件件,体体现现了了具具体体领领域域中中的的语语义义约约束束,用用户户定定义义后后由由系统支持系统支持在在关关系系数数据据库库系系统统中中,数数据据完完整整性性控控制制策策略略包包括括规规则、默认值、约束、触发器和存储过程等。则、默认值、约束、触发器和存储过程等。通常属性上的约束条件包括通常属性上的约束条件包括唯一约束唯一约束(UNIQUE)非空约束非空约束(NOTNULL)默认值约束默认值约束(DEFAULT)检查约束检查约束(CHECK)数据库原理总结数据库原理总结表的设计要体现完整性约束的实现表的设计要体现完整性约束的实现实体完整性的体现是主键约束;实体完整性的体现是主键约束;外键约束是参照完整性的体现;外键约束是参照完整性的体现;默认值和默认值和唯一唯一等是用户定义完整性的体现等是用户定义完整性的体现63数据库原理总结数据库原理总结触发器是用户定义在关系数据表上的一类由事件驱触发器是用户定义在关系数据表上的一类由事件驱动的特殊过程,用编程的方法实现复杂的业务规则动的特殊过程,用编程的方法实现复杂的业务规则触发器工作过程触发器工作过程Inserted表表存放存放insert或或update语句执行过程中语句执行过程中,插入到插入到触发表中的新数据行的副本触发表中的新数据行的副本.因此因此inserted表表中的行是和触发表中的新数据行相同中的行是和触发表中的新数据行相同.Deleted表表存放存放delete或或update语句执行过程中语句执行过程中,从触发从触发表中删除的旧数据行的副本。因此表中删除的旧数据行的副本。因此,deleted表表和触发表不会有相同的行和触发表不会有相同的行.64数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程65数据库原理总结数据库原理总结1.事务的基本概念事务的基本概念2.故障种类故障种类3.数据库恢复技术数据库恢复技术4.检查点恢复技术检查点恢复技术5.数据库恢复策略数据库恢复策略66数据库原理总结数据库原理总结事务事务(Transaction)是用户定义的一个数据库操作序列,是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的这些操作要么全做,要么全不做,是一个不可分割的工作单位工作单位原子性原子性:事务是数据库的逻辑工作单位,事务中包事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做括的诸操作要么都做,要么都不做一致性一致性:事务执行的结果必须是使数据库从一个一事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态致性状态变到另一个一致性状态隔离性隔离性:对并发执行而言对并发执行而言,一个事务的执行不能被其一个事务的执行不能被其他事务干扰他事务干扰持续性持续性(也称永久性也称永久性):一个事务一旦提交,它对数一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响其他操作或故障不应该对其执行结果有任何影响67数据库原理总结数据库原理总结数据库系统可能发生的故障大致分为以下几类:数据库系统可能发生的故障大致分为以下几类:系统故障系统故障整个系统的正常运行突然被破坏、所有正在整个系统的正常运行突然被破坏、所有正在运行的事务都非正常终止、内存中数据库缓运行的事务都非正常终止、内存中数据库缓冲区的信息全部丢失、外部存储设备上的数冲区的信息全部丢失、外部存储设备上的数据未受影响据未受影响事务内部的故障事务内部的故障某个事务在运行过程中由于种种原因未运行某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了至正常终止点就夭折了介质故障介质故障其它原因其它原因68数据库原理总结数据库原理总结数据恢复的基本原理数据恢复的基本原理数据冗余数据冗余:利用存储在系统其它地方的冗余数据利用存储在系统其它地方的冗余数据重建数据库中已被破坏或不正确的那部分数据重建数据库中已被破坏或不正确的那部分数据建立冗余数据最常用的技术是建立冗余数据最常用的技术是数据转储和登记日志文件数据转储和登记日志文件通常在一个数据库系统中,两种方法一起使用通常在一个数据库系统中,两种方法一起使用恢复子系统的功能恢复子系统的功能是利用冗余数据,再根据故障的是利用冗余数据,再根据故障的类型采取相应的恢复措施,类型采取相应的恢复措施,保证故障发生后,能把保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的数据库中的数据从错误状态恢复到某种逻辑一致的状态状态69数据库原理总结数据库原理总结恢复中经常使用的技术恢复中经常使用的技术数据库转储数据库转储静态转储和动态转储静态转储和动态转储海量转储和增量转储海量转储和增量转储基于日志的恢复技术基于日志的恢复技术写日志文件的两条原则写日志文件的两条原则:登记的次序严格按并行事务执行的时间次序登记的次序严格按并行事务执行的时间次序;必必须先写日志文件,后写数据库须先写日志文件,后写数据库Redo技术技术:重作已提交的事务重作已提交的事务Undo技术:技术:对没有提交的事务执行对没有提交的事务执行Undo,将被修,将被修改的数据项恢复到事务开始前的状态改的数据项恢复到事务开始前的状态70数据库原理总结数据库原理总结提高恢复效率的技术提高恢复效率的技术检查点技术检查点技术镜像技术镜像技术71数据库原理总结数据库原理总结事务故障的恢复事务故障的恢复利用日志文件撤销事务对数据的更改,系统回滚利用日志文件撤销事务对数据的更改,系统回滚到事务执行前的状态到事务执行前的状态。当事务故障发生时,系统反向扫描日志文件,并当事务故障发生时,系统反向扫描日志文件,并执行逆向操作,将更新前的数据写入数据库执行逆向操作,将更新前的数据写入数据库介质故障的恢复介质故障的恢复首先根据后备副本重建数据库,首先根据后备副本重建数据库,然后利用运行日志重做该副本备份后已完成的所然后利用运行日志重做该副本备份后已完成的所有事务有事务72数据库原理总结数据库原理总结(1)正向扫描日志文件(即从头扫描日志文件)正向扫描日志文件(即从头扫描日志文件)Redo队列队列:在故障发生前已经提交的事务在故障发生前已经提交的事务Undo队列队列:故障发生时尚未完成的事务故障发生时尚未完成的事务(2)对对Undo队列事务进行队列事务进行UNDO处理处理反向扫描日志文件,对每个反向扫描日志文件,对每个UNDO事务的更事务的更新新操作执行逆操作操作执行逆操作(3)对对Redo队列事务进行队列事务进行REDO处理处理正向扫描日志文件,对每个正向扫描日志文件,对每个REDO事务重新执事务重新执行登记的操作行登记的操作73数据库原理总结数据库原理总结检查点技术可以提高系统故障恢复的效率,数据库恢复检查点技术可以提高系统故障恢复的效率,数据库恢复时,利用检查点能判定哪些事务是正常结束的,从而确时,利用检查点能判定哪些事务是正常结束的,从而确定恢复哪些数据以及如何进行恢复定恢复哪些数据以及如何进行恢复检查点记录的内容检查点记录的内容1.建立检查点时刻所有正在执行的事务清单建立检查点时刻所有正在执行的事务清单2.这些事务最近一个日志记录的地址这些事务最近一个日志记录的地址写检查点的步骤写检查点的步骤:把日志缓冲区中的内容写入日志文件;把日志缓冲区中的内容写入日志文件;在日志文件中写入一个检查点记录;在日志文件中写入一个检查点记录;把数据库缓冲区的内容写入数据库;把数据库缓冲区的内容写入数据库;把检查点记录在日志文件中的地址写入重启动文件把检查点记录在日志文件中的地址写入重启动文件74数据库原理总结数据库原理总结利用检查点的恢复步骤利用检查点的恢复步骤(1)从重启动文件中找到最后一个检查点记录;从重启动文件中找到最后一个检查点记录;(2)得到检查点时刻的事务清单得到检查点时刻的事务清单,暂时放入暂时放入Undo队列队列(3)从检查点开始正向扫描日志文件,从检查点开始正向扫描日志文件,如有新开始的事务,暂时放入如有新开始的事务,暂时放入Undo队列队列;如有提交事务如有提交事务Tj,把,把Tj从从Undo队列移到队列移到REDO队列队列(4)对)对Undo队列事务进行队列事务进行UNDO处理;对处理;对Redo队列事务进行队列事务进行REDO处理处理。75数据库原理总结数据库原理总结第第1章章数据库系统引论数据库系统引论第第2章章数据模型数据模型第第3章章关系数据库关系数据库第第4章章关系数据库标准语言关系数据库标准语言SQL第第5章章查询处理和查询优化查询处理和查询优化第第6章章数据库的安全性数据库的安全性第第7章章数据库的完整性数据库的完整性第第8章章数据库恢复技术数据库恢复技术第第9章章并发控制并发控制第第10章章关系数据库设计理论关系数据库设计理论第第11章章数据库设计数据库设计第第12章章数据库编程数据库编程76数据库原理总结数据库原理总结并发操作带来的数据不一致性并发操作带来的数据不一致性丢失修改(丢失修改(lostupdate)事事务务T1和和T2读读入入同同一一数数据据并并修修改改,T2提提交交的的结结果果破破坏了坏了(覆盖了覆盖了)T1提交的结果,导致提交的结果,导致T1的修改被丢失。的修改被丢失。不可重复读不可重复读(non-repeatableread)事事务务T1读读取取数数据据后后,事事务务T2执执行行更更新新操操作作,使使T1无无法再现前一次读取结果。法再现前一次读取结果。读读“脏脏”数据数据(dirtyread)事事务务T1修修改改某某一一数数据据并并将将其其写写回回磁磁盘盘,事事务务T2读读取取同同一一数数据据后后,T1由由于于某某种种原原因因被被撤撤销销,这这时时T1已已修修改改过过的的数数据据恢恢复复原原值值,T2读读到到的的数数据据与与数数据据库库中中的的数数据据不不一一致致,则则T2读到的数据就为读到的数据就为“脏脏”数据数据,即不正确的数据。即不正确的数据。避避免免不不一一致致性性的的方方法法和和技技术术就就是是并并发发控控制制。最最常常用用的技术是封锁技术。的技术是封锁技术。77数据库原理总结数据库原理总结定义定义9.1多个事务的并发执行是正确的,当且仅当多个事务的并发执行是正确的,当且仅当并发执行的结果与这些事务按某一串行顺序执行的并发执行的结果与这些事务按某一串行顺序执行的结果相同,这种调度策略被称为结果相同,这种调度策略被称为可串行化调度可串行化调度。可。可串行化是并发事务正确调度的准则串行化是并发事务正确调度的准则。定义定义9.2如果一个调度如果一个调度S能通过一系列非冲突操作能通过一系列非冲突操作执行顺序的交换变成调度执行顺序的交换变成调度S1,则称,则称调度调度S和和S1冲突冲突等价等价冲突操作是指不同的事务对同一个数据的读写操冲突操作是指不同的事务对同一个数据的读写操作和写写操作,其他操作是不冲突操作作和写写操作,其他操作是不冲突操作不同事务的冲突操作和同一事务的两个操作不能不同事务的冲突操作和同一事务的两个操作不能交换交换78数据数据库原理原理总结可串行化调度的充分条件可串行化调度的充分条件:一个调度一个调度S在保证冲突操作的次序不变的情况下在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个通过交换两个事务不冲突操作的次序得到另一个串行调度串行调度S,则调度则调度S为为可串行化的调度可串行化的调度792024/6/25数据库原理总结数据库原理总结n【例例 9-3】证明调度证明调度S是否是可串行化调度。是否是可串行化调度。S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B)把把W2(A)与与R1(B)W1(B)交换,得到:交换,得到:R1(A)W1(A)R2(A)R1(B)W1(B)W2(A)R2(B)W2(B)802024/6/25数据库原理总结数据库原理总结n【例例 9-3】证明调度证明调度S是否是可串行化调度。是否是可串行化调度。S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B)把把W2(A)与与R1(B)W1(B)交换,得到:交换,得到:R1(A)W1(A)R2(A)R1(B)W1(B)W2(A)R2(B)W2(B)再把再把r2(A)与与r1(B)w1(B)交换:交换:L=R1(A)W1(A)R1(B)W1(B)R2(A)W2(A)R2(B)W2(B)因为因为L等价于一个串行调度等价于一个串行调度T1,T2所以调度所以调度S是可串行化的调度是可串行化的调度81数据库原理总结数据库原理总结封锁的类型封锁的类型共享锁(共享锁(Sharelock,简记,简记S锁锁,又称为读锁)又称为读锁)若事务若事务T对数据对象对数据对象A加上加上S锁,则其它事务锁,则其它事务只能再对只能再对A加加S锁,而不能加锁,而不能加X锁,直到锁,直到T释放释放A上的上的S锁锁排它锁(排它锁(eXclusivelock,简记,简记X锁锁,又称为写锁)又称为写锁)若事务若事务T对数据对象对数据对象A加上加上X锁
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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