已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020年5月3日星期日,兰州理工大学计算机与通信学院,1,欢迎你向我提问!E-mail:pangshuxia,如果你在学习中遇到问题,数据库原理与应用,PrincipleandApplicationofDataBase,2020年5月3日星期日,兰州理工大学计算机与通信学院,2,数据库原理与应用,PrincipleandApplicationofDataBase,第二章关系模型,2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系系统的十二条准则2.5关系系统的查询优化2.6关系数据库管理系统简介2.7小结,2020年5月3日星期日,兰州理工大学计算机与通信学院,3,数据库原理与应用,PrincipleandApplicationofDataBase,关系模型是目前最流行并且是最重要的数据模型。自从EFCodd于1970年提出关系模型以来,已占有了相当重要的地位,相对于以前的层次模型和网状模型,关系数据模型在许多方面对以前的数据模型进行了改进,这些改进简化了数据管理、数据检索等工作。,2020年5月3日星期日,兰州理工大学计算机与通信学院,4,数据库原理与应用,PrincipleandApplicationofDataBase,第二章关系模型,2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系系统的十二条准则2.5关系系统的查询优化2.6关系数据库管理系统简介2.7小结,2020年5月3日星期日,兰州理工大学计算机与通信学院,5,关系模型的组成:数据结构+关系操作+完整性约束,表结构8个运算三类完整性,关系代数语言关系演算语言SQL语言,实体完整性参照完整性自定义完整性,数据库技术,ConceptandTechnologyofDataBase,2020年5月3日星期日,兰州理工大学计算机与通信学院,6,数据库原理与应用,PrincipleandApplicationofDataBase,关系模型是目前广泛应用的一种数据模型。关系模型中涉及到的基本元素包括关系、关系操作以及对关系的完整性约束条件。关系关系是关系模型的数据结构。在关系模型中,数据用关系来表示,数据之间的联系仍用关系来表示,对数据的操作就是对关系的运算,而且关系运算的结果还是关系。通俗地讲,关系就是一张二维表,如下所示:,2020年5月3日星期日,兰州理工大学计算机与通信学院,7,数据库原理与应用,PrincipleandApplicationofDataBase,表中的每一行称为元组,指关系表所表示对象的实例,表中的每一列称为属性。列标题是属性名,该列属性的值,称为分量,2020年5月3日星期日,兰州理工大学计算机与通信学院,8,数据库原理与应用,PrincipleandApplicationofDataBase,关系的形式化定义(从集合论的角度)(1)域域是一组具有相同数据类型的值的集合。(2)笛卡尔积给定一组域,这些域中可以有相同的。的笛卡尔积为:其中每一个元素叫作一个n元组或简称元组。元素中每一个值叫作一个分量。若为有限集,其基数为,则,2020年5月3日星期日,兰州理工大学计算机与通信学院,9,数据库原理与应用,PrincipleandApplicationofDataBase,的基数M为:,()关系,的子集称作域上的关系,表示为:。这里R表示关系的名字,n是关系的目或度。当n=1时,称该关系为单元关系。当n=2时,称该关系为二元关系。,2020年5月3日星期日,兰州理工大学计算机与通信学院,10,数据库原理与应用,PrincipleandApplicationofDataBase,关系可分为以下三种类型:基本表:实际存在的表,它是实际存储数据的逻辑表示。查询表:查询结果对应的表。视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。,2020年5月3日星期日,兰州理工大学计算机与通信学院,11,数据库原理与应用,PrincipleandApplicationofDataBase,关系模式和关系数据库关系模式是对关系表中每个列的描述。关系模式需要给出关系名、每个属性的名称、属性的域及属性和域之间的映射关系。教师关系表对应的关系模式可以描述为:教师(编号,姓名,性别,年龄,职称,部门)关系数据库是对应于一个关系模型的某应用领域全部关系的集合。它是基于关系模型的数据库。,2020年5月3日星期日,兰州理工大学计算机与通信学院,12,数据库原理与应用,PrincipleandApplicationofDataBase,码码是关系模型完整性约束的一个体现。在一个关系中,若某一属性集合的值可唯一地标识每一个元组,即其值对不同的元组是不同的,这样的最小属性集合称为候选码(Candidatekey),简称为码(Key)。若一个关系中有多个候选码,则选定其中一个作为主码(Primarykey)。在定义关系模式时,为了体现出关系的主码,通常在选为主码的属性下面加下划线。例如教师关系:教师(编号,姓名,性别,年龄,职称,部门),2020年5月3日星期日,兰州理工大学计算机与通信学院,13,数据库原理与应用,PrincipleandApplicationofDataBase,关系操作关系数据模型定义了关系上的一组操作,常用的关系操作包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操作。关系的查询表达能力很强,是关系操作中最主要的部分。查询操作可以分为:选择、投影、连接、除、并、差、交、笛卡尔积等。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。,2020年5月3日星期日,兰州理工大学计算机与通信学院,14,数据库原理与应用,PrincipleandApplicationofDataBase,关系的完整性规则关系模型的完整性规则是对关系的某种约束条件,目的在于控制并确保数据内容的有效性和一致性。关系模型的完整性规则包括实体完整性、参照完整性和用户自定义的完整性。实体完整性规则在关系表中,所有元组主码的值都不能为空。下面的教师表违背了实体完整性规则,2020年5月3日星期日,兰州理工大学计算机与通信学院,15,数据库原理与应用,PrincipleandApplicationofDataBase,参照完整性在关系模型中,采用给关系定义外键的形式进行关系间属性的引用,从而实现参照完整性。外键,也称为外码。它是关系的一组属性,但不是主码属性,它的取值与另外一个关系中主码属性的取值相匹配,也就是说,属性的数目以及数据类型都要相同。,2020年5月3日星期日,兰州理工大学计算机与通信学院,16,数据库原理与应用,PrincipleandApplicationofDataBase,例2.1教师和研究生可以用下面的关系来表示,其中主码用下划线标识:教师(编号,姓名,性别,年龄,职称,部门)研究生(学号,姓名,导师编号,导师姓名,专业),教师信息表PK编号姓名性别年龄职称部门,研究生信息表PK学号姓名导师编号导师姓名专业,外键,2020年5月3日星期日,兰州理工大学计算机与通信学院,17,数据库原理与应用,PrincipleandApplicationofDataBase,参照完整性规则关系中每个元组在外键上的取值,或者为空值,或者等于与该关系相匹配的关系的主码值。用户自定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件。除此之外,还需要有能反映某一具体应用所涉及的数据必须满足的语义要求的约束条件。这种约束条件,称为用户自定义的完整性。例如:人的身高不能超过3米,学生成绩应该大于等于零,职工的工龄应该小于年龄。,2020年5月3日星期日,兰州理工大学计算机与通信学院,18,数据库原理与应用,PrincipleandApplicationofDataBase,第二章关系模型,2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系系统的十二条准则2.5关系系统的查询优化2.6关系数据库管理系统简介2.7小结,2020年5月3日星期日,兰州理工大学计算机与通信学院,19,数据库原理与应用,PrincipleandApplicationofDataBase,关系数据语言(也称数据库操作语言)是数据库管理系统提供的用户接口,是用户用来操作数据库的工具,通常包括查询语句和非查询语句。关系数据语言大体分为三类:,2020年5月3日星期日,兰州理工大学计算机与通信学院,20,数据库原理与应用,PrincipleandApplicationofDataBase,说明:(1)关系代数语言:由一个或多个关系表行列的数学操作组成。在一系列操作中,各操作都生成一个结果关系表。(2)关系演算语言:将数据逻辑的谓词演算应用到关系运算中。关系演算语言又可分为元组关系演算语言和域关系演算语言。元组关系演算语言:谓词变元的基本对象是元组变量。域关系演算语言:谓词变元的基本对象是元组变量的分量即域变量。(3)结构化查询语言(SQL):SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)于一体的关系数据语言。,2020年5月3日星期日,兰州理工大学计算机与通信学院,21,数据库原理与应用,PrincipleandApplicationofDataBase,关系代数的基本操作关系代数是与关系模型相关的两种形式化查询语言之一。它包括一个运算集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果。关系代数的基本运算有:选择、投影、并、差、笛卡儿积。在基本运算以外,还有一些其他运算,包括交、连接和除。这些运算可以由关系代数的基本运算定义。,2020年5月3日星期日,兰州理工大学计算机与通信学院,22,数据库原理与应用,PrincipleandApplicationofDataBase,关系运算的一些记号:1设关系模式为。它的一个关系设为,表示是的一个元组。则表示元组中相应属性的一个分量。2若,其中是中的一部分,则称为属性列或属性组。表示元组在属性列上诸分量的集合。则表示中去掉后剩余的属性组。3为n目关系,为m目关系。称为元组,2020年5月3日星期日,兰州理工大学计算机与通信学院,23,数据库原理与应用,PrincipleandApplicationofDataBase,的连接。它是一个n+m列的元组,前n个分量为中的一个n元组,后m个分量为中的一个m元组。4给定一个关系,和为属性列。当时,在中的象集定义为:它表示中属性组上值为x的诸元组在上分量的集合。,2020年5月3日星期日,兰州理工大学计算机与通信学院,24,数据库原理与应用,PrincipleandApplicationofDataBase,假设、和是三个关系,2020年5月3日星期日,兰州理工大学计算机与通信学院,25,数据库原理与应用,PrincipleandApplicationofDataBase,关系代数的基本操作.选择(Selection)选择运算是从输入关系中选择满足给定条件的元组,记作:其中表示选择条件,它是一个逻辑表达式。通常,允许在逻辑表达式中进行比较,使用=,。另外,还可以使用逻辑连接词与(),或()和非()把多个表达式连接合并成为一个较大的表达式。,2020年5月3日星期日,兰州理工大学计算机与通信学院,26,经过运算后的结果为:,2、投影(Projection)关系上的投影是从中选择出若干属性列组成新的关系。记作:,数据库原理与应用,PrincipleandApplicationofDataBase,例如:从关系中选择属性B的值等于b2的所有元组,可以表示为:结果为:,3、并(Union)并运算是传统的集合运算。它的运算结果包含了参加运算的两个关系中的所有元组。,2020年5月3日星期日,兰州理工大学计算机与通信学院,27,的结果为:,数据库原理与应用,PrincipleandApplicationofDataBase,关系和关系的并记作:两个关系要能够进行并运算,必须是相容关系,即必须满足以下两个条件:(1)两个关系的属性数必须相同(2)从左向右,对应的属性要有相同的取值范围。,2020年5月3日星期日,兰州理工大学计算机与通信学院,28,数据库原理与应用,PrincipleandApplicationofDataBase,4、差(Difference)差运算也是传统的集合运算。它的结果包括出现在一个关系中而不出现在另一个关系中的元组。关系和关系的差记作:,的结果为:,5、笛卡儿积(CartesianProduct)笛卡儿积运算可以将任意两个关系的信息组合在一起。两个分别为n目和m目的关系和的笛卡尔积是一个(n+m)列的元组的集合。,2020年5月3日星期日,兰州理工大学计算机与通信学院,29,数据库原理与应用,PrincipleandApplicationofDataBase,元组的前n列是关系的一个元组,后m列是关系的一个元组。假如关系中有个n元组,关系中有m个元组。那么关系和关系的笛卡儿积中将有(nm)个元组。关系和关系的笛卡儿积记作:,的结果为:,2020年5月3日星期日,兰州理工大学计算机与通信学院,30,数据库原理与应用,PrincipleandApplicationofDataBase,2020年5月3日星期日,兰州理工大学计算机与通信学院,31,的结果为:,数据库原理与应用,PrincipleandApplicationofDataBase,关系代数的其他操作.交(Intersection)交运算也是传统的集合运算。它的运算结果包含了同时在两个关系中出现的所有元组。关系和关系的交记作:,2020年5月3日星期日,兰州理工大学计算机与通信学院,32,数据库原理与应用,PrincipleandApplicationofDataBase,2.连接(Join)连接运算在关系代数中是最有用的运算之一,最常用的方式是合并两个或者多个关系的信息。连接运算是从两个关系的笛卡儿积中选取满足一定条件的元组。记作:其中,A和B是关系和上度数相等并且可比的属性组。是比较运算符。连接运算从和的笛卡儿积中选取关系在A属性组上的值与关系在B属性组上的值满足比较关系的元组。,2020年5月3日星期日,兰州理工大学计算机与通信学院,33,的结果为:,数据库原理与应用,PrincipleandApplicationofDataBase,连接运算有两种最重要且应用最广泛的连接:等值连接和自然连接。,2020年5月3日星期日,兰州理工大学计算机与通信学院,34,的结果为:,数据库原理与应用,PrincipleandApplicationofDataBase,等值连接是连接运算的一种特殊情况,一般指连接条件是相等表达式,即为“=”的连接运算。等值连接要求连接的两个关系中对应属性相等。记作:,2020年5月3日星期日,兰州理工大学计算机与通信学院,35,数据库原理与应用,PrincipleandApplicationofDataBase,自然连接是一种特殊的等值连接。它要求两个关系中所有同名属性都相等,并且在结果中必须把重复的属性列删除。一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。假如关系和关系具有相同的属性组A,则自然连接记作:,2020年5月3日星期日,兰州理工大学计算机与通信学院,36,数据库原理与应用,PrincipleandApplicationofDataBase,的结果为:,2020年5月3日星期日,兰州理工大学计算机与通信学院,37,数据库原理与应用,PrincipleandApplicationofDataBase,3.除除运算适合于包含了“对所有的”的查询。假如两个关系和,其中为属性组,中的和中的可以有不同的属性名,但必须出自相同的域集。除运算定义为如下的所有属性组列上值的集合:对于中的属性列上的每个值,在中都有相同的与之对应。另一种理解除操作的方式为:对于中的每个属性组列上的值,考虑具有该值的所有属性列上的值的集合。如果该集合包含了中的所有属性组列上的值,那么这个的值就包含在的结果中。关系和关系的除运算记作:,2020年5月3日星期日,兰州理工大学计算机与通信学院,38,数据库原理与应用,PrincipleandApplicationofDataBase,其中为在中的象集,。,设关系、和如下所示,则、的结果图为:,2020年5月3日星期日,兰州理工大学计算机与通信学院,39,数据库原理与应用,PrincipleandApplicationofDataBase,关系代数运算举例设有一个教师-项目数据库,包括教师关系Teacher、项目关系Project和教师-项目关系TP。三个关系表的关系模式如下:Teacher(编号(Tno),姓名(Tname),性别(Tsex),年龄(Tage),职称(Tposition),部门(Tdept);Project(项目编号(PRno),项目名称(PRname),项目来源(PRsrc),项目级别(PRclass),开始时间(PRdate),结束时间(PRenddate);TP(项目编号(PRno),教师编号(Tno),排名(Order),2020年5月3日星期日,兰州理工大学计算机与通信学院,40,数据库原理与应用,PrincipleandApplicationofDataBase,例2.2查询计通学院的所有教师。,例2.3查询职称为教授的所有教师,例2.4查询计通学院年龄在35岁以下的教师,例2.5查询所有教师姓名和职称。,2020年5月3日星期日,兰州理工大学计算机与通信学院,41,数据库原理与应用,PrincipleandApplicationofDataBase,例2.6查询所有在2001年开始并且在2003年结束的项目编号及名称。,例2.7查询在项目中排名第一的教师编号,例2.8查询所做项目的级别为国家级的教师的姓名,例2.9查询显示各位教师所做项目的情况,包括项目编号、项目名称名称、教师姓名、排名。,2020年5月3日星期日,兰州理工大学计算机与通信学院,42,数据库原理与应用,PrincipleandApplicationofDataBase,扩展的关系代数运算1广义投影广义投影运算通过允许在投影列表中使用算术函数来对投影进行扩展。广义投影运算形式为:例2.10将编号为200305003的教师的年龄改为36岁2赋值运算通过赋值给临时关系变量的方法把关系代数表达式分成几个部分写会很简单。赋值运算用表示,与程序语言中的赋值相类似。,2020年5月3日星期日,兰州理工大学计算机与通信学院,43,数据库原理与应用,PrincipleandApplicationofDataBase,例2.11删除编号为200305003的教师的相关信息,3外连接外连接运算是连接运算的扩展,可以处理缺失的信息。外连接运算有三种:左外连接、右外连接和全外连接。左外连接取出左侧关系中所有与右侧关系的任一元组都不匹配的元组,用空值填充所有来自右侧关系的属性,再把产生的元组加到自然连接的结果上。,2020年5月3日星期日,兰州理工大学计算机与通信学院,44,数据库原理与应用,PrincipleandApplicationofDataBase,右外连接与左外连接相对称:用空值填充来自左侧关系的所有与右侧关系的任一元组都不匹配的元组,将结果加到自然连接的结果上。全外连接完成左外连接和右外连接的操作,既填充左侧关系中与右侧关系的任一元组都不匹配的元组,又填充右侧关系中与左侧关系的任一元组都不匹配的元组,并把结果加到自然连接的结果上。下图表示的分别是关系和关系(第24页)的左外连接、右外连接和全连接。,2020年5月3日星期日,兰州理工大学计算机与通信学院,45,数据库原理与应用,PrincipleandApplicationofDataBase,左外连接,右外连接,全连接,2020年5月3日星期日,兰州理工大学计算机与通信学院,46,数据库原理与应用,PrincipleandApplicationofDataBase,4聚集关系的聚集运算指的是根据关系中的一组值,经统计、计算得到一个值作为结果,比较常用的聚集函数为求最大值max、最小值min、平均值avg、总和值sum和计数值count等,使用时聚集函数前标以手写体符号“G”。例2.12求计通学院教师的平均年龄,2020年5月3日星期日,兰州理工大学计算机与通信学院,47,数据库原理与应用,PrincipleandApplicationofDataBase,第二章关系模型,2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系系统的十二条准则2.5关系系统的查询优化2.6关系数据库管理系统简介2.7小结,2020年5月3日星期日,兰州理工大学计算机与通信学院,48,数据库原理与应用,PrincipleandApplicationofDataBase,关系演算是以数理逻辑中的谓词演算为基础的。与关系代数相比较,关系演算是非过程化的。也就是说,当书写关系代数表达式时,提供了产生查询结果的过程序列。与之相反,关系演算只需描述结果的信息,而不给出获得信息的具体过程。依据关系演算中变量的不同,关系演算可分为元组关系演算和域关系演算。,2020年5月3日星期日,兰州理工大学计算机与通信学院,49,数据库原理与应用,PrincipleandApplicationofDataBase,元组关系演算元组关系演算以元组为变量。元组关系演算表达式的一般形式为:其中:为元组变量,是以元组变量为基础的公式。该表达式的含义是使为真的元组的集合。用关系演算表达式来表示的五种基本运算:(1)并(2)差(3)笛卡儿积,2020年5月3日星期日,兰州理工大学计算机与通信学院,50,数据库原理与应用,PrincipleandApplicationofDataBase,(4)选择(5)投影例2.13查询计通学院的所有教师例2.14查询年龄小于35岁的教师例2.15查询教师姓名和所在部门,2020年5月3日星期日,兰州理工大学计算机与通信学院,51,数据库原理与应用,PrincipleandApplicationofDataBase,域关系演算域关系演算与元组关系演算相似。元组关系演算中表达式使用的是元组变量,而域关系演算表达式中使用的是域变量(即以属性列为变量),域变量的变化范围是某个属性的值域,元组变量的变化范围是一个关系。域关系演算表达式的一般形式是:,2020年5月3日星期日,兰州理工大学计算机与通信学院,52,数据库原理与应用,PrincipleandApplicationofDataBase,一个很有特色的域关系演算语言是QBE。QBE(QueryByExample)是在70年代由IBM公司的M.M.Zloof提出的。目前有不少DBMS支持这种语言。比如DB2,Paradox,dBASE等。这是一种以域关系演算为基础的说明条件查询语言。QBE最大的特点是采用屏幕编辑的表格对数据库进行操作,不仅查询结果用表格的形式显示,而且用户的查询要求也是在屏幕上用填写表格的方式给出,因此非常直观,易学易用。,2020年5月3日星期日,兰州理工大学计算机与通信学院,53,数据库原理与应用,PrincipleandApplicationofDataBase,下面以教师-项目关系数据库为例简单地介绍可视化查询语言QBE。1数据查询QBE为用户提供了填写查询条件或显示结果的表格,形式为:,2020年5月3日星期日,兰州理工大学计算机与通信学院,54,数据库原理与应用,PrincipleandApplicationofDataBase,要完成查询,用户首先提出查询要求,屏幕上就会显示一个空白表格。用户在表格的第一列输入关系名,这时系统就会显示该关系的属性名,然后用户就可在其上构造查询要求。这里需要注意的是构造查询时,在结果输出列,需要填写示例元素。如下所示:,2020年5月3日星期日,兰州理工大学计算机与通信学院,55,数据库原理与应用,PrincipleandApplicationofDataBase,例2.16查询计通学院全体教师的姓名例2.17查询职称是教授并且年龄小于40岁的教师姓名,2020年5月3日星期日,兰州理工大学计算机与通信学院,56,数据库原理与应用,PrincipleandApplicationofDataBase,例2.18查询职称为教授或者性别为女的教师编号例2.19查询在项目中排名第一的教师姓名,2020年5月3日星期日,兰州理工大学计算机与通信学院,57,数据库原理与应用,PrincipleandApplicationofDataBase,2数据更新QBE提供三个更新操作符:插入(I.)、删除(D.)和修改(U.)。更新操作首先要根据输人的条件查找出操作对象,这个过程和查询的实现相似,只是在每找到和条件一致的元组时,完成I.、D.和U.这些修改数据库的命令。例2.20把200305003教师的职称改为教授执行这个修改,可以有两种方法,一种是把修改操作符U.放在值上,另外一种是放在关系上。,2020年5月3日星期日,兰州理工大学计算机与通信学院,58,数据库原理与应用,PrincipleandApplicationofDataBase,例2.21将计通学院所有教师的年龄都增加一岁,2020年5月3日星期日,兰州理工大学计算机与通信学院,59,数据库原理与应用,PrincipleandApplicationofDataBase,例2.22把计通学院女教师200305005,姓名赵,年龄38,职称教授存入数据库中。例2.23删除教师200305004。,2020年5月3日星期日,兰州理工大学计算机与通信学院,60,数据库原理与应用,PrincipleandApplicationofDataBase,第二章关系模型,2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系系统的十二条准则2.5关系系统的查询优化2.6关系数据库管理系统简介2.7小结,2020年5月3日星期日,兰州理工大学计算机与通信学院,61,数据库原理与应用,PrincipleandApplicationofDataBase,关系数据库系统简称为关系系统。一个系统可定义为关系系统,当且仅当它:(1)支持关系数据库(关系数据结构)(2)支持选择、投影和(自然)连接运算。对这些运算不必要求定义任何物理存取路径。关系系统应该完全地支持关系模型的所有特征。关系模型的奠基人E.F.Codd具体给出了关系系统应该遵循的12条基本准则。从实际意义上看,这12条准则可以作为评价关系型产品的标准。从理论意义上看,它是对关系数据模型的具体而又深入的论述,是从理论和实际紧密结合的高度对关系型数据库管理系统的评述。,2020年5月3日星期日,兰州理工大学计算机与通信学院,62,数据库原理与应用,PrincipleandApplicationofDataBase,准则0一个关系型的DBMS必须能完全通过它的关系能力来管理数据库。准则1信息准则。关系型DBMS的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。准则2保证访问准则。依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项(分量值)准则3空值的系统化处理。关系型的DBMS应支持空值的概念,并用系统化的方式处理空值。,2020年5月3日星期日,兰州理工大学计算机与通信学院,63,数据库原理与应用,PrincipleandApplicationofDataBase,准则4基于关系模型的动态的联机数据字典。数据库的描述在逻辑级上应该和普通数据采用同样的表示方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的描述信息。准则5统一的数据子语言准则。准则6视图更新准则。所有理论上可更新的视图也应该允许有系统更新。准则7高级的插入、修改和删除操作。,2020年5月3日星期日,兰州理工大学计算机与通信学院,64,数据库原理与应用,PrincipleandApplicationofDataBase,准则8数据物理独立性。准则9数据逻辑独立性。准则10数据完整性的独立性。准则11分布独立性。准则12无破坏准则。,2020年5月3日星期日,兰州理工大学计算机与通信学院,65,数据库原理与应用,PrincipleandApplicationofDataBase,第二章关系模型,2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系系统的十二条准则2.5关系系统的查询优化2.6关系数据库管理系统简介2.7小结,2020年5月3日星期日,兰州理工大学计算机与通信学院,66,数据库原理与应用,PrincipleandApplicationofDataBase,数据库应用系统的性能受多方面的限制。如数据库服务器、操作系统、数据管理系统以及前端开发工具、磁盘镜象、索引等都有很大的影响。从大多数数据库应用系统的实例来看,查询操作在各种数据操作中占的比重最大,查询的效率是数据库系统的重要性能指标,高效的查询能极大的提高系统的性能。随着信息化进程的不断演进,数据库中的数据量日益增加,数据库应用系统的查询性能成了一个备受关注的话题。特别是对于那些基于B/S形式的数据库开发,查询速度的快慢直接影响到系统的推广和应用。,2020年5月3日星期日,兰州理工大学计算机与通信学院,67,数据库原理与应用,PrincipleandApplicationofDataBase,早在1975年RothnieJ就在他的论文“EvaluatingInterEntryRetrievalExpressionsinaRelationalDataBaseManagementSystem”中提出了数据库原型系统DAMAS的双变量查询优化方法,这篇论文被认为是最早研究查询优化的文献。查询是由高级查询语言表示的对数据库的一个或一组操作。对于一个简单的查询,通常会有许多种可能的求解方法。每种方法在特定情况下相对优化,所以DBMS必须从所有的方法中挑选出开销最小的方法。对于多个操作的查询,可选的求解方法更多,因此选择最佳的执行方案对DBMS来说是一个重要的挑战。,2020年5月3日星期日,兰州理工大学计算机与通信学院,68,数据库原理与应用,PrincipleandApplicationofDataBase,查询处理及查询优化1查询处理中的优化问题数据查询是数据库系统中最基本、最常用和最复杂的数据操作。在数据库系统中,用户的查询通过相应查询语句提交给DBMS执行。对同一个查询要求,通常可以对应于多个不同形式但相互等价的关系代数表达式。相同的查询要求和结果存在着不同的实现策略,系统在执行这些查询策略时所付出的开销通常有很大的差别。从查询的多个执行策略中进行合理选择的过程就称为查询优化。,2020年5月3日星期日,兰州理工大学计算机与通信学院,69,数据库原理与应用,PrincipleandApplicationofDataBase,2查询优化的过程关系型数据库的查询处理一般分为四个步骤:扫描和语法分析、查询优化、代码生成和查询执行。,扫描和语法分析功能主要是由句法分析程序(Parser)作语法有效性、正确性和完整性检查,并将查询语句转换成如等价关系代数查询树(RAT)的内部表示。,2020年5月3日星期日,兰州理工大学计算机与通信学院,70,数据库原理与应用,PrincipleandApplicationofDataBase,查询优化的主要功能是优化处理给定的查询,确定执行该查询的优化执行策略,产生优化的查询执行计划。该计划能获得与给定关系表达式相同的结果,并且得到结果的执行代价最小(或至少是不比最小执行代价大多少)。查询代码生成模块主要功能是组合各种操作算法(如选择、投影、连接等),形成查询优化执行计划的可执行代码。查询执行模块功能则是控制查询计划的执行,产生查询结果。,2020年5月3日星期日,兰州理工大学计算机与通信学院,71,数据库原理与应用,PrincipleandApplicationofDataBase,3查询优化技术的分类(1)规则优化规则优化指的是查询仅仅涉及查询语句本身,根据某些启发式规则来完成优化任务。这类优化的特点是对查询的关系代数表达式进行等价变换,以减少执行开销,所以也称为代数优化。(2)物理优化优化与数据的物理组织和访问路径有关,例如在已经组织了基于查询的专门索引或者排序文件的情况下,就需要对如何选择实现策略进行必要的考虑,诸如此类的问题就是物理优化。,2020年5月3日星期日,兰州理工大学计算机与通信学院,72,数据库原理与应用,PrincipleandApplicationofDataBase,(3)代价估算优化对多个候选策略逐个进行执行代价估算,从中选择代价最小的作为执行策略,就称为代价估算优化。我们主要讨论关系数据看查询的规则优化技术。4、查询优化的必要性一般情况下,查询的执行总代价为I/O代价和CPU代价之和。在相同的软、硬件环境下,查询的执行代价都与查询处理的数据量有关。,2020年5月3日星期日,兰州理工大学计算机与通信学院,73,数据库原理与应用,PrincipleandApplicationofDataBase,例2.24求项目排名为1的教师姓名假设教师-项目数据库中有1000名教师,每个教师做了10个项目,关系TP中就有10000个记录。对于上面的查询,系统可以采用多种等价的关系代数表达式来完成。()()()还可以写出其他等价的关系代数表达式。,2020年5月3日星期日,兰州理工大学计算机与通信学院,74,由于查询的执行代价与查询处理的数据量有关,并且连接运算作为二元运算,其自身操作的开销较大,因此在进行代价估算时,利用算法分析方法对连接运算的次数进行定性分析。第一种先在两个表上做笛卡尔积,产生100010000=107个连接元组,再在其上进行先选择后投影操作。第二种先在两个表上做自然连接,产生100010=104个连接记录,再在其上进行先选择后投影操作。第三种先做选择运算,然后做自然连接,产生110个连接记录,再在其上进行投影。,数据库原理与应用,PrincipleandApplicationofDataBase,2020年5月3日星期日,兰州理工大学计算机与通信学院,75,数据库原理与应用,PrincipleandApplicationofDataBase,关系代数表达式的等价规则如果两个关系表达式在任一种有效数据库实例中都会产生相同的元组集,则称它们是等价的。在查询优化的过程中,就是利用一系列的等价规则,按照给定的关系表达式,找出与其等价的关系表达式,然后再根据一定的策略选择最优的一个执行。等价规则指出两种不同形式的表达式是等价的。可以利用第二种形式的表达式代替第一种,或者用第一种形式的表达式代替第二种。这是因为这两种表达式在任何有效的数据库中将产生相同的结果。,2020年5月3日星期日,兰州理工大学计算机与通信学院,76,数据库原理与应用,PrincipleandApplicationofDataBase,关系代数表达式的一些通用的等价规则。、等表示谓词,、等表示属性列表,而、等表示关系代数表达式。(1)合取运算可以分解为单个选择运算的序列。(2)选择交换律(3)投影运算序列中只有最后一个运算是需要的,其余的可省略。,2020年5月3日星期日,兰州理工大学计算机与通信学院,77,数据库原理与应用,PrincipleandApplicationofDataBase,(4)选择与笛卡儿积的交换率(5)选择投影交换律()连接运算满足交换律(7)选择对自然连接的分配律,2020年5月3日星期日,兰州理工大学计算机与通信学院,78,数据库原理与应用,PrincipleandApplicationofDataBase,(8)投影与笛卡儿积的分配律(9)投影与并的分配律(10)选择与并的分配律(11)选择与差的分配律,2020年5月3日星期日,兰州理工大学计算机与通信学院,79,数据库原理与应用,PrincipleandApplicationofDataBase,查询策略选择算法对于给定的查询来说,根据关系代数等价规则,可以得到与之等价的一系列的表达式,而每一个表达式其执行所需的代价可能是不同的。那么对于优化器来说,就存在着选择查询最佳策略的问题。.基于代价的优化基于代价的优化器通过使用等价规则来由给定的查询语句产生一系列查询执行计划,并选择代价最小的一个。,2020年5月3日星期日,兰州理工大学计算机与通信学院,80,数据库原理与应用,PrincipleandApplicationofDataBase,2.启发式优化基于代价的优化的一个缺点是优化本身的代价。虽然查询处理的代价可以通过各种巧妙的优化技术来减少,但基于代价的优化开销仍然很大。因此,许多系统采用启发式算法来减少在基于代价的算法中可选择的计划数。启发式规则:(1)将选择运算尽量提前执行,以得到较小的中间结果。在优化过程中这是最重要的。它常常可使执行时间节约几个数量级。,2020年5月3日星期日,兰州理工大学计算机与通信学院,81,数据库原理与应用,PrincipleandApplicationofDataBase,(2)将一连串的选择和投影操作同时执行,减少分开操作造成多次扫描文件。如有若干投影和选择运算,并且是对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描执行。(3)投影操作要和相邻的双目运算结合起来同时进行。(4)把笛卡儿积和其后的选择运算合并,减少时间和空间的开销。(5)对需要连接的文件先进行排序或索引处理,使连接时能很快有效的对应起来。,2020年5月3日星期日,兰州理工大学计算机与通信学院,82,数据库原理与应用,PrincipleandApplicationofDataBase,(6)将表中与查询无关的属性去除,减少中间结果。(7)将公共表达式提取出来,预先计算并保存起来,以免重复计算从而节省操作时间。应用等价规则变换来优化关系表达式的算法。算法:关系表达式的优化输入:一个关系表达式的查询树输出:优化的查询树(1)利用等价变换规则1把形如变换为。,2020年5月3日星期日,兰州理工大学计算机与通信学院,83,数据库原理与应用,PrincipleandApplicationofDataBase,(2)对每一个选择,利用等价变换1,2,4,7,10,11尽可能把它移到叶端。(3)对每一个投影利用等价变换规则3,5,8,9中的一般形式尽可能把它移向树的叶端。(4)利用等价变换规则1,3,5把选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影。使多个选择或投影能同时执行,或在一次扫描中全部完成。(5)把上述得到的语法树的内节点分组。每一双目运算和它所有的直接祖先为一组。如果其后代直到叶子全是单目运算,则也将它们并入该组,但当双目运算是笛卡尔积,而且后面不是与它组成等值连接的选择时,则不能把选择与这个双目运算组成同一组。而是把这些单目运算单独分为一组。,2020年5月3日星期日,兰州理工大学计算机与通信学院,84,数据库原理与应用,PrincipleandApplicationofDataBase,例2.25查询在项目中排名第一的教师姓名其关系代数的表达式可能为:先把上面的代数表达式转换为关系代数语法树,2020年5月3日星期日,兰州理工大学计算机与通信学院,85,数据库原理与应用,PrincipleandApplicationofDataBase,然后利用规则1,4把选择移到叶端,查询树便转换为:该查询树代表的关系代数表达式为:,2020年5月3日星期日,兰州理工大学计算机与通信学院,86,数据库原理与应用,PrincipleandApplicationofDataBase,查询优化技术1将大表水平分裂成子表所谓分裂大表,就是将数据量很大的表水平分裂成若干个子表,用户对这些子表分别查询,然后将查询结果组合在一起。分裂大表可以分为临时分裂和永久分裂两种,临时分裂即在系统收到查询请求时,才将大表分成若干临时表,查询结束后立即删除;而永久分裂是指在数据库设计时,将大表固定分成若干个子表,这些小表在数据库中永久存在,数据库中没有大表,只有子表。,2020年5月3日星期日,兰州理工大学计算机与通信学院,87,数据库原理与应用,PrincipleandApplicationofDataBase,2利用视图视图是由查询语句从一个或多个表中建立的虚拟表,而不是用数据构造的一种数据库对象。通过只允许用户访问视图中的数据的方法,限定从数据表中检索数据内容,并能通过视图存储数据到基表中。当对多个数据库表进行查询时,如果直接进行操作比较繁琐,这样就可以通过视图将所需的数据项从多个表中组织到一个视图中,这样可以把注意力放在需要的数据上,以此来简化数据查询和处理操作。,2020年5月3日星期日,兰州理工大学计算机与通信学院,88,数据库原理与应用,PrincipleandApplicationofDataBase,再则,视图中的数据都来自于基表,是在视图被引用时动态生成的,使用视图可以集中、简化和定制用户的数据库显示,用户可以通过视图来访问数据,而不直接去访问视图的基表,从而达到查询优化的目的。3减少嵌套查询的层数查询嵌套的层数每增加一层,查询效率成几何级的降低。要想提高嵌套查询语句的执行效率,则应减少嵌套查询语句的嵌套的层数。,2020年5月3日星期日,兰州理工大学计算机与通信学院,89,数据库原理与应用,PrincipleandApplicationofDataBase,第二章关系模型,2.1关系模型的基本概念2.2关系代数2.3关系演算2.4关系系统的十二条准则2.5关系系统的查询优化2.6关系数据库管理系统简介2.7小结,2020年5月3日星期日,兰州理工大学计算机与通信学院,90,数据库原理与应用,PrincipleandApplicationofDataBase,数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,因此可以把D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中药方剂学方剂服法考点解析冲刺试卷
- 流行病学自考试题及答案
- 2022年黑河市嫩江县(中小学、幼儿园)教师招聘试题及答案
- 内蒙古自治区锡林郭勒盟《社区工作基础知识》事业招聘考试真题
- 医疗缺陷差错事故纠纷登记处理制度
- 2025年湖南省邵阳市邵东县保安员招聘考试题库附答案解析
- 2025年长沙市长沙县保安员招聘考试题库附答案解析
- AOPA无人航空器理论考试题(四)
- 2025年晋城市陵川县保安员招聘考试题库附答案解析
- 2025年河北省石家庄市栾城县保安员招聘考试题库附答案解析
- 安全检查验收制度(六篇)
- 高中学生学籍表模板(范本)
- 膳食营养指导和疾病预防(卢世琰)课件
- 办公楼建筑能源管理平台技术方案书
- 河南省铭玮昊化工科技有限公司年产1000吨溴硝醇、100吨磺酰胺、200吨叔丁酯项目环境影响报告书
- 灭火器检查记录表模板实用文档
- 《赢利 未来10年的经营能力》读书笔记PPT模板思维导图下载
- 2023年成都交子金融控股集团有限公司招聘考试备考题库及答案解析
- YS/T 337-2009硫精矿
- 《语言学纲要》文字1课件
- 英语关联词汇总大全
评论
0/150
提交评论