《数据库系统原理与设计(第2版) 万常选版 第2章 关系模型与关系代数课后答案(完整资料).doc.pdf》由会员分享,可在线阅读,更多相关《数据库系统原理与设计(第2版) 万常选版 第2章 关系模型与关系代数课后答案(完整资料).doc.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【最新整理,下载后即可编辑】3.3.简述如下概念,并说明它们之间的联系与区别简述如下概念,并说明它们之间的联系与区别:。(1 1)域,笛卡尔积,关系,元组,属性)域,笛卡尔积,关系,元组,属性答:答:域:域是一组具有相同数据类型的值的集合。笛卡尔积:给定一组域 D1,D2,Dn,这些域中可以有相同的。这组域的笛卡尔积为:D1D2Dn(d1,d2,dn)di?Di,i1,2,n 其中每一个元素(d1,d2,dn)叫作一个 n 元组(n-tuple)或简称元组(Tuple)。元素中的每一个值 di 叫作一个分量(Component)。关系:在域 D1,D2,Dn 上笛卡尔积 D1D2Dn 的子集称
2、为关系,表示为R(D1,D2,Dn)元组:关系中的每个元素是关系中的元组。属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。(2 2)超码,主码,候选码,外码)超码,主码,候选码,外码答:答:超码:对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码(superkey)。候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。主码:若一个关系有多个候选码,则选定其中一个为主码(Prim
3、ary key)。外码:设 F 是基本关系 R 的一个或一组属性,但不是关系 R的码,如果 F 与基本关系 S 的主码 Ks 相对应,则称 F 是基本关系 R 的外码(Foreign key),简称外码。基本关系 R 称为参照关系(Referencing relation),基本关系 S称为被参照关系(Referenced relation)或目标关系(Targetrelation)。关系 R 和 S 可以是相同的关系。(3)(3)关系模式,关系,关系数据库关系模式,关系,关系数据库【最新整理,下载后即可编辑】答:答:关系模式:关系的描述称为关系模式(Relation Schema)。它可以形
4、式化地表示为:R(U,D,dom,F)其中 R 为关系名,U 为组成该关系的属性名集合,D 为属性组 U 中属性所来自的域,dom 为属性向域的映象集合,F 为属性间数据的依赖关系集合。关系:在域 D1,D2,Dn 上笛卡尔积 D1D2Dn 的子集称为关系,表示为R(D1,D2,Dn)关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模
5、式在某一时刻对应的关系的集合,通常就称为关系数据库。2.3.2.3.为什么需要空值为什么需要空值 nullnull?答:答:引入空值,可以方便于数据库的维护和建立,数字或者字符有时并不能解决想要解决的问题,毕竟它们是真实的存在,有了空值,那么有些操作,比如查询,插入,删除都可以更加方便,比如公司的部门,新增的部门,信息是不存在的,是之后数据库人员进行添加之后才有的,所以让它为空,比给它 0 更加贴近实际。空值是所有可能的域的一个取值,表明值未知或不存在。2.3.2.3.关系模型的完整性规则有哪些?关系模型的完整性规则有哪些?答:答:关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三
6、类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。【最新整理,下载后即可编辑】1)实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。2)参照完整性规则:若属性(或属性组)F 是基本关系 R的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值);或者等于 S 中某个元组的主码值。3)用户定义的完整性是针对某一具体关系数据库的约束条件。
7、它反映某一具体应用所涉及的数据必须满足的语义要求。2.4.2.4.关系模型的主要操作有哪些?关系模型的主要操作有哪些?答:答:关系模型中的关系操作有查询操作和更新操作(插入、删除和修改)两大类。查询操作是关系操作中最主要的部分。查询操作又可以分为选择(select)、投影(project)、连接(join)、除(divide)、并(union)、交(intersection)、差(except)、笛卡尔积等。2.5.2.5.关系代数的基本运算有哪些?如何用这些基本运算来表示其关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?他运算?答:答:并、差、笛卡尔积、投影和选择5 种运算为基本
8、的运算。其他 3 种运算,即交、连接和除,均可以用这 5 种基本运算来表达。2.6.2.6.试述等值连接与自然连接的区别与联系?试述等值连接与自然连接的区别与联系?答:答:连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。为“”的连接运算称为等值连接。它是从关系 R 与 S 的笛卡尔积中选取 A、B 属性值相等的那些元组。即等值连接为:R A=B S=t t|tR tS tA=tB 自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉
9、。即若 R 和 S 具有相同的属性组 B,则自【最新整理,下载后即可编辑】然连接可记作:R S=t t|tR tS tB=tB 2.7.2.7.对于图对于图 2-82-8 所示的成绩管理数据库所示的成绩管理数据库 ScoreDBScoreDB 的模式导航图,的模式导航图,根据图根据图 2-112-11 所示的样例数据,给出如下运算的结果。所示的样例数据,给出如下运算的结果。(1)(studentName,birthday,courseNostudentName,birthday,courseNo(Student(Student Class)Class)(ourseNoourseNo(stude
10、ntNostudentNo=07010010701001 Score)Score)答:答:含义:选修了学号为 0701001 的同学所有选修课程的学生姓名和出日日期。studentNamestudentName birthdaybirthday李小勇李小勇1990-12-211990-12-21王红王红1992-04-261992-04-26(2)(studentNo,courseNostudentNo,courseNoScore)Score)(c courseNoourseNo(courseNocourseNo LIKELIKEc cCS%CS%Course)Course)ScoreScor
11、e答:答:含义:选修了计算机系所有开设课程的学生的成绩信息。StudentNoStudentNocourseNocourseNoTermTermScoreScore07010010701001CN028CN0280708107081858507010010701001CS012CS0120708207082888807010010701001CS015CS0150809108091929207010080701008AC001AC0010708107081767607010080701008CN028CN0280708107081868607010080701008CS012CS0120708
12、207082939307010080701008CS015CS0150809108091969608020050802005AC001AC0010910109101888808020050802005CS012CS0120809208092909008020050802005CS015CS015091010910187872.8.2.8.对于图对于图 2.82.8 所示的成绩管理数据库所示的成绩管理数据库 ScoreDBScoreDB 的模式导航图,的模式导航图,根根据图据图 2-112-11 所示的实例数据,试写出如下查询的关系代数表达式,所示的实例数据,试写出如下查询的关系代数表达式,并给
13、出其查询结果。并给出其查询结果。(1 1)查找籍贯为“上海”的全体学生。)查找籍贯为“上海”的全体学生。【最新整理,下载后即可编辑】答:答:native LIKEnative LIKE 上海上海%(Student)(Student)(2 2)查找)查找 19921992 年元旦以后出生的全体男同学。年元旦以后出生的全体男同学。答:答:year(birthday)=1992year(birthday)=1992sex=sex=男男(Student)(Student)(3 3)查找信息学院非汉族同学的学号、姓名、性别及民族。)查找信息学院非汉族同学的学号、姓名、性别及民族。答:答:studentN
14、o,studenName,sex,nationstudentNo,studenName,sex,nation(nation!nation!=汉族=汉族(Student)(Student)(instituteinstitute=信息学院=信息学院(Class)(Class)(4 4)查找)查找 08-0908-09 学年第二学期(学年第二学期(0809208092)开出课程的编号、名称)开出课程的编号、名称和学分。和学分。答答:courseNo,courseName,courseHourcourseNo,courseName,courseHour(Course(Course(termterm=0
15、809208092Score)Score)(5 5)查找选修了“操作系统”的学生学号、成绩及姓名。)查找选修了“操作系统”的学生学号、成绩及姓名。答答:studentNo,studenName,scorestudentNo,studenName,score(Student(Student(Score(Score(courseNocourseNo(courseNamecourseName=操作系统=操作系统Course)Course)(6 6)查找班级名称为“会计学)查找班级名称为“会计学 0707(3 3)班”的学生在)班”的学生在 07-0807-08 学年学年第一学期(第一学期(07081
16、07081)选课情况,要求显示学生姓名、课程号、课)选课情况,要求显示学生姓名、课程号、课程名称和成绩。程名称和成绩。答:答:studenName,studenName,courseNo,courseName,scorecourseNo,courseName,score(classNameclassName=会计学会计学 0808(3 3)班)班Class)Class)StudentStudent (termterm=0708107081 Score)Score)Course)Course)(7 7)查找至少选修了一门其直接先修课编号为)查找至少选修了一门其直接先修课编号为 CS012CS01
17、2 的课程的的课程的学生学号和姓名。学生学号和姓名。答:答:studenNo,studenNo,studentNamestudentName(priorCoursepriorCourse=CS012CS012Course)Course)ScoreScore Student)Student)(8 8)查找选修了)查找选修了 08-0908-09 学年第一学期(学年第一学期(0809108091)开出的全部课程)开出的全部课程的学生学号和姓名。的学生学号和姓名。答答:studenNo,studenNo,studentNamestudentName(Score(Score (courseNocour
18、seNo(term=term=0809108091 Score)Score)Student)Student)(9 9)查找至少选修了学号为)查找至少选修了学号为 07030100703010 的学生所选课程的学生学的学生所选课程的学生学号和姓名。号和姓名。【最新整理,下载后即可编辑】答答:studenNo,studenNo,studentNamestudentName(Score(Score (courseNocourseNo(studentNo=studentNo=07030100703010 Score)Score)Student)Student)2.9.2.9.对于图对于图 2-102-
19、10 所示的学生选课数据库所示的学生选课数据库 SCDBSCDB 的模式导航图,试的模式导航图,试写出如下查询的关系代数表达式。写出如下查询的关系代数表达式。(1 1)查找)查找 20082008 级蒙古族学生信息,包括学号、姓名、性别和所级蒙古族学生信息,包括学号、姓名、性别和所属班级。属班级。答答:studenNo,studentName,sex,classNostudenNo,studentName,sex,classNo(nation=nation=蒙古族蒙古族Student)Student)(grade=2008grade=2008Class)Class)(2 2)查找“)查找“C
20、C 语言程序设计”课程的课程班号、上课时间以及语言程序设计”课程的课程班号、上课时间以及上课地点。上课地点。答答:cClassNo,time,locationcClassNo,time,location(courseName=courseName=C C 语言程序设计语言程序设计Course)Course)CourseClassCourseClass Classroom)Classroom)(3 3)查找选修了先修课程为“计算机概论”的学生学号、课程)查找选修了先修课程为“计算机概论”的学生学号、课程号和成绩。号和成绩。答:答:studenNo,courseNo,scorestudenNo,c
21、ourseNo,score(C1.courseNoC1.courseNo(C1C1 Course)Course)C1.priorCourse=C2.courseNoC1.priorCourse=C2.courseNo(courseName=courseName=计计算算机机概论概论(C2C2Course)Course)SC)SC)(4 4)查找李勇老师)查找李勇老师08-0908-09 学年第二学期(学年第二学期(0809208092)开出的课程号、)开出的课程号、课程名和学分。课程名和学分。答答:courseNo,courseName,creditHourcourseNo,courseNam
22、e,creditHour(teacherNoteacherNo(teacherName=teacherName=李勇李勇 Teacher)Teacher)(term=term=0809208092CourseClass)CourseClass)Course)Course)(5 5)查找信息学院学生选课情况,要求显示学生姓名、课程号、)查找信息学院学生选课情况,要求显示学生姓名、课程号、课程名、课程班号、成绩和任课教师。课程名、课程班号、成绩和任课教师。答答:studentName,courseNo,courseName,cClassNo,score,teacherNamestudentName,courseNo,courseName,cClassNo,score,teacherName(instituteNoinstituteNo(instituteName=instituteName=信息学院信息学院Institute)Institute)ClassClass StudentStudent SCSC CourseCourse CourseClassCourseClass Teacher)Teacher)【最新整理,下载后即可编辑】