关系数据库设计与应用(工作手册式) 课件 第3章 关系模型_第1页
关系数据库设计与应用(工作手册式) 课件 第3章 关系模型_第2页
关系数据库设计与应用(工作手册式) 课件 第3章 关系模型_第3页
关系数据库设计与应用(工作手册式) 课件 第3章 关系模型_第4页
关系数据库设计与应用(工作手册式) 课件 第3章 关系模型_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章

关系模型工业和信息化部“十四五”规划教材

浙江省高职院校“十四五”首批重点教材《关系数据库设计与应用》(工作手册式)

配套课件学习目标LEARNINGTARGET掌握关系模型的基本结构及术语;掌握关系模型的数据操作;理解关系模型的完整性约束;掌握E-R模型转换成关系模型的方法。知识目标能力目标会进行关系的基本运算;能将E-R模型转换成关系模型。思政目标培养学生严谨、认真的学习态度;培养规则意识和数据共享意识。主要内容MAINCONTENTS3.1关系模型基本结构及术语3.2关系模型的数据操作3.3关系的完整性约束*3.4E-R模型转换为关系模型3.5关系模型的特点认识关系模型现实世界信息世界(概念模型)计算机世界(数据模型)关系数据库是目前各类数据库中最重要、最流行的数据库。关系数据模型(或称关系模型)属于逻辑数据模型,是对现实世界的第二层抽象。还有层次模型、网状模型等,但关系模型是目前最重要的一种数据模型。信息世界:用概念模型(E-R模型)表示对现实世界的抽象与模拟。计算机世界:用DBMS(数据库管理系统)支持的数据模型表现。认识关系模型关系模型的重要性关系数据库采用关系模型作为数据的组织方式。关系数据库是支持关系模型的数据库系统。关系模型就是用二维表格结构来表示实体及实体之间联系的数据模型。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。关系模型基本结构及术语3.1关系模型基本结构及术语

关系模型:关系模型的结构非常简单,在关系模型中,现实世界中的实体以及实体之间的联系都通过关系来表达。在用户观点下,关系数据模型中的逻辑结构是一张二维表,它由行(也称记录)和列(也称属性)组成。关系模型基本结构及术语学号姓名性别班级年龄2021210021江星男大数据2101192021210022赵盼男大数据2101202021210023刘鹏男大数据2101202021210024李鑫女大数据210119学生表属性名数据属性记录关系模型基本结构及术语关系模型的基本术语:1.关系2.元组3.属性4.主码5.主属性与非主属性6.域7.分量8.关系模式9.元数关系模型基本结构及术语1.关系在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。通俗地说,一个关系对应一张表。每个关系都有一个关系名。但关系与传统的二维表又有区别:关系表中的每一列都是不可再分的基本属性;表中各属性不能重名;表中的行列次序并不重要,即可以交换行、列的前后顺序。关系模型基本结构及术语关系例子1学生关系名/表名关系学号姓名性别班级年龄2021210021江星男大数据2101192021210022赵盼男大数据2101202021210023刘鹏男大数据2101202021210024李鑫女大数据210119关系模型基本结构及术语关系例子2姓名性别工资基本工资职务工资张芳女2000.0800.0王刚男1600.0500.0余梅女1200.0300.0姓名性别基本工资职务工资

