数据库系统教程.pptx

上传人:莉*** 文档编号:87342224 上传时间:2023-04-16 格式:PPTX 页数:80 大小:664.11KB
返回 下载 相关 举报
数据库系统教程.pptx_第1页
第1页 / 共80页
数据库系统教程.pptx_第2页
第2页 / 共80页
点击查看更多>>
资源描述

《数据库系统教程.pptx》由会员分享,可在线阅读,更多相关《数据库系统教程.pptx(80页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、本章重要概念(1)基本概念关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,过程性语言与非过程性语言。(2)关系代数五个基本操作,四个组合操作,七个扩充操作。(3)关系代数表达式的优化关系代数表达式的等价及等价转换规则,启化式优化算法。第1页/共80页关系模型和关系运算理论 l2.1 关系模型的基本概念 l2.2 关系代数 l2.4 关系代数表达式的优化 第2页/共80页2.1 关系模型的基本概念 基本术语 关系的定义和性质关系模型的三类完整性规则 关系模型的三级体系结构 关系模型的形式定义和优点 关系查询语言和关系运算 第3页/共80页基本术语定义2.1用二维表格表示实体集,

2、用关键码进行数据导航的数据模型称为关系模型(RelationalModel)。这里数据导航(datanavigation)是指从已知数据查找未知数据的过程和方法。图2.1学生登记表 第4页/共80页在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模式。在图2.2中,关系模式名是R。记录称为元组(tuple),元组的集合称为关系(relation)或实例(instance)。一般用大写字母A、B、C、表示单个属性,用大写字母、X、Y、Z表示属性集,用小写字母表示属性值,有时也习惯称呼关系为表或表格,元组为行(row),属性为列(column)。关系中属性个数称为“元数”(arity

3、),元组个数为“基数”(cardinality)。第5页/共80页关系元数为5,基数为4图2.2关系模型的术语一般术语 关系模型术语字段、数据项属性记录类型关系模式记录1元组1记录2元组2记录3元组3记录4元组4字段值属性值RABCDEa1b1c1d1e1a2b2c2d2e2a3b3c3d3e3a4b4c4d4e4第6页/共80页关键码(Key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键。(1)超键(SuperKey)(2)候选键(CandidateKey)(3)主键(PrimaryKey)在图2.1中,(学号,姓名)是模式的一个超键,但不是候选键,而(学号)是候选键。在实际使用

4、中,如果选择(学号)作为删除或查找元组的标志,那么称(学号)是主键。(4)外键(ForeignKey)例:S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)在关系S中S#为主键,在关系SC中S#为外键。在关系中能唯一标识元组的属性集。不含多余属性的超键。用户选作元组标识的候选键。如果在模式R中属性K是其他模式的主键,那么K在该模式R中称外键。第7页/共80页关系的定义和性质 定义2.2 关系是一个属性数目相同的元组的集合。在关系模型中,对关系作了下列规范性限制:(1)关系中每一个属性值都是不可分解的;(2)关系中不允许出现重复元组(即不允许出现相同的元组);(3)由于关系是一

5、个集合,因此不考虑元组间的顺序,即没有行序;(4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。第8页/共80页关系模型的三类完整性规则 1.实体完整性规则(entity integrity rule)要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标识元组的作用。如:学生(学号,姓名,年龄,.),学号不能为空第9页/共80页2.参照完整性规则(reference integrity rule)定义2.3 参照完整性规则的形式定义如下:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值

6、,或者等于R1关系中某个主键值。这条规则的实质是“不允许引用不存在的实体”。在上述形式定义中,关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。第10页/共80页学生表是主表,成绩表是从表,成绩表中的学号是外键,该值必须是学生表中已经存在的值。第11页/共80页例2.1下面各种情况说明了参照完整性规则在关系中如何实现的。在关系数据库中有下列两个关系模式:S(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)这里带下划线者为主键,带波浪线者为外键。据规则要求关系SC中的S#值应该在关系S中出现。如果关系SC中有一个元组(

7、S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。另外,在关系SC中S#不仅是外键,也是主键的一部分,因此,这里S#值不允许空。第12页/共80页设工厂数据库中有两个关系模式:DEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D#)车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D#不在主键中,因此,D#值允许空。第13页/共80页设课程之间有先修、后继联系。模式如下:R(C#,CNAME,PC#)其属性

8、表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#。这里参照完整性在一个模式中实现,即每门课程的直接先修课必须在关系中出现。第14页/共80页参照完整性实例例2.1TEACHER(T#,TNAME,TITLE)COURSE(C#,CNAME,T#)STUDENT(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)TEACHER(T#,TNAME,TITLE)COURSE(C#,CNAME,T#)STUDENT(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)图图2.3关系模型的数据结构图关系模型的数据结

9、构图(DSD)连线端点的“鸡爪型”表示“多”的一端第15页/共80页3.用户定义的完整性规则 在建立关系模式时,对属性定义了数据类型,即使这样,可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如,学生的年龄定义为两位整数范围还太大,我们可以写如下规则,把年龄限制在1530岁之间:CHECK(AGE BETWEEN 15 AND 30)第16页/共80页关系模型的三级体系结构1.关系模式在关系模型中,记录类型称为关系模式,而关系模式的集合就是数据库的概念模式。在系统实现时,关系模式和属性的命名一

10、般都用英文单词。TEACHER(T#,TNAME,TITLE)COURSE(C#,CNAME,T#)STUDENT(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)关系模式集关系模式集第17页/共80页关系(实例)S#SNAMEAGESEXS1Wang20MS4Wu19MS2Liu21FS3Chen22MS8Dong18FS#C#SCORES1C180S3C190S1C270S3C285S3C395S4C470S8C390C#CNAMET#C2MathsT2C4PhysicsT3C3ChemistryT4C1DatabaseT1CT#TNAMETITLET1zhang教授T2w

11、ang副教授T3liu教授T4hu副教授ST第18页/共80页2.子模式子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与关系模式中相应数据的联系。例如,用户需要用到子模式G(图2.4)。构造过程见书P43,图2.5成绩子模式G(S#,SNAME,C#,SCORE)图2.4子模式第19页/共80页图2.6关系S和SC的环结构3.存储模式在有些DBMS中,关系存储时是作为文件看待的,每个元组就是一个记录。由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现。如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序)。此外,还可对任意的属性集建立

12、辅助索引。第20页/共80页关系模型的形式定义 关系模型有三个重要组成部分:数据结构,数据操纵,数据完整性规则。(1)数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。(2)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。(3)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。第21页/共80页关系模型的优点与其它数据模型相比,关系模型突出的优点如下:(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。(2)关系

13、模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。(3)关系模型使数据库的研究建立在比较坚实的数学基础上。(4)关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。第22页/共80页2.2 关系代数 关系代数的五个基本操作 关系代数的四个组合操作 关系代数运算的应用实例 关系代数的七个扩充操作 第23页/共80页关系代数的五个基本操作 并(Union)设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为RS。形式定义如下:RSt|tR tS,t是元组变量,R和S的元数相同。差(Differe

14、nce)设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为RS。形式定义如下:RS t|tR tS,R和S的元数相同。第24页/共80页关系代数的五个基本操作 RABCa1b1c1a1b2c2a2b2c1SABCa1b2c2a1b3c2a2b2c1RSABCa1b1c1a1b2c2a1b3c2a2b2c1R-SABCa1b1c1第25页/共80页关系代数的五个基本操作 笛卡儿积(Cartesian Product)设关系R和S的元数分别为r和s,定义R和S的笛卡儿积是一个(r+s)元的元组的集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S

15、的一个元组,记为RS。形式定义如下:RSt|t=trRtsS 若R中有m个元组,S中有n个元组,则RS有mn个元组。第26页/共80页关系代数的五个基本操作 RABCa1 b1c1a1 b2c2a2 b2c1SABCa1b2c2a1b3c2a2b2c1R SR.AR.BR.Ca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.Ca1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1第27页/共80页关系代数的五个基本操作 投影(Projection)这个操作是对一个关系

16、进行垂直分割,消去某些列,并重新安排列的顺序。设关系R是k元关系,R在其分量Ai1,Aim(mk,i1,im为1到k间的整数)上的投影用i1,im(R)表示,它是一个m元元组集合,形式定义如下:i1,im(R)t|tR 第28页/共80页l投影操作主要是从列的角度进行运算l但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)第29页/共80页例如,3,1(R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符的下标处也可以用属性名表示。例如,关系R(A,B,C),那么C,A(R)与3,1(R)

17、是等价的。第30页/共80页 RABCa1b1c1a1b2c2a2b2c1SABCa1b2c2a1b3c2a2b2c1C,A(R)或或3,1(R)CAc1a1c2a1c1a2ACa1c2a2c1A,C(S)或或1,3(S)第31页/共80页选择(Selection):又称为限制(Restriction)选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。F中有两种成分:运算对象:常数(用引号括起来),元组分量(属性名或列的序号)运算符:算术运算符(,=,统称为符),逻辑运算符(,)关系R关于公式F的选择操作,用F(R)表示,形式定

18、义如下:F(R)t|tRF(t)=true为选择运算符,F(R)表示从R中挑选满足公式F为真的元组所构成的关系。例如,23(R)表示从R中挑选第2个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来。关系代数的五个基本操作第32页/共80页l选择运算是从行的角度进行的运算第33页/共80页RABCa1 b1 c1a1 b2 c2a2 b2 c1A=a1(R)或或1=a1(R)ABCa1 b1 c1a1 b2 c2第34页/共80页学学号号Sno姓姓名名Sname性性别别Ssex年年龄龄Sage系系Sdept95001李勇李勇男男

19、20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19ISStudent例例:设设有有一一个个学学生生-课课程程数数据据库库,包包括括学学生生关关系系Student、课程关系、课程关系Course和选修关系和选修关系SC关系代数的五个基本操作第35页/共80页例1查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影Sname,Sdept(Student)或2,5(Student)结果:SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张立IS第36页/共80页例2查询学生关系Student中都有哪些系Sdept(Stu

20、dent)结果:SdeptCSISMA第37页/共80页例3查询信息系(IS系)全体学生Sdept=IS(Student)或5=IS(Student)结果:SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95004张立张立男男19IS第38页/共80页例4查询年龄小于20岁的学生Sage20(Student)或420(Student)结果:SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS第39页/共80页(a)RS(b)RS(c)RS(d)C,A(R)(e)B=b(R)ABCABCabc

21、bgadafdaf c bd(a)关系R(b)关系S关系代数的五个基本操作(例)另书例2.2第40页/共80页关系代数的四个组合操作 1.交(intersection)关系R和S的交是由属于R又属于S的元组构成的集合,记为RS,这里要求R和S定义在相同的关系模式上。形式定义如下:RSttR tS,R和S的元数相同。由于RS=R-(R-S),或RS=S-(S-R),因此,交操作不是一个独立的操作。在上一个例子中,RS的结果是只有一个元组(d,a,f)。第41页/共80页RABCa1b1c1a1b2c2a2b2c1SABCa1b2c2a1b3c2a2b2c1R SABCa1b2c2a2b2c1第4

22、2页/共80页l连接有两种:连接和F连接(这里是算术比较符,F是公式)。连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组R Stt=trRtsStritsj等价于R Si(r+j)(RS)li和j:分别为R和S上可比的属性l:比较运算符l连接运算从R和S的广义笛卡尔积RS中选取(R关系)在i属性上的值与(S关系)在j属性上的值满足比较关系的元组ijij2.连接(join)第43页/共80页ABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52SCEAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310RS

23、例1另书例2.3第44页/共80页l等值连接(equijoin)l什么是等值连接l为“”的连接运算称为等值连接l等值连接的含义l从关系R与S的广义笛卡尔积中选取i、j属性值相等的那些元组,即等值连接为:R S=t|t=trRts Stri=tsj第45页/共80页例2:等值连接R S R.B=S.B AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32 ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS第46页/共80页F连接是从关系R和S的笛卡儿积中选取属性间满足某一公式F的元组,这里F是形如F1F2Fn的公式,每个FP是

24、形为ij的式子,而i和j分别为关系R和S的第i、第j个分量的序号。R S 2=13s0),那么RS是一个(r-s)元的元组的集合。(RS)是满足下列条件的最大关系:其中每个元组t与S中每个元组u组成的新元组必在关系R中。(笛卡儿积的逆运算)定义如下:RS1,2,r-s(R)-1,2,r-s(1,2,r-s(R)S)-R)第51页/共80页l除操作是同时从行和列角度进行运算RS第52页/共80页例2.6图2.12是关系做除法的例子。关系R是学生选修课程的情况,关系X1、X2、X3分别表示课程情况,而操作RX1、RX2、RX3分别表示至少选修X1、X2、X3中列出课程的学生名单。S#SNAMEC#

25、CNAMES1BAOC1DBS1BAOC2OSS1BAOC3DSS1BAOC4MISS2GUC1DBS2GUC2OSS3ANC2OSS4LIC2OSS4LIC4MISC#CNAMEC2OSC#CNAMEC2OSC4MISC#CNAMEC1DBC2OSC4MISS#SNAMES1BAOS#SNAMES1BAOS4LIS#SNAMES1BAOS2GUS3ANS4LIRX1X2X3RX1RX2RX3图图2.12除法操作的例子除法操作的例子第53页/共80页54关系代数运算的应用实例在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关

26、系代数表达式表示各种数据查询操作。例2.6设教学数据库中有四个关系:教师关系T(T#,TNAME,TITLE)课程关系C(C#,CNAME,T#)学生关系S(S#,SNAME,AGE,SEX)选课关系SC(S#,C#,SCORE)(1)检索学习课程号为C2的学生学号与成绩。(2)检索学习课程号为C2的学生学号与姓名。(3)检索至少选修LIU老师所授课程中一门课程的学生学号与姓名。(4)检索选修课程号为C2或C4的学生学号。(5)检索至少选修课程号为C2和C4的学生学号。(6)检索不学习C2课程的学生姓名与年龄。(7)检索学习全部课程的学生姓名。(8)检索所学课程包含学生S3所学课程的学生学号。

27、返回S#,SCORE(C#=C2(SC)或1,3(2=C2(SC)S#,SNAME(C#=C2(SSC)或S#,SNAME(SC#=C2(SC)S#,SNAME(TNAME=LIU(SSCCT)或S#,SNAME(S(SCCTNAME=LIU(T)S#(C#=C2C#=C4(SC)1(1=42=C25=C4(SCSC)SNAME,AGE(S)-SNAME,AGE(C#=C2(SSC)或SNAME,AGE(S)-SNAME,AGE(S(C#=C2(SC)SNAME(S(S#,C#(SC)C#(C)S#,C#(SC)C#(S#=S3(SC)第54页/共80页关系代数的七个扩充操作 1.改名 S(A

28、1,An)(R)或S(R)例:将R(B,C,D)改名为S(A,B,C):S(A,B,C)(R)将R(B,C,D)改名为R(X,C,D):R(X,C,D)(R)将R(B,C,D)改名为S(B,C,D):S(R)2.广义投影 S#,C#,SCORE*1.05(C#=C4(SC)3.赋值 AC#=C4(SC)S#,C#,SCORE*1.05(A)第55页/共80页4.外连接(outerjoin)5.外部并(outerunion)6.半连接(semijoin)7.聚集操作关系代数的七个扩充操作第56页/共80页外连接(outerjoin)外连接:R和S做自然连接时,把原该舍弃的元组也保留在新关系中,同

29、时在这些元组新增加的属性上填上空值(null)。记为RS。左外连接:R和S做自然连接时,只把R中原该舍弃的元组放到新关系中,同时在这些元组新增加的属性上填上空值(null)。记为RS。右外连接:R和S做自然连接时,只把S中原该舍弃的元组放到新关系中,同时在这些元组新增加的属性上填上空值(null)。记为RS。ABCabcbbfcadBCDbcdbceadbefgABCDabcdabcecadbABCDabcdabcecadbbbfnullnullefgABCDabcdabcecadbbbfnullABCDabcdabcecadbnullefg例2.11(a)关系R(b)关系S(c)RS(d)R

30、S(e)RS(f)RS第57页/共80页外部并(outerunion)定义:如果R和S的关系模式不同,构成的新关系的元组由属于R或属于S的元组组成(公共属性只取一次),同时元组在新增加的属性上填上空值。ABCabcbbfcadBCDbbdbceadbefg例2.12(a)关系关系R(b)关系SABCDabcnullbbfnullcadnullnullbbdnullbcenulladbnullefg(c)关系R和S的外部并第58页/共80页半连接(semijoin)定义:R和S的自然连接在关系R的属性集上的投影,即:RS=R(RS)。ABCabcdbcbbfcadBCDbcdbceadb例例2.

31、13(a)关系关系R(b)关系关系SABCDabcdabcedbcddbcecadb(c)R SABCabcdbccadBCDbcdbceadb(d)R S(e)S R第59页/共80页聚集操作聚集操作是指输入一个值的集合,然后根据该值集合得到一个单一的值作为结果。常用的聚集函数包括求最大值max,最小值min,平均值avg,总和值sum和记数值count等。例2.141.求男同学的平均年龄。avgage(sex=M(S)2.求年龄为18岁的人数。counts#(age=18(S)第60页/共80页2.4 关系代数表达式的优化 关系代数表达式的优化问题 关系代数表达式的等价变换规则 关系代数表

32、达式的优化算法 第61页/共80页关系代数表达式的优化(1)在关系代数表达式中需要指出若干关系的操作步骤。那么,系统应该以什么样的操作顺序,才能做到既省时间,又省空间,而且效率也比较高呢?这个问题称为查询优化问题。在关系代数运算中,笛卡儿积和连接运算是最费时间的。第62页/共80页关系代数表达式的优化(2)例2.22设关系R和S都是二元关系,属性名分别为A,B和C,D。设有一个查询可用关系代数表达式表示:E1=A(B=CD=99(RS)也可以把选择条件D=99移到笛卡儿积中的关系S前面:E2=A(B=C(RD=99(S)还可以把选择条件BC与笛卡儿积结合成等值连接形式:E3=A(RD=99(S

33、)这三个关系代数表达式是等价的,但执行的效率大不一样。显然,求El,E2,E3的大部分时间是花在连接操作上的。B=C第63页/共80页例:求选修了课程C2的学生姓名假设1:外存:S:1000条,SC:10000条,选修C2号课程:50条假设2:一个内存块装元组:10个S,或100个SC,内存中一次可以存放:5块S元组,1块SC元组和若干块连接结果元组假设3:读写速度:20块/秒假设4:连接方法:基于数据块的嵌套循环法第64页/共80页Q1sname(S.S#=SC.S#SC.C#=C2(SSC)SSC读取总块数=读S表块数+读SC表遍数*每遍块数=1000/10+(1000/(105)(100

34、00/100)=100+20100=2100读数据时间=2100/20=105秒第65页/共80页中间结果大小=1000*10000=107(1千万条元组)写中间结果时间=10000000/10/20=50000秒读数据时间=50000秒总时间=1055000050000秒=100105秒=27.8小时第66页/共80页2.Q2name(SC.C#=C2(SSC)读取总块数=2100块读数据时间=2100/20=105秒中间结果大小=10000(减少1000倍)写中间结果时间=10000/10/20=50秒读数据时间=50秒总时间1055050秒205秒=3.4分第67页/共80页3.Q3Sn

35、ame(SSC.C#=C2(SC)读SC表总块数=10000/100=100块读数据时间=100/20=5秒中间结果大小=50条不必写入外存读S表总块数=1000/10=100块读数据时间=100/20=5秒总时间55秒10秒第68页/共80页4.Q4Sname(SSC.C#=C2(SC)假设SC表在C#上有索引,S表在S#上有索引读SC表索引=读SC表总块数=50/1001块读数据时间中间结果大小=50条不必写入外存 读S表索引=读S表总块数=50/10=5块读数据时间=5/20 总时间10秒第69页/共80页关系代数表达式的等价变换规则(1)连接和笛卡儿积的交换律连接和笛卡儿积的结合律投影

36、的级联其中选择的级联选择和投影操作的交换选择对笛卡儿积的分配律选择对并的分配律第70页/共80页71选择对集合差的分配律选择对自然连接的分配律投影对笛卡儿积的分配律投影对并的分配律选择与连接操作的结合并和交的交换律并和交的结合律第71页/共80页关系代数表达式的启发式优化算法 在关系代数表达式中,最花费时间和空间的运算是笛卡儿积和连接操作,为此,引出三条启发式规则,用于对表达式进行转换,以减少中间关系的大小。(1)尽可能早地执行选择操作;(2)尽可能早地执行投影操作;(3)避免直接做笛卡儿积,把笛卡儿积操作之前和之后的一连串选择和投影合并起来一起做。72第72页/共80页73算法2.1关系代数

37、表达式的启发式优化算法。输入:一个关系代数表达式的语法树输出:计算表达式的一个优化序列例2.23检索学习课程名为OS的女学生学号和姓名。该查询语句的关系代数表达式如下:S#,SNAME(CNAME=OSSEX=F(CSCS)上式中,符号用、操作表示,可得下式:S#,SNAME(CNAME=OSSEX=F(L(C.C#=SC.C#SC.S#=S.S#(CSCS)此处L是C、SC、S中全部属性。第73页/共80页74S.S#,SNAMEC.C#,CNAME,T#,SCORE,S.S#,SNAME,AGE,SEXCNAME=OSSEX=FC.C#=SC.C#SC.S#=S.S#SSCC图图2.18关

38、系代数表达式关系代数表达式的初始语法树的初始语法树第74页/共80页75图图2.19优化过程中的语法树优化过程中的语法树(选择操作已尽可能移向叶端选择操作已尽可能移向叶端)S.S#,SNAMESC.S#=S.S#SSCCSEX=FC.C#=SC.C#CNAME=OS第75页/共80页76图图2.20优化的语法树优化的语法树及其分组及其分组S.S#,SNAMES.S#,SNAMESC.S#=S.S#SSCCSEX=FC.C#=SC.C#CNAME=OSSC.S#SC.S#,SC.C#C.C#第76页/共80页重要内容分析(一)(1)一般规则对于只涉及到选择、投影、连接的查询可用下列表达式表示:(

39、RS)或者(RS)对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“检索学习全部课程的学生姓名”。77第77页/共80页重要内容分析(二)(2)“检索不学C2课的学生姓名”,绝不能用下式表示:SNAME,AGE(C#C2(SSC)一定要用“差”的形式:SNAME,AGE(S)SNAME,AGE(C#=C2(SSC)(3)“检索学习全部课程的学生学号”,要用S#,C#(SC)C#(C)表示,而不能写成 S#(SCC#(C)形式。这是因为一个学生学的课程的成绩可能是不一样的。78第78页/共80页重要内容分析(三)2非过程性语言与过程性语言的区别编程时必须指出“干什么”及“怎么干”的语言,称为过程性语言;编程时只须指出“干什么”,不必指出“怎么干”的语言,称为非过程性语言。79第79页/共80页感谢您的观看!第80页/共80页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com