您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > ppt数据库实用教程三
讲授:麻淑芳时间:2012年2月《数据库实用教程》第三章关系运算•3.1关系数据模型•3.2关系代数•3.3关系演算*•3.4查询优化3.1关系数据模型本章主要介绍关系数据模型的基本概念、关系运算和关系表达式的优化问题。关系运算是关系数据模型的理论基础。关系数据模型的定义用二维表格表示实体集,关键码表示实体间联系的模型称为关系模型。关系建立在集合代数基础之上,因此从集合论角度给出关系的定义:Def3.1:域(Domain)是值的集合,即域是属性的取值范围。•例:学生性别的域是{男,女};学生成绩的域是1-100的整数集合…关系数据模型的定义Def3.2:给定一组域D1,D2,…,Dn(这些域中可以有相同的)。D1,D2,…,Dn上的笛卡儿积定义为集合:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中:每一个元素(d1,d2,…,dn)叫一个n元组(n-tuple),简称元组;元素中的每一个值di叫一个元组分量。若D1,D2,…,Dn为有限集,基数分别为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M=m1×m2×…×mn关系数据模型的定义•例:设D1为男士的集合,D2为女士的集合,D3为儿童的集合。则:D1={张伟,李强,王刚};D2={赵梅,朱兰};D3={张小伟,张小梅,李小兰}D1×D2×D3={(张伟,赵梅,张小伟),(张伟,赵梅,张小梅),(张伟,赵梅,李小兰),(张伟,朱兰,张小伟),(张伟,朱兰,张小梅),(张伟,朱兰,李小兰),(李强,赵梅,张小伟),(李强,赵梅,张小梅),(李强,赵梅,李小兰),(李强,朱兰,张小伟),(李强,朱兰,张小梅),(李强,朱兰,李小兰),(王刚,赵梅,张小伟),(王刚,赵梅,张小梅),(王刚,赵梅,李小兰),(王刚,朱兰,张小伟),(王刚,朱兰,张小梅),(王刚,朱兰,李小兰)}关系数据模型的定义Def3.3关系Relation定义域D1,D2,…,Dn上的笛卡儿积D1×D2×…×Dn的子集称为在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)其中:R为关系名,n为关系的度(或目),关系的成员称为元组,即笛卡儿积的子集的元素(d1,d2,…,dn),值di为元组的第i个分量;D1,D2,…,Dn为域名,由于域名可以相同,为了加以区分,也可为每一列起一个名,称属性Attribute;故关系常表示为:R(A1,A2,…,An)•例:从D1×D2×D3中取一个家庭关系家庭(丈夫,妻子,孩子)关系数据模型的定义属性到域的映象若属性名与域名相同,则用域名作属性名。若属性名与域名不同,则需要指出属性到域的映象。Ai=Dom(Di)表明属性Ai来自于域Di。•例:课程(课号,课名,学时数,性质,先修课号)域名:课号,课名,学时数,性质先修课号来自域课号,用先修课号=Dom(课号)表示关系数据模型的定义数据库关系与数学中关系的区别:关系模型对其数学定义作了适当的扩充①笛卡尔积可以是一个无限集合,但关系必须是有限集合。②在数学意义上,(d1,d2,…,dn)≠(d2,d1,…,dn)列之间不满足交换律;关系模型中通过为关系的每一个列加一个属性名,取消关系中列的有序性的限制。关系数据模型的定义关系数据模型的基本术语(关系的特点)关系(表)可以看成是由行和列交叉组成的二维表格。它表示的是一个实体集合。•关系:对应二维表格;•元组:表中的行;•属性:表中的列;•域:属性的取值范围;•主键:唯一标识表中不同行的属性或属性组。关系数据模型的定义关系的性质1、每个属性值(分量)都是不可分的数据项(即属性值为最小单位);2、任意两个元组不能相同,元组的次序可交换(没有重复元组,没有行序);3、列具有相同的性质(值域/数据结构),不同的列可有相同的域;理论上也有列序,为了方便,使用时有列序。关键码和表之间的联系关键码由一个或多个属性组成,其分为:•超键:能唯一标识元组的属性组合(可能存在多余的属性)。•侯选键:能唯一标识元组的最小属性组合。•主键:若一个关系中有多个侯选键,则选其中的一个为关系的主键。•外键:若一个关系R中包含有另一个关系S的主键所对应的属性组F,则称F为R的外键。并称关系S为参照关系,R为依赖关系。关系模式、关系子模式和存储模式关系模型基本上遵循数据库的三级体系结构,在关系模型中:•概念模式是关系模式的集合;•外模式是关系子模式的集合;•内模式是存储模式的集合。关系模式、关系子模式和存储模式1、关系模式是对关系的描述,包括:模式名、属性名、值域名和模式的主键。2、关系子模式是用户所需数据结构的描述,包含:这些数据来自哪些模式和应满足的条件。3、存储模式描述了关系如何在物理存储设备上存储,其基本组织方式是文件。关系模型的完整性规则•实体完整性规则:关系中元组的主键值不能为空(NULL)。•参照完整性规则:关系中元组的外键值只允许有两种可能值:空值,或与相应的参照关系中的某个主键值相同。•用户定义的完整性规则:由应用环境决定,反映某一具体应用所涉及的数据必须满足的约束条件。其中:实体完整性规则和参照完整性规则合称关系完整性规则,是关系模型中必须满足的完整性的约束条件。关系模型的形式定义关系模型有三个组成部分:数据结构、数据操作、完整性约束。•数据结构:数据库中全部数据及其相互联系都被组织成关系(即二维表格)的形式。•数据操作:提供了一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分为关系代数和关系演算两类。•完整性规则:三类完整性规则。3.2关系代数关系查询语言和关系运算关系数据库的数据操作语言(DML)由查询语句和更新语句两大类组成。•关系查询语言根据其理论基础不同分为:①关系代数语言:以集合操作为基础;②关系演算语言:以谓词演算为基础。•关系查询语言是比程序设计语言更高级的语言,是非过程语言。关系代数关系代数是以集合代数为基础发展起来的,它是以关系为运算对象。运算包括两大类:•传统的集合运算:从行的角度进行运算.并∪,交∩,差—,广义笛卡儿积ו专门的关系运算:针对关系数据库环境,从行和列两种角度进行运算。选择σ,投影π,连接⋈,除÷•在各种运算中,使用下列运算符比较运算符:,≤,=,,≥,≠逻辑运算符:¬(非),∧(与),∨(或)关系代数的五个基本操作关系代数的五个基本操作关系代数的五个基本操作关系代数的五个基本操作关系代数的五个基本操作关系代数的组合操作关系代数的组合操作关系代数的组合操作关系代数的组合操作关系代数的组合操作关系代数表达式及其应用实例关系代数表达式及其应用实例关系代数表达式及其应用实例扩展的关系代数操作扩展的关系代数操作扩展的关系代数操作扩展的关系代数操作扩展的关系代数操作扩展的关系代数操作3.3关系演算选修内容3.4查询优化关系代数表达式的优化问题:在关系代数表达式中需要指出若干关系的操作步骤。系统应该以什么样的操作顺序,才能做到既省时间,又省空间,而且效率也比较高呢?•核心问题:如何花费较少的时间和空间,有效地执行笛卡儿积操作。•查询优化的总目标:选择有效的策略,求得给定关系代数表达式的值,达到提高DBMS系统效率的目标。关系代数表达式的优化问题例:学生数据库:S(SNO,SNAME,SEX,AGE,SDEPT)C(CNO,CNAME,CDEPT,TNAME)SC(SNO,CNO,GRADE)检索选修C2课程的学生的学号和姓名,用关系代数表达式表示:这三个关系代数表达式是等价的,但执行的效率大不一样。显然,求El,E2,E3的大部分时间是花在联接操作上的。关系代数表达式的等价变换规则关系代数表达式的等价变换规则关系代数表达式的等价变换规则关系代数表达式的等价变换规则关系代数表达式的等价变换规则优化的一般策略(1)在关系代数表达式中尽可能早地执行选择操作。(2)把笛卡儿积和其后的选择操作合并成F联接运算(3)同时计算一连串的选择和投影操作,以免分开运算造成多次扫描文件,节省操作时间。(4)如在一个表达式中多次出现某个子表达式,可先对该子表达式进行计算并保存结果,以免重复计算。(5)适当地对关系文件进行预处理。(6)在计算表达式前应先估计一下怎么计算合算。关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法课后习题3.12假设学生数据库中的关系模式如下:学生关系:S(SNO,SNAME,AGE,SEX,SDEPT)学习关系:SC(SNO,CNO,GRADE)课程关系:C(CNO,CNAME,CDEPT,TNAME)试用关系代数表达式表示每个查询语句。
本文标题:ppt数据库实用教程三
链接地址:https://www.777doc.com/doc-5157052 .html