张芳女2000.0800.0王刚男1600.0500.0余梅女1200.0300.0×√关系模型基本结构及术语关系例子3×学号姓名性别年龄姓名0101张伟男20张三0102李丽女18李四0103王明男19王五0104赵娟女20赵六关系模型基本结构及术语关系例子4学号姓名性别年龄曾用名0101张伟男20张三0102李丽女18李四0103王明男19王五0104赵娟女20赵六学号姓名曾用名年龄性别0101张伟张三20男0102李丽李四18女0103王明王五19男0104赵娟赵六20女关系模型基本结构及术语2.元组表中的一行即为一个元组,相当于一个记录值。3.属性表中的一列即为一个属性,列名即为属性名。4.主码主码(也称主键或主关键字),是表中的属性或属性组,用于唯一确定一个元组。2021210021江星男大数据210119学号2021210021202121002220212100232021210024学号姓名性别班级年龄关系模型基本结构及术语5.主属性与非主属性包含在主码中的属性称主属性,不包含在主码中的属性称非主属性。6.域属性的取值范围称为域。如:“性别”属性的域是(F、M)。7.分量元组中的一个属性值。学号姓名性别班级年龄2021210021江星男大数据210119思考题:这一个元组中有几个分量?关系模型基本结构及术语8.关系模式关系的描述称为关系模式,通常情况下,简记为R(U),其中R为关系名,U为R中属性名的集合,表示为:关系名(属性1,属性2,…,属性n)通篇用到的例子:学生(学号,姓名,年龄,性别,班级)课程(课程号,课程名,教师,周课时数,备注)选课(学号,课程号,成绩)9.元数(K≥1)在关系模式中,属性的个数。思考题:学生关系中有几个元数?关系模型基本结构及术语关系模型的认识从集合论的观点关系是一个元数为K(K≥1)的元组的集合。以下认识:关系是元组的集合。关系模式是命名的属性集合。元组是属性值的集合。关系中的每一个属性值都是不可分解的。关系中不允许出现相同的元组。小结学号姓名性别班级年龄2021210021江星男大数据2101192021210022赵盼男大数据2101202021210023刘鹏男大数据2101202021210024李鑫女大数据210119学生关系名/表名关系主码D1D2D5D3D4域关系模式行属性列元组主属性本关系模式如何表示?元数是多少?5课堂练习1请分析下表:关系是指?关系名是?元组有几个?属性有哪些?元数是多少?选课表学号课程号成绩2021210021474202121002218520212100231932021210024291请写出上表对应的关系模式。动一动课堂练习11.参考答案:关系是指“选课表”这张表;关系名是“选课”;元组有“4个”,即表中4行就是4个元组;属性是“学号、课程号、成绩“;元数是“3”。2.上表对应的关系模式:选课(学号,课程号,成绩)。关系模型的数据操作3.2关系模型的数据操作关系模型的操作对象是集合。即操作的数据及操作的结果都是完整的表。关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。其中查询操作的表达能力是最重要的。(包括并、交、差、选择、投影、连接等。)关系操作增、删、改、查关系模型的数据操作在关系代数中,变量是关系,运算符操纵关系的结果是形成新的关系。即关系代数是封闭的,一个或多个关系操作的结果仍然是一个关系。关系代数关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符(P49)。关系模型的数据操作关系代数关系代数运算符运算符含义集合运算符∪-∩并差交专门的关系运算符×÷σ∏⋈广义笛卡尔积除选择投影连接关系模型的数据操作并运算差运算交运算笛卡尔乘积投影选择连接关系代数关系模型的数据操作关系代数1.并运算两个集合R、S的“并”操作,如图:即求:所有至少出现在两个关系之一中的元组集合。前提:每个关系必须要有相同数目的属性,而且在对应列中的属性必须是相同的域。两个关系的“并”是指将一个关系的元组加到第二个关系中,生成新的关系,新关系的属性列数没有发生变化。关系模型的数据操作RelationsR,S:AB

121RAB

23SAB

12123AB

1213=R∪S:1.并运算关系代数关系模型的数据操作学号姓名性别班级年龄2021210001张燕女大数据2102192021210002陈芳女大数据2102192021210023刘鹏男大数据210120学号姓名性别班级年龄2021210021江星男大数据2101192021210022赵盼男大数据2101202021210023刘鹏男大数据2101202021210024李鑫女大数据210119RS学号姓名性别班级年龄2021210001张燕女大数据2102192021210002陈芳女大数据2102192021210021江星男大数据2101192021210022赵盼男大数据2101202021210023刘鹏男大数据2101202021210024李鑫女大数据210119R∪S1.并运算关系代数关系模型的数据操作2.差运算两个集合的“差”操作,如图:即求:所有出现在一个关系而不在另一关系中的元组集合。两个集合的“差”操作(R-S)生成一个新的结果集,在结果集中包括所有在集合R中出现而在S中不出现的元数。关系代数关系模型的数据操作2.差运算RelationsR,S:AB

