资源描述
第2章 关系模型与关系代数
2.7 对于图2-8所示的成绩管理数据库ScoreDB的模式导航图,根据图2-11所示的样例数据,给出如下运算的结果。
(1)(∏studentName,birthday,courseNo(Student ⋈Class))÷(∏courseNo(σstudentNo=‘0701001’ Score))
答:含义:选修了学号为0701001的同学所有选修课程的学生姓名和出日日期。
studentName
birthday
李小勇
1990-12-21
王红
1992-04-26
(2)(∏studentNo,courseNoScore)÷(∏courseNo(σcourseNo LIKE ‘CS%’Course)) ⋈Score
答:含义:选修了计算机系所有开设课程的学生的成绩信息。
StudentNo
courseNo
Term
Score
0701001
CN028
07081
85
0701001
CS012
07082
88
0701001
CS015
08091
92
0701008
AC001
07081
76
0701008
CN028
07081
86
0701008
CS012
07082
93
0701008
CS015
08091
96
0802005
AC001
09101
88
0802005
CS012
08092
90
0802005
CS015
09101
87
2.8 对于图2-8所示的成绩管理数据库ScoreDB的模式导航图,根据图2-11所示的实例数据,试写出如下查询的关系代数表达式,并给出其查询结果。
(1)查找籍贯为“上海”的全体学生。
答:σnative=‘上海’Student
(2)查找1992年元旦以后出生的全体男同学。
答:σyear(birthday)>=1992∧sex='男’Student
(3)查找信息学院非汉族同学的学号、姓名、性别及民族。
答:∏studentNo,studenName,sex,nation(Student ⋈(σinstitute=’信息学院’Class))
(4)查找08-09学年第二学期(08092)开出课程的编号、名称和学分。
答:∏courseNo,courseName,courseHour(Course ⋈(σterm=’08092’Score))
(5)查找选修了“操作系统”的学生学号、成绩及姓名。
答:∏studentNo,studenName,score(Student ⋈(Grade ⋈(σcourseName=’操作系统’Course))
(6)查找班级名称为“会记学08(3)班”的学生在07-08学年第一学期(07081)选课情况,要求显示学生姓名、课程号、课程名称和成绩。
答:∏ studenName, courseNo,courseName,score( (σclassName=’会计学08(3)班’Class) ⋈Student ⋈ (σterm=’07081’ Score) ⋈Course)
(7)查找至少选修了一门其直接先修课编号为CS012的课程的学生学号和姓名。
答:∏ studenNo, studentName( (σpriorCourse=’CS012’Course) ⋈Score ⋈Student)
(8)查找选修了08-09学年第一学期(08091)开出的全部课程的学生学号和姓名。
答:∏ studenNo, studentName(Score÷(∏ courseNo(σterm=’08091’ Score)) ⋈Student)
(9)查找至少选修了学号为0703010的学生所选课程的学生学号和姓名。
答:∏ studenNo, studentName(Score÷(∏ courseNo(σstudentNo=’0703010’ Score)) ⋈Student)
2.9 对于图2-10所示的学生选课数据库SCDB的模式导航图,试写出如下查询的关系代数表达式。
(1)查找2008级蒙古族学生信息,包括学号、姓名、性别和所属班级。
答:∏ studenNo,studentName,sex,classNo((σnation=’蒙古族’ Student) ⋈(σgrade=2008Class))
(2)查找“C语言程序设计”课程的课程班号、上课时间以及上课地点。
答:∏ cClassNo,time,location((σcourseName=’C语言程序设计’ Course) ⋈CourseClass ⋈ Classroom)
(3)查找选修了先修课程为“计算机概论”的学生学号、课程号和成绩。
答:∏ studenNo,courseNo,score((∏ C1.courseNo((ρC1 Course) ⋈C1.priorCourse=C2.courseNo(σcourseName=’计算机概论’ (ρC2Course)))) ⋈SC)
(4)查找李勇老师08-09学年第二学期(08092)开出的课程号、课程名和学分。
答:∏ courseNo,courseName,creditHour((∏ teacherNo(σteacherName=’李勇’ Teacher)) ⋈(σterm=’08092’CourseClass) ⋈Course)
(5)查找信息学院学生选课情况,要求显示学生姓名、课程号、课程名、课程班号、成绩和任课教师。
答:∏ studentName,courseNo,courseName,cClassNo,score,teacherName((∏instituteNo(σinstituteName=’信息学院’ Institute)) ⋈Class ⋈Student ⋈SC ⋈Course ⋈CourseClass ⋈Teacher)
展开阅读全文