您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第02章 关系数据库(2)
1数据库系统概论PrincipleandApplicationofDatabase第二章关系数据库(2)2复习笛卡尔积与关系关系模式与关系候选码、主码、全码、主属性、非主属性关系的三种完整性约束32.2关系的码和关系的完整性2.2.1候选码与主码2.2.2外码2.2.3关系的完整性4定义2.7:如果关系R2的一个(组)属性X,不是关系R2的主码,而是另一个R1的主码,则:该属性(组)X称为关系R2的外码关系R1称为被参照关系或目标关系关系R2称为参照关系2.2.2外码关系R1关系R2属性X属性Y…属性X属性Z…主键主码外码参照关系被参照关系5[例2]找出下列关系中的外码。学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)课程号课程名学分01数据库402数据结构403编译404PASCAL2学号姓名性别专业号年龄801张三女0119802李四男0120803王五男0120804赵六女0220805钱七男0219学号课程号成绩8010492801037880102858020382802049080304886[例3]找出下列关系中的外码。学生(学号,姓名,性别,专业号,年龄,班长)学号姓名性别专业号年龄班长801张三女0119802802李四男0120803王五男0120802804赵六女0220805805钱七男0219提示:(1)被参照关系的主码和参照关系的外码必须定义在同一个域上。(2)外码与相应的主码属性名可以相同,也可以不同。何时取同名好?72.2.3关系完整性完整性约束实体完整性参照完整性用户自定义完整性必须满足体现具体领域中的语义约束82.2.3关系完整性1.实体完整性(EntityIntegrity):是指主码的属性值不能取空或部分取空值。例1:学生关系(学号,姓名,性别,年龄,系别)则:主码和非属性分别是什么?。例2:关系选课(学号,课程号,成绩)中的主码和非属性分别是什么?92.2.3关系完整性2.参照完整性(ReferentialIntegrity):如果关系R2的外码X与关系R1的主码相对应,则X的取值必须是:•或者取空值(X的每个属性值均为空值);•或者等于R1中某个元组的主码值。例1:关系学生(学号,姓名,性别,年龄,系别)例2:关系选课(学号,课程号,成绩)102.2.3关系完整性3.用户定义的完整性:是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。例:关系课程(课程号,课程名,学分)中:课程号必须取唯一值;课程名不能取空值;学分只能取值{1,2,3,4}。111.一个关系只有一个()。A.候选码B.外码C.码D.主码2.关系模型中,一个码是()。A.可以由多个任意属性组成B.至多由一个属性组成C.由一个或多个属性组成,其值能够惟一标识关系中一个元组D.以上都不是练习12练习3.现有如下关系,其外键是()。患者(患者编号,患者姓名,性别,出生日期,所在单位)医疗(医生编号,医生姓名,性别,患者编号,诊断日期,诊断结果)A.患者关系中的患者编号B.患者关系中的患者姓名C.医疗关系中的患者编号D.患者关系中的患者编号和医疗关系中的患者编号134.有以下两个实体集:•部门DEPT(Deptno,Name,Tel,Leader)•职工EMP(Empno,Name,Sex,Address,Deptno)若一个职工只能属于一个部门,部门负责人Leader是一个职工。关系DEPT和EMP的外码分别为_____。练习DEPT关系中的LeaderEMP关系中的Deptno14练习6.若某个关系的主码为全码,则应包含。A.单个属性B.两个属性C.多个属性D.全部属性DA.DEPT、EmpnoB.DEPT、EMPC.Deptno、EMPnoD.EMP、DEPTn1abD_E5.基于上题描述,右图中a、b处的实体名分别为。B15练习7.现有如下关系,属于用户定义完整性的是()。医疗(医生编号,医生姓名,患者编号,性别,诊断日期,诊断结果)A.医生编号做主码B.医生编号不能为空C.患者编号要与患者关系中的患者编号对应D.性别只能取“男”或“女”D162.3关系代数2.3.1关系代数的分类及其运算符2.3.2传统的集合运算2.3.3专门的关系运算172.3.1关系代数的分类及其运算符关系代数是一种抽象的查询语言,用对关系的运算来表达查询。关系代数运算的三大要素:运算对象、运算符、运算结果。18常用的关系代数运算符有:类别运算符及含义类别运算符及含义集合运算符并∪、差–、交∩、笛卡尔积×比较运算符>、≥、<、≤、=、关系运算符选择σ投影π连接除÷逻辑运算符非¬与∧或∨2.3.1关系代数的分类及其运算符19基本操作:选择、投影、并、差、笛卡尔积关系代数的运算按运算符的不同主要分为两类:传统的集合运算•把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的行的角度进行的。•包括并、差、交和笛卡尔积等运算。专门的关系运算•不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。•包括选取、投影、连接和除法等运算。2.3.2传统的集合运算201.并设:R和S两个集合具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:R∪S仍为n目关系,由属于R或属于S的元组组成,即:R∪S={t|tR∨tS}2.3.2传统的集合运算21ABCR∪SABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RS1.并a2b2c1a1b2c2a1b2c2a2b2c1a1b1c1a1b2c2a2b2c12.3.2传统的集合运算a1b3c2222.差设:R和S两个集合具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:R-S仍为n目关系,由属于R而不属于S的所有元组组成,即:R-S={t|tR∧tS}2.3.2传统的集合运算23ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCR-S2.差a1b2c2a2b2c1a1b1c12.3.2传统的集合运算243.交设:R和S两个集合具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:R∩S仍为n目关系,由既属于R又属于S的元组组成即:R∩S={t|tR∧tS}2.3.2传统的集合运算25ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCR∩S如何将交运算换为其他运算?3.交等价于:R∩S=R–(R-S)a1b2c2a2b2c12.3.2传统的集合运算264.广义笛卡尔积:设:R集合n目关系,k1个元组S集合m目关系,k2个元组则:R×S列:(n+m)列的元组的集合»元组的前n列是关系R的一个元组»后m列是关系S的一个元组行:k1×k2个元组记作:R×S={trts|trR∧tsS}2.3.2传统的集合运算27ABCa1b1c1a1b2c2a2b2c1R.AR.BR.CABCa1b2c2a1b3c2a2b2c1RSR×SS.AS.BS.C4.广义笛卡尔积:a1b1c1a1b2c2a2b2c1a1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c12.3.2传统的集合运算282.4.3专门的关系运算选择投影连接除29几个常用记号(1):R设关系模式为R(A1,A2,…,An),它的一个关系为r.tR表示t是R的一个元组。t[Ai]t[Ai]则表示元组t中相应于属性Ai的一个分量2.4.2专门的关系运算30几个常用记号:A若A={Ai1,Ai2,…,Aik},Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或属性组t[A]t[A]=(t[Ai1],…,t[Aik])表示元组t在属性列A上诸分量的集合。A:A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。2.4.2专门的关系运算31几个常用记号:trts:R为n目关系,S为m目关系。trR,tsS,trts称为元组的连接。一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。2.4.2专门的关系运算32几个常用记号:象集(ImagesSet)Zx:给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集为:Zx={t[Z]|tR,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分量的集合。2.4.2专门的关系运算33(1)选择又称为限制(Restriction)在关系R中选择满足给定条件的各元组表示:σF(R)={t|tR∧F(t)='真'}其中:F:选择条件,是一个逻辑表达式,基本形式为:X1θY1θ:比较运算符X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替1.选择34(2)选择是从行的角度进行的运算σ(3)举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。1.选择351.选择SnoSNSexAgeDeptS1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化S表36C表课程号课程名先行课学时CnoCNCpnoCT1程序设计5602微机原理3803数字逻辑604数据结构1805数据库4606编译原理1607操作系统6501.选择37SC表学号课程号成绩SnoCnoScoreS1C190S1C285S2C557S2C680S3C1751.选择38T表1.选择TNoTNSexAgeProfSalCommDeptT1李力男47教授15003000计算机T2王平女28讲师8001200信息T3刘伟男30讲师9001200计算机T4张雪女51教授16003000自动化T5张兰女39副教授13002000信息39TC表1.选择TnoCnoT1C1T1C4T2C5T3C1T3C5T4C2T4C3T5C5T5C7[例1]查询信息系全体学生。SnoSNSexAgeDeptS2钱尔男18信息S3孙珊女20信息σDept=‘信息’(S)或σ5=‘信息'(S)SnoSNSexAgeDeptS1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化S[例2]查询年龄小于20岁的男生。σAge20∧Sex=‘男’(S)或σ420∧3=‘男’(S)SnoSNSexAgeDeptS2钱尔男18信息S5周武男19计算机SnoSNSexAgeDeptS1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化S422.投影(1)投影从R中选择出若干属性列组成新的关系πA(R)={t[A]|tR}A:R中的属性列表(2)投影操作主要是从列的角度进行运算π[例3]查询学生的姓名和所在系别。πSN,Dept(S)或π2,5(S)SnoSNSexAgeDeptS1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化SSNDept赵亦计算机钱尔信息孙珊信息李思自动化周武计算机吴丽自动化[例4]查询学生关系S中的所有系别。πDept(S)Dept计算机信息自动化说明:投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。SnoSNSexAgeDeptS1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化S[例5]查询计算机系的
本文标题:第02章 关系数据库(2)
链接地址:https://www.777doc.com/doc-5957225 .html