121RAB

23SR-S:AB

11=关系代数关系模型的数据操作学号姓名性别班级年龄2021210001张燕女大数据2102192021210002陈芳女大数据2102192021210023刘鹏男大数据210120学号姓名性别班级年龄2021210021江星男大数据2101192021210022赵盼男大数据2101202021210023刘鹏男大数据2101202021210024李鑫女大数据210119RS学号姓名性别年龄籍贯200101张燕女21福建200102陈芳女21江苏R-S2.差运算S-R?注意:减法的顺序不同,最后得出的值也不同。学号姓名性别年龄籍贯100101江星男21内蒙古100102赵盼男21河南100104李鑫女21江西关系代数关系模型的数据操作3.交运算两个集合的“交”操作,如图:即求:所有同时出现在两个关系中的元组集合。两个集合的“交”操作生成一个新的结果集,在结果集中包括所有在集合R中出现并且在S中也出现的元数。关系代数关系模型的数据操作3.交运算RelationsR,S:AB

121RAB

23SR∩S:AB2=关系代数关系模型的数据操作学号姓名性别班级年龄2021210001张燕女大数据2102192021210002陈芳女大数据2102192021210023刘鹏男大数据210120学号姓名性别班级年龄2021210021江星男大数据2101192021210022赵盼男大数据2101202021210023刘鹏男大数据2101202021210024李鑫女大数据210119RS学号姓名性别班级年龄2021210023刘鹏男大数据210120R∩S3.交运算关系代数关系模型的数据操作课堂练习RS求:R∪S、R∩S、R-S学号课程号202121002122021210022420212100231学号课程号202121002122021210024320212100253关系代数动一动关系模型的数据操作4.笛卡尔积两个关系的积(也称笛卡尔乘积)是指第一个关系中的每个元组和第二个关系的每个元组的联接。关系A(含有X个属性列,M个元组)和关系B(含有Y个属性列,N个元组)的“积”是一个有X+Y属性列,有M×N个元组的关系。“积”记为:A×B或B×A。关系代数关系模型的数据操作4.笛卡尔积ABCA1B1C1A2B2C2A3B3C3R1DED1E1D2E2R2A1B1C1D1E1A3B3C3D2E2A1B1C1D2E2A3B3C3D1E1A2B2C2D2E2A2B2C2D1E1ABCDER1×R2:

属性列:3+2=5,元组=3×2=6关系代数关系模型的数据操作课程号课程名教师周课时数备注1关系数据库应用吴老师32Python语言基础黄老师33大数据分析技术黄老师44数据采集与预处理涂老师4RS4.笛卡尔积学号课程号成绩2021210021474202121002218520212100231932021210024291属性列:5+3=8,元组=4×4=16关系代数关系模型的数据操作R×S:4.笛卡尔积课程号课程名教师周课时数备注学号课程号成绩1关系数据库应用吴老师420111284741关系数据库应用吴老师420111291931关系数据库应用吴老师420111301741关系数据库应用吴老师420111312842Python语言基础黄老师420111284742Python语言基础黄老师420111291932Python语言基础黄老师420111301742Python语言基础黄老师420111312843大数据分析技术黄老师220111284743大数据分析技术黄老师220111291933大数据分析技术黄老师220111301743大数据分析技术黄老师220111312844数据采集与预处理涂老师620111284744数据采集与预处理涂老师620111291934数据采集与预处理涂老师620111301744数据采集与预处理涂老师62011131284关系代数关系模型的数据操作5.投影投影是从一个关系中选择指定的属性的操作。投影的结果是一个带有所选属性的新的关系。关系R上的投影是从R中选择出若干属性列组成新的关系。记作:∏A(R),其中A为R的属性列。A1A2A3A4A2A4∏关系代数关系模型的数据操作5.投影ABC

102030401112AC

1112=AC

112RelationR:

A,C

(R)关系代数关系模型的数据操作5.投影课程号课程名教师周课时数备注1关系数据库应用吴老师32Python语言基础黄老师33大数据分析技术黄老师44数据采集与预处理涂老师4课程表例1:查询课程表中课程号、课程名及相应的任课教师信息。

