版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理与设计苏州大学计算机科学与技术学院
关系数据库简介关系数据库简介提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式关系数据库简介关系数据库是采用关系模型作为数据组织方式的数据库。目前广泛使用的数据库软件基本上都是基于关系模型的关系数据库管理系统,例如SQLServer2000/2005、Oracle、Sybase、Informix、DB2等,都是典型的关系数据库管理系统。第三章关系数据库3.1关系模型的基本概念3.2关系代数3.3规范化3.4关系数据库系统的查询优化3.5常用关系数据库管理系统介绍3.6小结3.1关系模型的基本概念关系模型就是用二维表格结构来表示实体及实体之间联系的模型关系模型是各个关系的框架的集合,即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。TNO教师号TN姓名SEX性别AGE年龄PROF职称SAL工资COMM岗位津贴DEPT系别CNO课程号CN课程名CT课时
TNO教师号CNO课程号教师关系T课程关系C授课关系SC3.1关系模型的基本概念由上例可以看出,在一个关系中可以存放两类信息:一类是描述实体本身的信息一类是描述实体(关系)之间的联系的信息3.1关系模型的基本概念关系模型的组成关系数据结构关系操作集合关系完整性约束在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系2.关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义3.1关系模型的基本概念关系模型的组成关系数据结构关系操作集合关系完整性约束关系代数用代数的方法表示关系模型
2.关系演算用逻辑方法表示关系模型3.1关系模型的基本概念关系模型的组成关系数据结构关系操作集合关系完整性约束实体完整性
2.参照完整性
3.用户定义的完整性3.1关系模型的基本概念为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念§3.1.1关系的数学定义【定义1】域(Domain)是一组具有相同数据类型的值的集合整数,实数,指定长度的字符串集合域中所包含的值的个数称为域的基数(用m表示)。关系中用域表示属性的取值范围。例如:D1={李力,王平,刘伟} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如D2={男,女}={女,男}§3.1.1关系的数学定义【定义2】笛卡尔积设D1,D2,…,Dn为任意域,定义D1,D2,…,Dn的笛卡尔积(CartesianProduct)为:所有域的所有取值的一个组合不能重复由定义可以看出,笛卡尔积也是一个集合§3.1.1关系的数学定义其中:1.元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)2.每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的。如:(1,2,3)≠(2,3,1)≠(1,3,2);§3.1.1关系的数学定义例子:设D1为专业域,D2为学生域,且D1={计算机应用,信息管理},D2={张三,李四,王五},则D1×D2={(计算机应用,张三),(计算机应用,李四),(计算机应用,王五),(信息管理,张三),(信息管理,李四),(信息管理,王五)}§3.1.1关系的数学定义元组(Tuple)不能重复(计算机应用,王五),(信息管理,王五)分量(Component)计算机应用,王五都是分量笛卡尔积的基数(Cardinalnumber)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:前面例子的M为2*3=6§3.1.1关系的数学定义笛卡尔积的表示方法笛卡尔积可表示为一个二维表表中的每行对应一个元组,表中的每列对应一个域D1,D2的笛卡儿积specialitypostgraduate计算机应用张三计算机应用李四计算机应用王五信息管理张三信息管理李四信息管理王五§3.1.1关系的数学定义【定义3】关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)R:关系名n:关系的目或度(Degree)当n=1时,称为单元关系。当n=2时,称为二元关系。…当n=n时,称为n元关系。D1×D2笛卡尔积的子集学生关系specialitypostgraduate计算机应用张三计算机应用王五信息管理李四§3.1.1关系的数学定义关系的元组关系中的每个元素是关系中的元组,通常用t表示。比如,学生关系中(计算机应用,张三)就是一个元组关系中元组个数是关系的基数比如,学生关系的基数是3关系的表示与笛卡尔积类似,同样可以把关系看成一个二维表。其中,(1)表的框架由域Di(i=1,2,……n)构成;(2)表的任意一行对应一个元组;(3)表的每一列来自同一域;(4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,…,n)称为值域(5)具有相同关系框架的关系成为同类关系关系的含义数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。例如在前面例子的笛卡尔集中选取一个子集构成如下关系,显然不符合实际情况D1,D2的笛卡儿积的子集specialitypostgraduate计算机应用张三信息管理张三关系的性质尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别。
严格地说,关系是种规范化了的二维表中行的集合,关系具有如下特性:1.关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。3.关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。关系的性质4.同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。5.关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。6.关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。姓名籍贯
姓名省市/县省市/县
张强吉林长春
张强吉林长春王丽山西大同
王丽山西大同关系模式和关系数据库模式
关系模式是对关系的描述,可以用一个五元组表示:
R(U,D,dom,F)R关系名U
组成该关系的属性名集合
D
属性组U中属性所来自的域 DOM属性向域的映象集合
F
属性间的数据依赖关系集合有时可以简化成R(U),比如:学生(学号,姓名,性别,年龄,系别)一组关系模式的集合叫做关系数据库模式。关系模式和关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系通过上下文加以区别关系数据库关系数据库是“一组随时间变化,具有各种度的规范化关系的集合”。由此可见,关系数据库也有型和值的概念,其型就是关系数据库模式,相对固定;其值就是关系数据库内容,代表现实世界中的实体,而实体是随着时间不断变化的,所以其值在不同的时刻会有所变化。关系的键(码)候选码(Candidatekey)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码简单的情况:候选码只包含一个属性“学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选键。在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。关系的键(码)全码(All-key)
最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)假设有教师授课关系TCS,分别有三个属性教师(T)、课程(C)和学生(S)。一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。tidcidsnot1c1s1t1c1s2t1c2s1t2c1s1t2c2s2t2c3s2关系的键(码)下面给出候选键的形式化定义:设关系R有属性A1,A2,……An,其属性集K=(Ai,Aj,……Ak),当且仅当满足下列条件时,K被称为候选键:
1.唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。
2.最小性(Minimally):组成关系键的属性集(Ai,Aj,……Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质候选码识别举例TSCT1S1C4T2S2C3T3S1C1T4S3C22个候选码T或者C候选码识别举例TSCT1S2C1T1S1C3T2S1C2T2S3C1(T,S)(S,C)(T,C)3个候选码候选码识别举例TSCT1S1C1T1S1C3T2S1C1T2S3C11个候选码(T,S,C)a1a2a3a4b1b2b3b4a1a2a3a4b1b2b3b4a1a2a3a4b1b2b3b4主键如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键(PrimaryKey),或简称为主键、主码、关系键、关键字。例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。在关系模式中表示主键学生(学号,姓名,性别,年龄,系别)主属性与非码属性主属性(PrimeAttribute):包含在候选码中的的各属性称为主属性。非码属性(Non-PrimeAttribute):不包含在任何候选码中的属性称为非码属性。在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。最极端情况,全码关系中所有属性都是主属性外部关系键如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码(Foreignkey)。并称关系R2为参照关系(referencingrelation),关系R1为被参照关系(referencedrelation)。R1depiddepname1计算机2外语系3电子系R2idnamedepid2001张三12002李四12003王五22004钱六3注意子表的外键和主表的主键名字可以不同,但类型必须相同§3.1.2关系模型的完整性为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:实体完整性参照完整性用户定义的完整性§3.1.2关系模型的完整性1.实体完整性(EntityIntegrity)实体完整性是指关系的主键(码)值不能为空或部分为空。现实世界中的实体是可区分的,即它们具有某种唯一性标识。与此相对应,关系模型中以主键(码)来唯一标识元组。例如,学生关系中的属性“学号”可以唯一标识一个元组,也可以唯一标识学生实体。如果主键(码)中的值为空或部分为空,即主属性为空,则不符合键(码)的定义条件,不能唯一标识元组及与其相对应的实体。因此主键(码)的值不能为空或部分为空
选课表(学号,课程号,成绩),主键为(学号,课程号)正确:(s01,c01,80);(s01,c01,null);错误:(s02,null,80);(null,c03,80);(null,null,80);(null,null,80);§3.1.2关系模型的完整性§3.1.2关系模型的完整性2.
参照完整性(Referentialintegrity)参照完整性规则的形式定义如下:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。在上述形式定义中,关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。§3.1.2关系模型的完整性例下面各种情况说明了参照完整性规则在关系中如何实现的。①在关系数据库中有下列两个关系模式:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)这里带下划线者为主键。据规则要求关系SC中的S#值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。§3.1.2关系模型的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。任何关系数据库系统都应该支持这两类完整性。除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这就是用户定义完整性。§3.1.2关系模型的完整性3.用户定义完整性(User-definedIntegrity)用户定义完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数;某些数据的输入格式要有一些限制,学号格式(S0127001),S开头,2位院系,2位专业,3位编号等;关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。§3.1.2关系模型的完整性
例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:
CHECK(AGEBETWEEN15AND30)
§3.1.3关系操作关系操作采用集合操作方式,即操作的对象和结构都是集合。关系模型常用的关系操作包括:选择,投影,连接,除,并,交,差等查询操作和增加,删除,修改操作。查询是最主要的部分。所以说,关系数据库的核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。§3.2关系代数关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数。它是由IBM在一个实验性的系统上实现的,称为ISBL(InformationSystemBaseLanguage)语言。ISBL的每个语句都类似于一个关系代数表达式。关系代数的运算对象是关系,运算结果也是关系§3.2关系代数关系代数的运算按运算符的不同主要分为两类:传统的集合运算:把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。包括并、差、交和笛卡尔积等运算。专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接和除法等运算。传统的集合运算
对两个关系的集合运算传统的集合运算是二目运算,是在两个关系中进行的。但是并不是任意的两个关系都能进行这种集合运算,而是要在两个满足一定条件的关系中进行运算。相容性定义:设给定两个关系R、S,若满足:(1)
具有相同的度n;(2)
R中第i个属性和S中第i个属性必须来自同一个域。则说关系R、S是相容的。除笛卡尔积外,要求参加运算的关系必须满足上述的相容性定义。【例】如图(a)、(b)所示的两个关系R与S为相容关系ABCa1b1c1a1b1c2a2b2c1R(a)ABCa1b1c1a2b2c1a2b3c2S(b)传统的集合运算1.并(Union)关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作:
R∪S={t|t∈R∨t∈S}对于关系数据库,记录的插入和添加可通过并运算实现。ABCa1B1c1a1B1c2a2B2c1a2B3c2R∪SABCa1b1c1a1b1c2a2b2c1R(a)ABCa1b1c1a2b2c1a2b3c2S(b)Select*fromRUnionSelect*fromS注意,不是unionall传统的集合运算2.差(Difference)关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:
R-S={t|t∈R∧┐t∈S}通过差运算,可实现关系数据库记录的删除。ABCa1b1c1a1b1c2a2b2c1R(a)ABCa1b1c1a2b2c1a2b3c2S(b)ABCa1b1c2
R-S(1)select*fromRexceptselect*fromS(2)select*fromRwherenotexists(select*fromSwhereR.A=S.AandR.B=S.BandR.C=S.C)传统的集合运算3.交(Intersection)关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:
R∩S={t|t∈R∧t∈S}如果两个关系没有相同的元组,那么它们的交为空。两个关系的并和差运算为基本运算(即不能用其他运算表达的运算),而交运算为非基本运算,交运算可以用差运算来表示:
R∩S=R-(R-S)ABCa1b1c1a1b1c2a2b2c1R(a)ABCa1b1c1a2b2c1a2b3c2S(b)
R∩S
ABCa1B1c1a2B2c1(1)select*fromRintersectselect*fromS(2)SelectR.*fromR,Swhere R.A=S.AandR.B=S.BandR.C=S.C传统的集合运算4.广义笛卡尔积(ExtendedCartesianProduct)两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作
R×S={tr⌒ts|tr∈R,∧ts∈S}关系的广义笛卡尔积可用于两关系的连接操作R.AR.BR.CS.AS.BS.Ca1b1c1a1b1c1a1b1c1a2b2c1a1b1c1a2b3c2a1b1c2a1b1c1a1b1c2a2b2c1a1b1c2a2b3c2a2b2c1a1b1c1a2b2c1a2b2c1a2b2c1a2b3c2R×SSelect*fromR,S专门的关系运算由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。学生-课程数据库:
学生关系Student、课程关系Course和选修关系SC专门的关系运算设关系模式为R(A1,A2,……An),它的一个关系为R,t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量。若A={Ai1,Ai2,……,Aik},其中Ai1,Ai2,……,Aik是A1,A2,……,An中的一部分,则A称为属性列或域列,Ã则表示{A1,A2,……,An}中去掉{Ai1,Ai2,……,Aik}后剩余的属性组。t[A]={t[Ai1],t[Ai2],……,t[Aik]}表示元组t在属性列A上诸分量的集合。专门的关系运算1.选取(Selection)选取运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作:σF(R)={t|t∈R∧F(t)为真}其中,σ为选取运算符,F为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符(>,≥,<,≤,=,≠)和逻辑运算符(∨∧┐)连接起来的逻辑表达式,结果为逻辑值“真”或“假”。选取运算是从行的角度进行的运算。相应的SQL?Select*fromstudentwheresdept=‘IS’select*fromstudentwheresage<20相应的SQL?2.投影(Projection)投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:ΠA(R)={t[A]|t∈R}其中A为R中的属性列,Π为投影运算符。从其定义可看出,投影运算是从列的角度进行的运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)[例3]查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影Selectsname,sdeptfromstudent[例4]查询学生关系Student中都有哪些系
SelectsdeptfromstudentSelectdistinctsdeptfromstudentSelectsnofromscwherecno=‘2’思考:查询性别为男或者年龄小于20的女生的学生姓名和系专门的关系运算R为n目关系,S为m目关系,tr∈R,ts∈S,trts称为元组的连接(concatenation),它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。3.连接(Join)1)连接也称为θ连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组
RS={|tr
R∧ts
S∧tr[A]θts[B]}A和B:分别为R和S上度数相等且可比的属性组θ:比较运算符
连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组
两类常用连接运算等值连接(equijoin)什么是等值连接θ为“=”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:RS={|tr
R∧ts
S∧tr[A]=ts[B]}
自然连接(Naturaljoin)自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组BRS={|tr
R∧ts
S∧tr[A]=ts[B]}
一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。Select*fromR,SwhereC<E它返回两个表中的所有列,但只返回连接列中C列值小于E列值的行Select*fromR,SwhereR.B=S.B它返回两个表中的所有列,但只返回连接列中具有相等值的行SelectA,R.B,C,EfromR,SwhereR.B=S.B它返回两个表中的不重复列,并且只返回连接列中具有相等值的行等值连接与自然连接的区别1.
等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。2.等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。思考查询学习了课程号为“c01”的学生姓名Selectsnamefromsc,course,studentWo=oandsc.sno=student.snoandsc.cpno=‘5’专门的关系运算给定一个关系R(X,Z),X和Z为属性组,定义当t[X]=x时,x在R中的象集(imageset),为Zx={t[Z]|t∈R,t[X]=x},它表示R中的属性组X上值为x的诸元组在Z上分量的集合。
x1在R中的象集
Zx1
={Z1,Z2,Z3},x2在R中的象集
Zx2
={Z2,Z3},x3在R中的象集
Zx3={Z1,Z3}4.除法(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组(也可以没有Z)。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:R÷S={tr[X]|tr∈R∧Πy(S)Yx}其中,Yx为x在R中的象集,x=tr[X]。一般解决“至少包括A,B,C等”的问题首先确定X,Y,Z,其中Y是公共部分除法对应SQL(自学)selectR.AfromRwhereR.Anotin(selectT2.Afrom(select*from(selectAfromR)asT1,S)asT2wherenotexists(select*fromRwhereR.A=T2.AandR.B=T2.BandR.C=T2.C))除法运算为非基本运算,假设S中没有Z部分(有Z则Πx(R)×S-R不成立,需要修改),则除法可以表示为:
R÷S=Πx(R)-Πx(Πx(R)×S-R)请模仿前面的除法sql实现此功能的SQL请模仿前面的除法sql实现此功能的SQL关系代数表达式的优化策略关系代数表达式的优化是查询优化的基本课题。不同的关系代数表达式运算涉及不同的操作步骤,因而具有不同的操作效率等价变换规则研究关系代数表达式的优化最好从研究关系表达式的等价变换规则开始。两个关系表达式El和E2是等价的,可记为E1≡E2。l)连接、笛卡尔积交换律 设E1和E2是关系代数表达式,F是连接运算的条件,则有:
E1×E2≡E2×E1
E1E2≡E2E1
E1E2≡E2El
F
F2)连接、笛卡尔积的结合律 设E1,E2,E3是关系代数表达式,Fl和F2是连接运算的条件,则有:
(E1×E2)×E3≡El×(E2×E3)
(E1E2)E3≡E1(E2E3)
(E1E2)E3≡E1(E2E3)
F1
F2
F1
F23)投影的串接定律 ∏A1,A2,...,An(∏B1,B2,...,Bm(E))≡∏A1,A2,...,An(E)
这里,E是关系代数表达式,Ai(i=1,2,...,n),Bj(j=l,2,...,m)是属性名且{A1,A2,...,An}构成{Bl,B2,...,Bm}的子集。
4)选择的串接定律
σF1(σF2(E))≡σF1∧F2(E)
这里,,Fl,F2是选择条件。选择的串接律E是关系代数表达式说明选择条件可以合并。这样一次就可检查全部条件。
5)选择与投影的交换律
σF(∏A1,A2,...,An(E))≡∏A1,A2,...,An(σF(E))
这里,选择条件F只涉及属性A1,...,An。若F中有不属于Al,...,An的属性B1,…,Bm则有更一般的规则:
∏A1,A2,...,An(σF(E))≡∏A1,A2,...,An(σF(∏A1,A2,...,An,B1,B2,...,Bm(E))6)选择与笛卡尔积的交换律如果F中涉及的属性都是El中的属性,则
σF(El×E2)≡σF(El)×E2
如果F=F1∧F2,并且F1只涉及E1中的属性,F2只涉及E2中的属性,则由上面的等价变换规则1,4,6可推出:
σF(E1×E2)≡σF1(El)×σF2(E2)若F1只涉及E1中的属性,F2涉及E1和E2两者的属性,则仍有
σF(El×E2)≡σF2(σF1(E1)×E2)
它使部分选择在笛卡尔积前先做。7)选择与并的交换 设E=E1∪E2,E1、E2有相同的属性名,则
σF(E1∪E2)≡σF(E1)∪σF(E2)8)选择与差运算的交换 若E1与E2有相同的属性名,则
σF(E1-E2)≡σF(E1)-σF(E2)9)投影与笛卡尔积的交换 设E1和E2是两个关系表达式,A1,...,An是E1的属性,B1,...,Bm是E2的属性,则
∏A1,A2,...,An,B1,B2,...,Bm(E1×E2)≡∏A1,A2,...,An(E1)×∏B1,B2,...,Bm(E2)10)投影与并的交换 设E1和E2有相同的属性名,则
∏A1,A2,...,An(E1∪E2)≡∏A1,A2,...,An(E1)∪∏A1,A2,...,An(E2)
查询优化的一般准则l.选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条。2.把投影运算和选择运算同时进行。3.找出公共子表达式。4.在执行连接前对关系适当地预处理。建立索引或对关系排序5.把某些选择同在它前面要执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年红色的祝福幼儿园新年活动的策划
- 2025年高职第二学年(工业分析技术)仪器分析基础理论测试题及答案
- 2025年高职第三学年(学前教育)幼儿行为观察与分析测试题及答案
- 2025年高职(建设工程管理)工程索赔综合测试试题及答案
- 2026年食品安全生产(卫生规范)试题及答案
- 2025年中职工商管理(企业管理技巧)试题及答案
- 2025年中职应急救援技术基础(技术基础理论)试题及答案
- 2025年中职幼儿发展与健康管理(幼儿保健)试题及答案
- 2025年中职市场营销(市场营销学概论)试题及答案
- 2025年大学作物学(作物生态学)试题及答案
- 2026院感知识考试题及答案
- 《红楼梦》导读 (教学课件) -高中语文人教统编版必修下册
- 安徽省九师联盟2025-2026学年高三(1月)第五次质量检测英语(含答案)
- (2025年)四川省自贡市纪委监委公开遴选公务员笔试试题及答案解析
- 2025年度骨科护理部年终工作总结及工作计划
- 2026安徽省农村信用社联合社面向社会招聘农商银行高级管理人员参考考试试题及答案解析
- 室外供热管道安装监理实施细则
- 岩板采购合同范本
- 腰背部推拿课件
- 通信管道施工质量管理流程解析
- 商场经理2025年终工作总结(二篇)
评论
0/150
提交评论