数据库原理及应用PPT课件(共9章)第二章关系数据库基础

举报
资源描述
数据库原理及应用第二章 关系数据库基础本章导读 关系数据库是支持关系模型的数据库系统,是目前最重要、应用最广泛的数据库。本章从关系模型、关系完整性约束与关系代数 3 个方面入手,讲解关系数据库的基础知识,包括关系模型的基本概念,关系的形式化定义及其性质,E-R图与关系模式之间的转换,关系模型的3个完整性约束,关系代数的集合运算及代数运算等内容。学习目标掌握关系模型的基本概念。理解关系的形式化定义及其性质。掌握E-R图与关系模式之间的转换方法。理解关系模型的实体完整性、参照完整性及用户定义完整性3种约束。掌握运用常用的关系运算解决实际问题的方法。目录2.1 关系模型2.2 关系模型的完整性约束2.3 关系代数2.4 实战训练关系代数运算的应用62.1 关系模型2.1.1 关系模型的基本概念关系01 关系模型只包含单一的数据结构关系。在关系模型中,无论是实体还是实体之间的联系均由关系表示。TNo(教师号)TN(姓名)Sex(性别)Prof(职称)Dept(系别)Sal(工资)01001赵乾女讲师计算机600001002钱坤男讲师自动化600001003孙震女副教授自动化700002011李离女教授通信800002013周巽男教授计算机8000表2-1 T(教师)通俗地讲,关系(Relation)就是由行和列组成的二维表,二维表的名字就是关系的名字。例如,表2-1中关系的名字就是T。72.1 关系模型2.1.1 关系模型的基本概念属性02 域(Domain)是一组具有相同数据类型的值的集合,又称值域(用D表示)。在关系中用域来表示属性的取值范围,域中所包含的值的个数称为域的基数(用m表示)。例如,表2-1中属性Sex的域可表示为:D=男,女,m=2。二维表中的列称为属性(Attribute)。每个属性对应表中的一个字段,属性名就是字段名,属性值就是各行的字段值。二维表中列的个数称为关系的元数。如果一个二维表有n列,则称其为n元关系。例如,表2-1中的关系T有TNo,TN,Sex,Prof,Dept,Sal共6个属性,是一个6元关系。域0382.1 关系模型2.1.1 关系模型的基本概念元组04 二维表中的行称为元组(Tuple),即记录值。例如,表2-1中(01001,赵乾,女,讲师,计算机,6000)就是一个元组。分量05 一个元组中的每一个属性值,称为一个分量(Component),n 元关系的每个元组有n个分量。例如,元组(01001,赵乾,女,讲师,计算机,6000)中的“01001”为一个分量,此元组共有6个分量。92.1 关系模型2.1.1 关系模型的基本概念关系模式06 二维表的结构称为关系模式(Relation Schema),或者说,关系模式就是二维表的框架(表头结构)。设关系名为R,其属性名分别为A1,A2,An,则关系模式可以表示为:关系数据库07 在一个给定的应用领域中,所有实体及实体之间联系所对应的关系的集合,构成一个关系数据库(Relation Database)。在关系数据库中,关系模式是型,关系是它的值。R(A1,A2,An)例如,表2-1的关系模式为T(TNo,TN,Sex,Prof,Dept,Sal)。102.1 关系模型2.1.2 关系的形式化定义 为了给出关系的形式化定义,首先定义笛卡尔积(Cartesian Product)。给定一组域 D1,D2,Dn(它们可以包含部分或全部相同的元素,也可以完全不同),则D1,D2,Dn 的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 由定义可以看出,笛卡尔积是一个集合,集合中每一个元素(d1,d2,dn)即为一个元组,元组中的每一个 di 即为一个分量。例如,设D1=赵乾,钱坤,孙震,李离,周巽,D2=男,女,则D1与D2的笛卡尔积为D1D2=(赵乾,男),(赵乾,女),(钱坤,男),(钱坤,女),(孙震,男),(孙震,女),(李离,男),(李离,女),(周巽,男),(周巽,女)。其中,(赵乾,男)为一个元组,“赵乾”“男”等都是分量。112.1 关系模型2.1.2 关系的形式化定义笛卡尔积也可以用二维表表示,本例的笛卡尔积可用如表2-2所示的二维表表示。D1D2赵乾男赵乾女钱坤男钱坤女孙震男孙震女李离男李离女周巽男周巽女表2-2 D1D2关系的形式化定义:D1D2Dn 的任一子集称为定义在 D1,D2,Dn 上的 n 元关系。例如,在上述例子的笛卡尔积中选取一个子集 T1=(赵乾,女),(钱坤,男),(孙震,女),(李离,女),(周巽,男)就构成了一个关系,将其用二维表表示时,可按实际属性的含义将第一列属性命名为 TN,将第二列属性命名为 Sex,如表2-3所示。TNSex赵乾女钱坤男孙震女李离女周巽男表2-3 子集T1122.1 关系模型2.1.2 关系的形式化定义 如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。由于计算机存储系统的限制,在实际应用中,一般不去处理无限关系,只考虑有限关系。在数学上,关系是笛卡尔积的任意子集,但在实际应用中,关系是笛卡尔积中有意义的子集。例如,在表2-2中选取一个子集(见表2-4),表中数据显然不符合实际情况,该子集是没有意义的,不能称为关系。TNSex赵乾女赵乾男表2-4 不符合实际意义的关系关系的形式化定义的两点说明132.1 关系模型2.1.3 关系的性质列是同质的,即每一列中的分量必须来自同一个域且必须是同一类型的数据。01不同的属性可来自同一个域,但不同的属性有不同的名字。02列的顺序可以任意交换,但交换时应连同属性名一起交换,否则将得到不同的关系。03 关系可以看成是二维表,但并不是所有的二维表都是关系。在关系模型中,对关系做了一定的限制。总的来说,关系具有如下性质。142.1 关系模型2.1.3 关系的性质元组的顺序可任意交换。在关系数据库中,可以按照各种排序要求对元组的次序重新排列。04关系中不允许出现相同的元组。关系中的一个元组表示现实世界中的一个实体或一个实体间的联系,如果元组重复则表示实体或实体间的联系重复,这样不仅会造成数据库中数据的冗余,也可能造成数据查询与统计的结果出现错误。05关系中的每一个分量必须是不可再分的数据项,即所有属性值都是一个单独的值,而不是值的集合。06152.1 关系模型2.1.3 关系的性质 例如,T3(见表2-6)就不满足所有属性值都是一个单独的值,因为在这个表中,属性 Sal 不是不可再分的数据项,它由属性 Basic 与 Bonus 组合而成。TNoTNSexProfSalBasicBonus01001赵乾女讲师600050001002钱坤男讲师6000100001003孙震女副教授7000120002011李离女教授800080002013周巽男教授80002000表2-6 T3162.1 关系模型2.1.4 E-R图与关系模式之间的转换E-R 图与关系模式之间的转换一般是将绘制好的 E-R 图转换成可用的关系模式,是概念模型向逻辑模型的转换。转换过程主要包括实体及实体之间联系的转换。实体的转换非常简单,实体名即关系名,实体的属性即关系的属性。一对多联系多对多联系一对一联系实体之间联系的转换172.1 关系模型2.1.4 E-R图与关系模式之间的转换 (1)一对一联系。转换时选择一个合适的实体,在其中加入另一实体的码。【例2-1】学生与身份证的 E-R 图如图所示。每个学生只有一张身份证,每张身份证只属于一个学生,学生与身份证之间为一对一联系。则转换关系模式如下:学生(学号,姓名,性别,系别,身份证号)身份证(身份证号,签发机关,有效时间)一般情况下,也可将两个实体合并,即得到一个关系模式:学生(学号,姓名,性别,系别,身份证号,签发机关,有效时间)。182.1 关系模型2.1.4 E-R图与关系模式之间的转换 (2)一对多联系。转换时在“多”的那端实体中加入“一”的那端实体的码。【例2-2】班级与学生的 E-R 图如图所示。一个班级包含一名或多名学生,同时,一名学生只属于一个班级,即班级与学生之间为一对多联系。则转换关系模式如下:学生(学号,姓名,性别,系别,班级编号)身份证(班级编号,学院,系别,人数)192.1 关系模型2.1.4 E-R图与关系模式之间的转换 (3)多对多联系。转换时将联系也转换为关系模式,其属性为两端实体的码加上联系自身的属性,新的关系模式的码为两端实体的码的组合。【例2-3】图为学生选课关系的 E-R 图。一名学生可以选修多门课程,一门课程可以被多名学生选修,学生与课程之间是多对多联系。则转换关系模式如下:学生(学号,姓名,性别,系别)课程(课程编号,课程名称,学分)学生选课(学号,课程编号,成绩)202.2 关系模型的完整性约束为了维护关系数据库中数据与现实世界的一致性,关系数据库中数据的插入、删除和修改操作必须遵守一定的约束条件,即关系模型的完整性约束。关系模型中有 3 类完整性约束,即实体完整性、参照完整性与用户定义完整性。实体完整性和参照完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,任何关系数据库系统都支持这两类完整性约束。不同的关系数据库系统由于应用环境的不同,往往还需要用户自己定义一些特殊的约束条件,即用户定义完整性。212.2 关系模型的完整性约束2.2.1 关系的码候选码01 如果一个关系中的某属性或属性集的值可以唯一确定一个元组,则称该属性或属性集为候选码。候选码具有唯一性、最小性的特点。例如,在学生关系中,学号能够唯一标识每一个学生,则属性“学号”是学生关系的候选码,每一个学生的学号是唯一的,这体现了候选码的唯一性;在选课关系中,只有属性集(学号,课程编号)才能唯一标识每一条选课信息,则属性集(学号,课程编号)为选课关系的候选码,从中去掉任一属性都无法唯一标识每一条选课记录,这体现了候选码的最小性。222.2 关系模型的完整性约束2.2.1 关系的码主码02 如果一个关系中有多个候选码,可以从中选定一个作为元组标识,称为主码或主键。例如,在没有重名学生的情况下,学生关系中的属性“学号”与“姓名”都是学生关系的候选码。如果选定属性“学号”作为数据操作的依据,则属性“学号”为主码;如果选定属性“姓名”作为数据操作的依据,则属性“姓名”为主码。232.2 关系模型的完整性约束2.2.1 关系的码主属性与非主属性03 包含在任一候选码中的属性称为主属性,不包含在任一候选码中的属性称为非主属性。例如,在没有重名学生的情况下,学生关系的属性“学号”与“姓名”都是学生关系的候选码,则它们都是学生关系的主属性。而属性“性别”与“系别”不包含在任一候选码中,则它们都是学生关系的非主属性。在最简单的情况下,关系的候选码只包含一个属性;在最极端的情况下,关系的候选码是所有属性的组合,这时称为全码。例如,设有关系演出(演奏者编号,乐器编号,演播室编号),其中的3个属性分别为演奏者关系、乐器关系及演播室关系的主码,它们共同唯一标识了一个演出,则演出关系的主码为它们的组合,即为全码。242.2 关系模型的完整性约束2.2.1 关系的码外码04 如果一个关系 R1中的主码所对应的属性或属性集 X 还存在于另一个关系 R2中,则称这个属性或属性集 X 为 R2 的外码,也称外键。252.2.2 实体完整性2.2 关系模型的完整性约束 实体完整性是指每个关系都必须具有主码,且主码对应的所有属性值均不可为空。例如,关系选课(学号,课程编号,成绩)中,主码为(学号,课程编号),则“学号”与“课程编号”两个属性值都不能为空。空(NULL)值指“不知道”或“不存在”的值。262.2.3 参照完整性2.2 关系模型的完整性约束 参照完整性是指如果关系 R2的外码 X 与关系 R1的主码相对应,则 X 的每个值或等于 R1的主码的某一个值或取空值。【例2-4】已知学生、课程与选课的关系如下:学生(学号,姓名,性别,系别,年龄)课程(课程编号,课程名
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 高等教育 > 大学课件


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号