∏课程号,课程名,教师(课程表)课程号课程名教师1关系数据库应用吴老师2Python语言基础黄老师3大数据分析技术黄老师4数据采集与预处理涂老师例2:查询课程表中任课教师信息。教师吴老师黄老师涂老师

∏教师(课程表)

注意:投影是取列,其结果是一个关系,不包含任何重复的元组。关系代数关系模型的数据操作6.选择投影操作取得是在垂直方向上关系的子集(列),选择操作取得是水平方向上的关系子集(行)。投影标识的是新关系中所包括的属性,选择标识的是在新关系上所包括的元组。在关系R中选择满足给定条件的诸元组,可以表示为:

σ

F(R)。A1A2A3A4σA1A2A3A4关系代数关系模型的数据操作6.选择RelationR:ABCD

A=B

(R)ABCD

112237310关系代数关系模型的数据操作6.选择RelationR:ABCD

A=B^D>5

(R)ABCD

123710关系代数关系模型的数据操作课程号课程名教师周课时数备注1关系数据库应用吴老师32Python语言基础黄老师33大数据分析技术黄老师44数据采集与预处理涂老师4课程表6.选择例如:查询周课时数为4的课程信息。

周课时数=4(课程表)或

4=4(课程表)课程号课程名教师周课时数备注3大数据分析技术黄老师44数据采集与预处理涂老师4关系代数其中下角标4为“周课时数”的属性列号关系模型的数据操作课程表6.选择例如:查询课程号大于3的课程信息。

课程号>3(课程表)或

1>3(课程表)关系代数课程号课程名教师周课时数备注1关系数据库应用吴老师32Python语言基础黄老师33大数据分析技术黄老师44数据采集与预处理涂老师4课程号课程名教师周课时数备注4数据采集与预处理涂老师4关系模型的数据操作6.选择关系运算的组合关系运算的对象和结果都是关系,我们可以把多个关系运算组合称一个关系代数表达式。如:学生表(学号,姓名,年龄,性别,班级)例:找出所有年龄大于20岁的学生姓名:

∏姓名()

年龄>20(学生表)关系代数关系模型的数据操作6.选择关系运算的组合例:查询出名叫张三的学生的性别和年龄。学生表(学号,姓名,年龄,性别,班级)∏性别,年龄()

姓名='张三'

(学生表)关系代数关系模型的数据操作6.选择关系运算的组合例:查询出名叫张三和张六的学生的性别和年龄。学生表(学号,姓名,年龄,性别,班级)∏性别,年龄()

姓名='张三'∨姓名=‘张六’(学生表)∏性别,年龄(

姓名='张三'(学生表)∪

姓名='张六'(学生表))关系代数关系模型的数据操作6.选择关系运算的组合关系运算的对象和结果都是关系,我们可以把多个关系运算组合称一个关系代数表达式。如:学生表(学号,姓名,年龄,性别,班级)例1:找出所有年龄大于20岁的学生姓名。

∏姓名()

年龄>20(学生表)关系代数关系模型的数据操作6.选择关系运算的组合例2:查询出名叫张三的学生的性别和年龄。学生表(学号,姓名,年龄,性别,班级)∏性别,年龄()

姓名='张三'

(学生表)关系代数关系模型的数据操作6.选择关系运算的组合例3:查询出名叫张三或张六的学生的性别和年龄。学生表(学号,姓名,年龄,性别,班级)∏性别,年龄()

姓名='张三'∨姓名=‘张六’(学生表)∏性别,年龄(

姓名='张三'(学生表)∪

姓名='张六'(学生表))关系代数关系模型的数据操作课堂练习2设有学生表、选课表两个关系模式,如下所示:学生表(学号,姓名,年龄,性别,班级)选课表(学号,课程号,成绩)请用关系代数完成如下运算:①查询每个学生的学号、姓名和班级②查询有成绩不及格的课程的课程号③查询成绩大于90分的学生的学号和课程号④查询姓名为“张三”且年龄大于18的学生的性别和班级关系代数动一动关系模型的数据操作课堂练习2答案关系代数①查询每个学生的学号、姓名和班级

