




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统原理与设计第3讲关系代数,主讲:顾曦电话mail:guxi,回顾,1,2,关系(表),学生记录表,1,码,元组(行),关系名,属性(列),分量,关系模式:学生记录表(学号,姓名,性别,系名,年级),模式,数据,3,1、关系代数概述,1.1关系代数(relationalgebra),关系代数是通过关系代数运算构成的表达式来表达查询基本的关系代数运算有选择、投影、集合并、集合差、笛卡尔积和更名等。关系代数运算是以一个或两个关系作为输入(即运算对象)产生一个新的关系作为结果。,1,5,1.2标记方法,设关系模式为r(A1,A2,An)它的一个关系实例设为RtR表示t是R的一个元组tA表示元组t在属性列A上诸分量的集合。tAi则表示元组t中相应于属性Ai的一个分量,1,6,A,A若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性集或属性组。A:表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。,1,7,示例:关系模式r(A1,A2,An),14级学生记录表(一个关系实例R),1,属性集A,tA,tR,tAi,属性集A,8,trts,R为n目关系,S为m目关系。trR,tsS,trts称为元组的连接。trts是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。,1,9,示例,1,10,R(3目关系),S(2目关系),trts(5列元组),tr,tr,ts,关系代数的运算符,关系代数用到的运算符包括四类,1,11,2、传统的集合运算,1,12,2.1并(),关系r和关系s具有相同的n个属性,且相应的属性取自同一个域。t是元组变量,tr表示t是r的一个元组。关系r与关系s的并记作:rs=ttrts其结果关系仍为n目关系,由属于r或属于s的所有元组组成。注:去掉重复元组,1,13,并()示例,1,14,2.2差(-),r和s具有相同的目n相应的属性取自同一个域关系r与关系s的差记作:r-s=ttrts其结果关系仍为n目关系,由属于r且不属于s的所有元组组成。,1,15,示例,1,16,AnIntroductiontoDatabaseSystem,2.3交(),r和s具有相同的目n相应的属性取自同一个域关系r与关系s的交记作:rs=ttrts其结果关系仍为n目关系,由既属于r又属于s的所有元组组成。关系的交可以通过差来表达,即rs=r-(r-s),1,17,示例,1,18,2.4笛卡尔积(),两个分别为n目和m目的关系r和s的笛卡尔积是一个n+m目元组的集合。元组的前n列是关系r的一个元组,后m列是关系s的一个元组若关系r有kr个元组,关系s有ks个元组,则关系r和s的笛卡尔积有krks个元组。记作:rs=trtstrrtss,1,19,例:成绩管理数据库(P56),关系Course和Class可分别描述为:Course(课程号,课程名称,学时,学分)Class(班级号,班级名称,学院,年级,人数)求笛卡尔积ClassCourse,1,20,1,21,Course关系CourseNoCourseNamecreditHourcourseHourpriorCourseAC001基础会计483nullCN028大学语文483nulCS012操作系统805nullCS015数据库系统644CS012,Class关系ClassNoClassNameinstiutegradeClassNumAC0703会计学08(3)班会计学院200846CS0701计算机07(1)班信息学院200748ISO802信息系统08(2)班信息学院200843,笛卡尔积ClassCourse,1,22,3、专门的关系运算,1,23,3.2选择()运算,选择操作是在关系r中查找满足给定谓词P(即选择条件)的所有元组,记作:P(r)=ttrP(t)P是一个逻辑表达式,取值为“真”或“假”。选择运算是从行的角度进行的运算。,1,24,P(r)示例,例如,在数据库ScoreDB中,查找2007级的所有班级情况grade=2007(Class),ClassNoClassNameinstiutegradeClassNumAC0703会计学08(3)班会计学院200746CS0701计算机07(1)班信息学院200748,例如,在数据库ScoreDB中,查找所有1992年及以后出生的女学生情况:year(birthday)=1992sex=女(Student),StudentNoStudentNamesexbirthdaynativenationclassNo0703010李宏冰女1992-03-09太原蒙古族AC0703,1,25,3.3投影(),关系r上的投影是从r中选择出若干属性列组成新的关系。记作:A(r)=tAtr其中:A为关系r的属性集合。注意:投影是从列的角度进行的运算。投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),1,26,投影(A(r))示例,在数据库ScoreDB中,查找所有学生的姓名和民族。studentName,nation(Student)提问:nation(Student),在数据库ScoreDB中,查找所有“蒙古族”学生的姓名和籍贯。,StudentNamenation李小勇汉族王红汉族王宏冰蒙古族刘方晨傣族王红敏蒙古族,StudentNamenative王宏冰太原王红敏上海,studentName,native(nation=蒙古族(Student),1,27,连接也称为连接。记为AopB,其中A、B分别为关系r和s中的度数相等且可比的连接属性集,op为比较运算符。连接是从两个关系的笛卡尔积中选取连接属性间满足谓词的所有元组。记作:rs=trtstrrtss(r.Aops.B)连接运算就是从关系r和s的笛卡尔积rs中,选取r关系在A属性集上的值与s关系在B属性集上的值满足连接谓词的所有元组,即rs=,3.4连接(),1,28,几种连接,一般连接:不是等值比较谓词的连接运算(较少用)。等值连接(equijoin):为等值比较谓词的连接运算。自然连接(naturaljoin):一种特殊的等值连接两个参与连接的关系具有公共的属性集,并在这个公共属性集上进行等值连接;将连接结果中的重复属性列去除掉,即在公共属性集中的列只保留一次。,1,29,一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,1,30,示例,关系R和关系S如下所示:,1,31,公共属性:B,1,32,一般连接RS的结果:,CE,1,33,等值连接RS的结果:,1,34,自然连接RS的结果如下:,取消重复列,外连接(参见教材B,p59例子),对于连接RS外连接:把舍弃的元组也保存在结果关系中,在其他属性上填空值(null)。左外连接:保留左边关系R中要舍弃的元组。右外连接:保留右边关系S中要舍弃的元组。,1,35,1,36,上例中关系R和关系S的外连接,上例中关系R和关系S的左外连接和右外连接,1,37,综合示例,在数据库ScoreDB中,查找所有2008级的“蒙古族”学生的姓名,StudentName王红敏,分析:nation=蒙古族(Student)可以找到所有蒙古族学生的情况,但关系Student中没有年级的信息,因此必须将关系Student与关系Class关联起来。,根据模式导航图可知,关系Student与关系Class可通过外码classNo关联起来,这种外码引用关系可通过自然连接表示StudentClass=Student.classNo=Class.classNo(StudentClass),最后的查询可表达为:studentName(nation=蒙古族(Student)grade=2008(Class),1,38,注意:在关系代数中,对同一个查询问题,可用多种方式来表达!,1,39,studentName(nation=蒙古族(Student)grade=2008(Class)=studentName(Student.classNo=Class.classNo(nation=蒙古族(Student)grade=2008(Class)=studentName(Student.classNo=Class.classNo(nation=蒙古族grade=2008(StudentClass)=studentName(nation=蒙古族grade=2008Student.classNo=Class.classNo(StudentClass)=studentName(nation=蒙古族grade=2008(Student.classNo=Class.classNo(StudentClass)=studentName(nation=蒙古族grade=2008(StudentClass),1,40,主要的关系代数运算,1,41,3.5除(),概念:象集给定一个关系R(X,Z),X和Z为属性组当tX=x时,x在R中的像集(ImagesSet)为:Zx=tZ|tR,tX=x它表示R中属性组X上值为x的元组在Z上分量的集合。,1,42,象集示例,1,43,例:R(A,B,C)如下ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1,R上属性集A的值为a1的像集为:(b1,c2),(b2,c3),(b2,c1),除运算,设关系r(R)和s(S),属性集S是R的子集,即SR,则关系rs是关系r中满足下列条件的元组在属性集R-S上的投影:trr,记x=trR-S,则关系r中属性集R-S的取值x的象集Sx包含关系s。记作rs=trR-StrrsSx,1,44,除操作是同时从行和列角度进行运算,1,45,除法示例,例1Score(courseNo(courseNo=AC001(Course),StudentNotermscore070100807081760703010070819207030450708152070304508091940802002080919808020050910188,Score关系StudentNocourseNotermscore0701001CN02807081850701001CS01207082880701001CS01508091920701008AC00107081760701008CN02807081860701008CS01207082930701008CS01508091960703010AC00107081920703010CN02807081830703010CS01207082730703045AC00107081520703045AC00108091940703045CN02807081800703045CS01508091820802002AC00108091980802002CN02808091720802002CS01509101850802005AC00109101880802005CS01208092900802005CS0150910187,例2Score(courseNo(courseNo=CN028(Course),StudentNotermscore0701001070818507010080708186070301007081830703045070818008020020809172,Score关系StudentNocourseNotermscore0701001CN02807081850701001CS01207082880701001CS01508091920701008AC00107081760701008CN02807081860701008CS01207082930701008CS01508091960703010AC00107081920703010CN02807081830703010CS01207082730703045AC00107081520703045AC00108091940703045CN02807081800703045CS01508091820802002AC00108091980802002CN02808091720802002CS01509101850802005AC00109101880802005CS01208092900802005CS0150910187,47,23:54,需要查找修读过信息学院开设的所有课程的学生学号,如何表达查询?,分析:查找出修读过信息学院课程的所有学生r1=studentNo,courseNo(courseNoLIKECS%(Score),找出信息学院开设的所有课程r2=courseNo(courseNoLIKECS%(Course),StudentNocourseNo0701001CS0120701001CS0150701008CS0120701008CS0150703010CS0120703045CS0150802002CS0150802005CS0120802005CS015,CourseNoCS012CS015,例3,1,48,比较图2-20(a)和(b),修读过信息学院开设的所有课程的学生就是关系r1中满足“courseNo列包含关系r2的所有行”的那些学生。,1,49,3.6构造关系代数表达式的步骤,明确该查询涉及到哪些属性;明确该查询涉及到哪些关系;根据数据库模式导航图,通过多对一联系(或一对多联系)把所有涉及的关系连接起来,每一个多对一联系(或一对多联系)都可以表示为外码属性的自然连接。,1,50,小结:关系代数的运算符,1,51,4、关系数据模型的完整性约束,1,52,4.1关系数据模型的完整性约束,关系的完整性约束条件包含三个方面:,1,53,1)实体完整性,若属性集A是关系r的主码,则A不能取空值null。例如,关系Student,由于studentNo是关系Student的主码,因此它在任何时候的取值都不能为空值null其他属性如birthday、speciality等可以取空值,表示当时该属性的值未知或不存在。如果主码是由若干个属性的集合构成,则要求构成主码的每一个属性的值都不能取空值。例如,学生成绩管理数据库ScoreDB中的关系Score,它的主码是studentNo,courseNo,因此这2个属性都不能取空值。,1,54,2)参照完整性,设F是关系r的一个属性(或属性集),Ks是关系s的主码。如果F与Ks相对应,则称F是关系r参照关系s的外码(foreignkey),简称F是关系r的外码。并称关系r为参照关系,关系s为被参照关系或目标关系。若属性(或属性集)F是关系r的外码,它与关系s的主码Ks相对应,则对于关系r中的每一个元组在属性F上的取值要么为空值null,要么等于关系s中某个元组的主码值。,1,55,举例:多对一联系的属性引用学生成绩管理数据库ScoreDB中,学生关系Student与班级关系Class之间存在多对一的“归属”联系。多对多联系的联系关系及属性引用学生成绩管理数据库ScoreDB中,假设每一个学生一个学期可以选修若干门课程,每一门课程同时有若干个学生选修,那么学生关系Student与课程关系Course之间存在多对多的“选修”联系,且课程的开课学期term和修读成绩score为联系属性。关系内部属性间的引用联系学生成绩管理数据库ScoreDB中,假设一门课程可能存在先修课程,且关系Course中的priorCourse属性用来存放先修课程的课程编号。课程关系Course中的priorCourse属性需要引用课程关系Course的主码“课程编号”courseNo。,1,56,3)用户自定义完整性,用户定义的完整性就是针对某一具体应用要求来定义的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如,限制关系中某些属性的取值要符合业务语义要求。限制关系中某些属性的取值之间需要满足一定的逻辑关系。限制关系中某属性集上的取值必须唯一。,1,57,4.2数据库模式导航图,一个含有主码和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药检专业毕业论文模板
- 不良事件上报制度及流程试题及答案
- 2025年新材料研发企业股权收购与产业升级合同
- 2024年安全员考试题库完整答案
- 信息专业 毕业论文
- 于2025年开展纠正医药购销领域和医疗服务中不正之风专项治理的情况汇报范文
- 储备库仓储设施防护设计方案
- 防涝管网设计与空间优化方案
- 体育学专业毕业论文模板
- 毕业论文范文下载ps
- 2024年高考新课标Ⅱ卷语文试题讲评课件
- 4S店企业职业卫生培训
- 静脉配液治疗操作核对流程
- 检验科糖尿病
- 产科医疗安全与质量控制制度
- 石油化工设备维护与检修手册
- 拆迁工程成本控制方案
- DB31-T 1502-2024 工贸行业有限空间作业安全管理规范
- 合肥新华书店招聘笔试题库2024
- 新解读《JTG 5120-2021公路桥涵养护规范》
- 2.3.4运动图像与追及问题课件高一上学期物理人教版
评论
0/150
提交评论