《第2章关系数据模型与关系运算优秀课件.ppt》由会员分享,可在线阅读,更多相关《第2章关系数据模型与关系运算优秀课件.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章关系数据模型与关系运算第1页,本讲稿共40页2.1 关系数据模型n关系基本概念q关系的笛卡儿乘积定义nDomain(域):具有相同数据类型的值的集合。nCartesian Product(笛卡尔积)q定义:设有一组域D1,D2,Dn,这些域可以部分或者全部相同。域D1,D2,Dn的笛卡尔乘积(Cartesian Products)定义为如下集合:D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 其中每一个元素(d1,d2,dn)称为一个元组(Tuple),通常用t表示;元组中每一个值称为一个分量(Component)q关关系系:笛卡儿乘积的一个子集R称为在域D1,D2,Dn上
2、的一个关系,记为R(D1,D2,Dn),其中R表示关系的名称,n称为关系R的元素或度数,而关系R中所含元组数称为R的基数。q例子:总分登记表中的四个域 总分登记表 Domain(学号)Domain(姓名)Domain(性别)Domain(总分)第2页,本讲稿共40页2.1 关系数据模型q关系的二维表格描述关系是满足特定规范性要求的二维表格学号姓名性别总分2006010101张红女5882006010102李力男5362006010103王新男6012006010104黄誉男622n关系的其他一些概念:属性、度数、元组、基数第3页,本讲稿共40页2.1 关系数据模型n关系的三种类型(1)基本表:
3、也称为基本关系表或者基表,它是实际存储数据的逻辑表示(2)查询表:是一个或者多个基本表进行查询后,所得到的查询结果对应的表(3)视图表:是由基本表或者其他视图导出的表,是虚表,不对应实际存储数据。第4页,本讲稿共40页2.1 关系数据模型n键q超键:能唯一标识各个元组的属性集合称为关系R的超键q候选键:不含多余属性的超键称为候选键q主键:选定了用于标识的候选键称为主键q外键:如果一个关系R1的一个属性子集A是另一个关系R2的主键,但不是R1本身的主键,则称A是关系R1的外键。其中,R1称为参照关系,R2称为被参照关系。第5页,本讲稿共40页候选键(键):A,B;B,C;A,C;超键举例:A,B
4、,C;A,C,D;A,B;B,C;A,C;订单关系中的货品号定义为外键第6页,本讲稿共40页ABCDabcdacdebdefadcgbcdgcbeg候选键为:AB、AD、BD和CD第7页,本讲稿共40页2.1 关系数据模型q关系模式和关系实例n关系模式q关系的描述称为关系模式关系的描述称为关系模式(Relation Schema)。q它是一个5元组:R(U,D,dom,F)关系模式通常可以简记为:R(U)或R(A1,A2,An)如S(S#,Sname,Ssex,Sage,Sclass)n关系实例第8页,本讲稿共40页n关系的性质q在关系模型中,对关系作了下列规范性限制:(1)列的同质性(2)异
5、列同域性(3)列的无序性、行的无序性(4)元组相异性(5)属性值原子性学号姓名性别总分2006010101张红女5882006010102李力男5362006010103王新男6012006010104黄誉男622第9页,本讲稿共40页2.1 关系数据模型n关系操作类型q数据查询(1)单个关系内的属性指定(2)单个关系内的元组选择(3)多个关系的合并q数据更新(1)数据删除(2)数据插入(3)数据修改q空值处理(1)限定主键中不允许出现空值(2)定义有关空值运算学号姓名性别总分2006010101张红女5882006010102李力男5362006010103王新男6012006010104黄
6、誉男622第10页,本讲稿共40页2.1 关系数据模型n关系操作数学基础:关系运算第11页,本讲稿共40页2.1 关系数据模型n完整性约束q(1)实体完整性约束n实体完整性约束(Entity Integrity)要求组成主键的属性不能为空值,q(2)参照完整性约束n参照完整性规则:如果X是关系R的外键,它与关系S的主键KS相对应,则对于R中每个元组在X上的值必须为:q或者为空值q或者等于S中某个元组的主键值q(3)用户定义完整性约束n例如:订货数不得小于0;订货数不得小于存货量第12页,本讲稿共40页例1 下面各种情况说明了参照完整性规则在关系中如何实现的。在关系数据库中有下列两个关系模式:S
7、(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE)这里带下划线者为主键,SC关系中的S属性为外键。据规则要求关系SC中的S#值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。另外,在关系SC中S#不仅是外键,也是主键的一部分,因此这里S#值不允许空。第13页,本讲稿共40页例2 设工厂数据库中有两个关系模式:DEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D#)车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓
8、名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D#不在主键中,因此D#值允许空。第14页,本讲稿共40页2.2 关系代数n五种基本关系代数运算q并运算;差运算;投影运算;选择运算;广义笛卡尔乘积 q关系代数基本操作可以分为基于更新和基于查询两类第15页,本讲稿共40页p基于更新基本操作基于更新基本操作n1.插入-集合的并运算设有兼容关系R、S(即R、S具有相同的关系模式),则二者的并运算定义为:式中“”为并运算符,t为元组变量,结果RS为一个新的与R、S兼容的关系,该关系是由属于R或属于S的元组构成的集合。n2.删除-集合的差运算设有兼容关系R、S,则二者的差运算定义为
9、:式中“”为差运算符,t为元组变量,结果R-S为一个新的与R、S兼容的关系,该关系是由属于R而且不属于S的元组构成的集合,即在R中减去与S中相同的那些元组。第16页,本讲稿共40页第17页,本讲稿共40页n3.修改-并运算与差运算的组合 设需要修改的元组构成关系R1,则先做删除,得R-R1。设需修改后的元组构成关系R2,此时将其插入,得到结果(R-R1)R2。第18页,本讲稿共40页2.2 关系代数q数据查询基本运算数据查询基本运算n1关系属性的指定投影运算 这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。“”为投影运算符,表示按照i1,i2,in的顺序从关系R中取出n列,并
10、删除结果中的重复元组并删除结果中的重复元组,组成一个新的以i1,i2,in为列顺序的n元关系。第19页,本讲稿共40页如果是 呢?第20页,本讲稿共40页n2关系元组选定选择运算 选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。“”为选择运算符,表示按照给定的条件F从关系R中选择出满足这一条件F的元组,组成一个新的与R同类的k元关系。第21页,本讲稿共40页第22页,本讲稿共40页n3关系的联结广义笛卡尔乘积运算 当两个关系中有属性重名时,要表名其Qualified names 即即 table_name.attribute_name第23页,本讲稿共40页关系R S关系R S问
11、:RR?第24页,本讲稿共40页2.2 关系代数n基本关系代数运算综合实例 图有两个关系R和S,求RS、RS、RS、3,1(R)、B=b(R)。(a)RS (b)RS (c)RS (d)3,1(R)(e)B=b(R)R S第25页,本讲稿共40页2.2 关系代数n基本关系代数运算综合实例学生关系:S(S#,Sn,Sex,Sa,Sd);课程关系:C(C#,Cn,P#,Tn);选课关系:SC(S#,C#,G),其中 S#表示学号,Sn表示学生姓名,Sex 表示学生性别,Sa表示学生年龄,Sd表示学生所在系别;C#表示课程号,Cn表示课程名,P#表示预修课程号,Tn表示任课教师姓名;G表示课程成绩。
12、第26页,本讲稿共40页例例2-5 学号为S17的学生因故退学,在S和SC中将其删去:学生关系:S(S#,Sn,Sex,Sa,Sd);课程关系:C(C#,Cn,P#,Tn);选课关系:SC(S#,C#,G),例例2-6 检索不修读任何课程的学生学号:例例2-7 在关系C中增加一门新课程(C13,ML,C3,null)如果令这门新课程元组所构成的关系为R,则有:R=(C13,ML,C3,null),这时结果为:CR。第27页,本讲稿共40页例例2-8 检索学生年龄大于等于20岁的学生姓名:学生关系:S(S#,Sn,Sex,Sa,Sd);课程关系:C(C#,Cn,P#,Tn);选课关系:SC(S#
13、,C#,G),例例2-9 检索预修课程号为C2的课程的课程号:例例2-10 将关系S中学生S6的年龄改为22岁:其中,W为修改后的学生有序组构成的关系,即W=(S6,22)。表示原值第28页,本讲稿共40页2.2 关系代数n扩充关系代数运算q1.交运算n设有兼容关系R、S(即R、S具有相同的关系模式),则二者的并运算定义为:qRS=R(RS)或RS=S(SR),所以交运算可以看作是组合运算,而不是基本运算。第29页,本讲稿共40页2.2 关系代数q2.除法运算q设关系R和S的元数分别为r和s(设rs0),那么RS是一个(r-s)元的元组的集合。(RS)是满足下列条件的最大关系:其中每个元组t与
14、S中每个元组u组成的新元组必在关系R中。第30页,本讲稿共40页例例2-14 检索修读所有课程的学生学号:第31页,本讲稿共40页q 3.连接运算(join)n联接有三种:联接和自然联接(这里是算术比较符),外联接。n(1)联接(从R和S的笛卡儿乘积中选取满足条件“ij”的元组 第32页,本讲稿共40页第33页,本讲稿共40页n(2)自然联接(natural join)两个关系R和S的自然联接操作具体计算过程如下:计算RS;设R和S的公共属性是A1,AK,挑选RS中满足R.A1=S.A1,R.AK=S.AK 的那些元组;去掉S.A1,S.AK这些列。定义:i1,im(R.A1=S.A1.R.A
15、K=S.AK(RS),其中i1,im为R和S的全部属性,但公共属性只出现一次。第34页,本讲稿共40页第35页,本讲稿共40页n例例2-17检索课程号为C,且成绩为A的所有学生姓名:学生关系:S(S#,Sn,Sex,Sa,Sd);课程关系:C(C#,Cn,P#,Tn);选课关系:SC(S#,C#,G),n例例2-18 检索S1所修读的课程名及其预修课号:n例例2-19 检索年龄为20岁,并且预修课程成绩为A的学生所修读的课程名:第36页,本讲稿共40页2.3 基于关系代数查询优化n例2-15 在关系模式S、C、SC中,查询修读课程号未C5的所有学生姓名。对应的SQL语句:SELECT S.Sn
16、FROM S,SCWHERE S.Sn=SC.Sn AND SC.C#=C5;n非过程性语言与过程性语言的区别:编程时必须指出“干什么”及“怎么干”的语言,称为过程性语言;编程时只须指出“干什么”,不必指出“怎么干”的语言,称为非过程性语言第37页,本讲稿共40页2.3 基于关系代数查询优化n三种关系代数表达式:n设S有1000个元组,SC有10000个元组,其中修读C5的元组数为50。n磁盘中每个物理块能存放10个S元组,或100个SC元组。n内存有6个块的缓冲区,其中5块可以存放S元组,1块存放SC元组。n读写一块磁盘的时间为1/20秒,即1秒读写20个磁盘块。第38页,本讲稿共40页2.3 基于关系代数查询优化n查询优化策略n选择优先操作规则n投影优先操作规则n笛卡儿乘积“合并”规则第39页,本讲稿共40页本章小结n1.关系数据模型的数据结构q数据结构的数学表达q概念:表(关系);属性(字段);元组(记录);超键,候选键,主键;外键;域n2.完整性约束q实体完整性;参照性完整性;用户自定义的完整性n3.关系代数q五种基本运算;三种扩展运算(连接运算有两种)q掌握运算的表达式;新关系的head和记录内容;综合实例如何用关系代数表达式表示n4.查询优化策略第40页,本讲稿共40页