∏学号,姓名,班级(学生表)②查询有成绩不及格的课程的课程号

∏课程号(

成绩<60(选课表))③查询成绩大于90分的学生的学号和课程号

∏学号,课程号(

成绩>90(选课表))④查询姓名为“张三”、年龄大于18的学生的性别和班级

∏性别,班级(

姓名=‘张三’^年龄>18(学生表))关系模型的数据操作6.选择思考:例:找出所有选择了“软件工程”课程的学生的学号。学生(学号,姓名,年龄,性别,班级)课程(课程号,课程名,教师,周课时数,备注)选课(学号,课程号,成绩)∏学号(

课程名=‘软件工程’(课程表))关系代数关系模型的数据操作7.连接指从两个关系R,S的广义笛卡尔积中选取属性间满足一定条件的元组,

记为:其中A和B分别为R和S上度数相等且可比的属性组,θ为比较运算符。R⋈SAθB连接运算中有两种常用的连接:一种是等值连接,另一种是自然连接。等值连接是从关系R和S的广义笛卡尔积中选取A和B属性相等的元;自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。关系代数关系模型的数据操作7.连接学号姓名年龄所在系98001王平20计算机98002李丽21数学98003陈红20计算机学号课程号成绩98001C19598001C38098003C18598003C275学生.学号姓名年龄所在系选课.学号课程号成绩98001王平20计算机98001C19598001王平20计算机98001C38098001王平20计算机98003C18598001王平20计算机98003C27598002李丽21数学98001C19598002李丽21数学98001C38098002李丽21数学98003C19598002李丽21数学98003C27598003陈红20计算机98001C19598003陈红20计算机98001C38098003陈红20计算机98003C18598003陈红20计算机98003C275学生选课学生╳选课步骤一:两个关系R,S的广义笛卡尔积关系代数关系模型的数据操作7.连接学号姓名年龄所在系98001王平20计算机98002李丽21数学98003陈红20计算机学号课程号成绩98001C19598001C38098003C18598003C275学生选课学生⋈

选课学生.学号=选课.学号等值连接学生.学号姓名年龄所在系选课.学号课程号成绩98001王平20计算机98001C19598001王平20计算机98001C38098003陈红20计算机98003C18598003陈红20计算机98003C275步骤二:可选择的去除一些元组选取A和B属性相等的元关系代数关系模型的数据操作7.连接学号姓名年龄所在系98001王平20计算机98002李丽21数学98003陈红20计算机学号课程号成绩98001C19598001C38098003C18598003C275学生.学号姓名年龄所在系选课.学号课程号成绩98001王平20计算机98001C19598001王平20计算机98001C38098001王平20计算机98003C18598001王平20计算机98003C27598002李丽21数学98001C19598002李丽21数学98001C38098002李丽21数学98003C19598002李丽21数学98003C27598003陈红20计算机98001C19598003陈红20计算机98001C38098003陈红20计算机98003C18598003陈红20计算机98003C275学生选课学生╳选课步骤一:两个关系R,S的广义笛卡尔积关系代数关系模型的数据操作7.连接学号姓名年龄所在系98001王平20计算机98002李丽21数学98003陈红20计算机学号课程号成绩98001C19598001C38098003C18598003C275学生选课学生

⋈选课自然连接学号姓名年龄所在系课程号成绩98001王平20计算机C19598001王平20计算机C38098003陈红20计算机C18598003陈红20计算机C275步骤三:通过投影的方式移走一些属性两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉关系代数关系模型的数据操作7.连接学号姓名年龄所在系98001王平20计算机98002李丽21数学98003陈红20计算机学号课程号成绩98001C19598001C38098003C18598003C275学生选课学生

