整理自博主本科《数据库系统原理》专业课完成的课后作业,以便各位学习数据库系统概论的小伙伴们参考、学习。
*文中若存在书写不合理的地方,欢迎各位斧正。
专业课本:
目录
一、选择题
二、填空题
三、简答题
四、关系代数
1.课本p70页,第6题,第(1)--(4)题,第(5)题选做,用关系代数完成。
2.设有关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE)。试用关系代数表达式表示下列查询语句:注意:一门课的老师只有一个,但是一个老师可能教多门课。
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
(2)检索年龄大于21的男学生的学号(S#)和姓名(SNAME)。
(3)检索“李强”同学不学课程的课程号(C#)。
(4)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。
(5)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。
(6)检索选修课程号为k1和k5的学生学号(S#)。
(7)检索选修全部课程的学生姓名(SNAME)。
(8)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。
(9)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。
(10)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
一、选择题
1、关系数据库管理系统应能实现的专门关系运算包括 。
A.排序、索引、统计
B.选择、投影、连接
C.关联、更新、排序
D.显示、打印、制表
答案:B
2、关系模型中,一个关键字是 。
A.可由多个任意属性组成
B.至多由一个属性组成
C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成
D.以上都不是
答案:C
3、自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的 。
A.元组
B.行
C.记录
D.属性
答案:D
5.关系模式的任何属性 。
A.不可再分
B.可再分
C.命名在该关系模式中可以不惟一
D.以上都不是
答案:A
6.在关系代数运算中,五种基本运算为 。
A.并、差、选择、投影、自然连接
B.并、差、交、选择、投影
C.并、差、选择、投影、乘积
D.并、差、交、选择、乘积
答案:C
二、填空题
1、关系代数运算中,传统的集合运算有 ① 、 ② 、 ③ 和 ④ 。
答案:①笛卡尔积 ②并 ③交 ④差
2、关系数据库中基于数学上两类运算是 关系代数 和 关系演算 。
3、已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是 ① ,系关系的外关键字 ② ,学生关系的主关键字是 ③ ,外关键字 ④
答案:①系编号 ②无 ③学号 ④系编号
三、简答题
课本P70,第3,4,5题。
答案参考 《数据库系统概论习题解析与实验指导》。
(待补充)
四、关系代数
1.课本p70页,第6题,第(1)--(4)题,第(5)题选做,用关系代数完成。
(1)
(2)
(3)
(4)
(5)
2.设有关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE)。试用关系代数表达式表示下列查询语句:注意:一门课的老师只有一个,但是一个老师可能教多门课。
*此处博主只给出解题思路,请翻阅的同学们自行将思路转换为关系代数的格式。
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
在C表中进行选择和投影。
(2)检索年龄大于21的男学生的学号(S#)和姓名(SNAME)。
在S表中进行选择和投影。
(3)检索“李强”同学不学课程的课程号(C#)。
先求出李强同学选修的课程,再用所有课程的课程号减去李强同学选修的课程的课程号。
(4)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。
用s和sc连接,再选择和投影。
(5)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。
用c和sc连接,再选择和投影。
(6)检索选修课程号为k1和k5的学生学号(S#)。
在sc表中选择学号和课号 除以 包含这两门课的表格。
(7)检索选修全部课程的学生姓名(SNAME)。
连接s和sc,投影出学号,姓名和课程号,除以,在c表上投影所有课程的课程号。以上步骤得到两列,学号和姓名,最后再投影出姓名即可。
(8)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。
在sc中投影出学号,除以,在sc中选择投影出对应的课程。
(9)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。
连接s和sc,投影出学号,姓名和课程号,除以,在c表上选择和投影出程军老师教的所有课程的课程号。以上步骤得到两列,学号和姓名,最后再投影出姓名即可。
(10)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
连接c和sc,投影出课程号,课程名和学号,除以在s中投影出所有学生的学号。