⋈选课学生.学号=选课.学号等值连接学生.学号姓名年龄所在系选课.学号课程号成绩98001王平20计算机98001C19598001王平20计算机98001C38098003陈红20计算机98003C18598003陈红20计算机98003C275步骤二:可选择的去除一些元组选取A和B属性相等的元关系代数关系模型的数据操作7.连接连接操作是积、选择和可能包括的投影操作的组合。两个关系的连接操作定义(步骤)如下:首先,形成R×S的乘积;然后,进行选择去除某些元组(选择的标准是连接时要指定的一部分);最后(可选择地),通过投影的方式移走一些属性。关系代数关系模型的数据操作7.连接例:找出所有选择了“软件工程”课程的学生的学号。学生(学号,姓名,年龄,性别,班级)课程(课程号,课程名,教师,周课时数,备注)选课(学号,课程号,成绩)∏学号(

)

课程名=‘软件工程’()

课程⋈选课课程表条件选课表属性关系代数关系模型的数据操作7.连接连接条件上的限制不管是哪种条件的连接,连接条件中的属性必须来自同一个域。如课程表中的“课程号”与选课表中的“成绩”连接是非法的。关系代数关系模型的数据操作

思路:在所有的课程号范围内除去有同学不及格的课程号

∏课程号(课程表)∏课程号(

成绩>=60(选课表))

×分析∏课程号(

成绩<60(选课表))

-例:查询出所有学生都及格的课程的课程号。√关系模型的数据操作课堂练习3:用关系代数表示检索的例子学生选课库的关系模式为:学生(学号,姓名,性别,年龄,班级)课程(课程号,课程名,教师,周课时数,备注)选课(学号,课程号,成绩)

1、求选修了课程号为“C2”课程的学生学号2、求年龄大于20的所有女学生的学号、姓名3、求选了课的学生的学号和姓名4、求没有选课的学生的学号和姓名5、求没有选修课程号为“C1”的课程的学生学号6、选修“C2”课程或选修“C3”课程的学生学号关系的完整性约束3.3关系约束的完整性现实世界的三个问题如何保证一个数据(实体)是可识别的?如何由一个数据找到另一个数据?如何保证一个数据的取值合理?在关系模型中是通过关系的完整性约束来解决的。关系模型的完整性规则是对关系的某种约束条件。关系约束的完整性关系模型中可以有三类完整性约束实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,应该由关系系统自动支持。关系约束的完整性实体完整性(EntityIntegrity)规则若属性A是基本关系R的主属性,则属性A不能取空值。①实体完整性例:课程表(课程号,课程名,教师,周课时数,备注)“课程号”不能取相同的值,也不能取空值。选课表(学号,课程号,成绩)“学号”和“课程号”的均不能取空值,且它们的组合不能取相同的值。关系约束的完整性如何保证一个实体可以识别职工号姓名性别部门号工资佣金10001张三男10110001500李四男10280050010003小花女105100080010001小明女107180020001000410002实体完整性保证一个表中的每一行必须是唯一的(元组的唯一性)。为保证实体完整性,要求关系数据库中所有的表都必须有主码,而且表中不允许存在无主码值的记录和主码值相同的记录。①实体完整性关系约束的完整性对于实体完整性规则说明如下:实体完整性规则是针对基本关系而言的。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值。①实体完整性关系约束的完整性关系间的引用例1:职工实体集和部门实体集之间的关系引用:

职工(职工号,姓名,性别,部门号,工资,佣金)

部门(部门号,名称,地点)即“职工”关系引用了“部门”关系的主码“部门号”。②参照完整性部门号名称地点101财务科A1-211102计算机系2-304105人事科A1-312106工商系2-301107教务科A1-201关系约束的完整性数据之间的参照关系职工表部门表职工号姓名性别部门号工资佣金10001张三男1011000150010002李四男10280050010003小花女105100080010009小明女10718002000108108②参照完整性关系约束的完整性关系间的引用思考:请分析选课系统内的关系引用:

课程表(课程号,课程名,教师,周课时数,备注)

学生表(学号,姓名,年龄,性别,班级)

选课表(学号,课程号,成绩)即“选课表”关系引用了“学生表”关系的主码“学号”和“课程表”关系的主码“课程号”。问一问②参照完整性关系约束的完整性关系间的引用思考:请分析职工关系中的关系引用。职工(职工号,姓名,性别,部门号,上司职工号,工资,佣金)问一问经验1:不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系。

②参照完整性关系约束的完整性外码(难点)设F是基本关系R的一个或一组属性,但不是关系R的主码,如果F与基本关系S的主码相对应,则称F是基本关系R的外码(Forieignkey),并称基本关系R为参照关系,基本关系S为被参照关系。例1职工(职工号,姓名,性别,部门号,工资,佣金)部门(部门号,名称,地点)关系R关系S外码参照关系被参照关系②参照完整性关系约束的完整性外码思考:请分析下列关系模式中的外码、参照关系和被参照关系。课程表(课程号,课程名,教师,周课时数,备注)学生表(学号,姓名,年龄,性别,班级)选课表(学号,课程号,成绩)参照关系被参照关系被参照关系外码外码思考:“学号”属性能否作为外码?问一问②参照完整性关系约束的完整性外码思考:请分析“职工”关系中的外码、参照关系和被参照关系。职工(职工号,姓名,性别,部门号,上司职工号,工资,佣金)参照关系被参照关系外码经验2:关系R和S不一定是不同的关系。经验3:外码并不一定要与相应的主码同名。问一问②参照完整性关系约束的完整性参照完整性规则关系R中每个元组在外码F上的值必须为:或者取空值(F中的每个属性值均为空值);或者等于被参照关系S中某个元组的主码值。②参照完整性关系约束的完整性职工关系中的每行的部门号属性只能取下面两类值:第一类:空值,表示尚未给该职工分配部门;第二类:非空值,但该值必须是部门关系中某个元组的部门号值,表示该职工不可能分配到一个不存在的部门中。思考:请分析职工关系是否存在其它外码?试分析此外码的取值限制。问一问②参照完整性关系约束的完整性定义参照完整性的注意点:外键和相应的主键可以不同名,只要定义在相同值域上即可;R和S也可以是同一个关系模式。②参照完整性关系约束的完整性用户定义的完整性是针对某些具体关系数据库的约束条件。例如,某个属性必须取唯一值、某个属性不能取空值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在1~12之间等。③用户定义完整性例:选课表(课程号,学号,成绩),在定义关系选课表时,我们可以对成绩这个属性定义必须大于等于0的约束。将E-R模型转换为关系模型3.4将E-R模型转换为关系模型E-R模型向关系模型的转换要解决的问题是:如何将实体和实体间的联系转换为关系模式。如何确定这些关系模式的属性和码。将E-R模型转换为关系模型1.转换原则1将E-R图中每个实体集转化为一个关系模式。①实体集中实体的属性转化为该关系模式的属性;②实体的码(实体键)转化为该关系模式的码;③每一个实体转化为该关系模式对应关系的一个元组。将E-R模型转换为关系模型2.转换原则2E-R图中的联系,根据联系方式的不同,采取不同的方法。一个1:1联系,任靠一边。一个1:N联系,靠多。一个M:N联系,独立转换。3.转换原则3:确定参照完整性将E-R模型转换为关系模型2.转换实例1:1联系的转换1任职系主任姓名职称职工号系系编号地址1系名将E-R模型转换为关系模型2.转换实例1:1联系的转换第一步:根据原则1,每个实体集转换为一个关系模式,实体的属性转换为关系模式的属性,实体的码转换为关系模式的码。系主任(职工号,姓名,职称)系(系编号,系名,地址)1任职系主任姓名职称职工号系系编号地址1系名第二步:根据原则2,对于1:1联系可以靠一边,现把“任职”联系并入“系”实体集对应的关系:系(系编号,系名,地址,职工号)

将E-R模型转换为关系模型2.转换实例1:1联系的转换1任职系主任姓名职称职工号系系编号地址1系名第三步:根据原则3,定义参照完整性:系主任(职工号,姓名,职称)系(系编号,系名,地址,职工号)其中,“系”关系中的“职工号”为外码,它参照“系主任”关系中的“职工号”。

将E-R模型转换为关系模型1:1联系的转换1任职系主任姓名职称职工号系系编号地址1系名练一练系主任(职工号,姓名,职称,系编号)系(系编号,系名,地址)其中,“系主任”关系中的“系编号”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论