《数据库系统概论》作业2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
《数据库系统概论》作业2
第三章 关系模式和关系运算
一、假设学生选课数据库如下:
Student (Sno ,Sname ,Age ,Dept )
Couse (Cno ,Cname ,Teacher )
SC (Sno ,Cno ,Score )
用关系代数分别进行如下查询:
(1)学号为9900111的学生的系别和年龄;
(2)有不及格(成绩《60》学生的课程名;
(3)计算机系有不及格课程的学生名单;
(4)学生张林的“数据库原理”课成绩。
答案:
(1)πDept ,Sage (σSno=9900111(Student ))
(2)πCname (σscore<60(SC
Course )
(3)π
Sname (σscore<60(SC σDept =‘计算机系’(Student )
(4)πScore (σsname=‘张林’(Stident SC σCname=‘数据库原理’(Course ))
二、分别用元组关系运算表示习题一中的查询。。
(1)学号为9900111的学生的系别和年龄;
(2)有不及格(成绩《60》学生的课程名;
(3)计算机系有不及格课程的学生名单;
(4)学生张林的“数据库原理”课成绩。
答案:
(1){
}9900111]1[]3[]2[]4[]1[))()(()2(=∧=∧=∧∃s s t s t s Student s t (2){})60]3[]1[]2[]2[]1[)()()(()3()2()1(<∧=∧=∧∧∃∃u c u c t u SC c Course u c t
(3)
{}
)计算机系'']4[60]3[]1[]1[]2[]1[)()()()(()3()4()1(=∧<∧=∧=∧∧∃∃s u s u s t u SC s Student u s t (4)]1[]1[]3[]1[)(()()()()()(({)2()3()4()1(u s u t c Course u SC s Student c u s t
=∧=∧∧∧∃∃∃ }'']2['']2[]1[]2[)数据库原理张林=∧=∧=∧c s c u
三、用数据库逻辑规则表示习题一中的查询。
(1)学号为9900111的学生的系别和年龄;
2
(2)有不及格(成绩《60》学生的课程名;
(3)计算机系有不及格课程的学生名单;
(4)学生张林的“数据库原理”课成绩。
答案:
(1)S (D,A ←Student(SNo,SN,A,D) AND SNO=9900111
(2)C (CN) ← Course (CNo,CN) AND SC (SNo,CNo,S) AND S<60
(3)S (S,N) ← Student(SNo,SN,A,D) AND SC (SNo,CNo,S) AND D=’计算机系’ AND S<60
(4)U (S) ← Student(SNo,SN,A,D) AND SC (SNo,CNo,S) AND Course (CNo,CN)
AND SN=’张林’ AND CN=’数据库原理’
四、画出习题一中查询(4)的关系代数表达树。
答案:
第四章 数据库语言SQL
五、一个电影资料数据库有三个基本表:电影表Movie (含电影名、制作年份、长度、是否彩色、
制片商)、演员表Actor (含演员姓名、地址、性别、出生年月)和电影主演表Acts (电影名、制作年份、演员姓名)。用AQL 的建表语句建立这三个基本表,有注意合理地选择属性的数据类型。
答案:
CREATE TABLE Movie (
Title CHAR (30),
Year INT ,
Length INT
);
CREATE TABLE Actor (
Name CHAR (20),
Gender V ARCHAR (30),
Length CHAR (1)
Birthdate DATE
CREATE TABLE Acts (
MoiveTitle CHAR(30),
MoiveYear INT,
ActorName CHAR(20)
六、在习题五建立的表的基础上,用SQL实现如下查询或更新操作:
(1)统计1999年制作电影的平均长度和最短长度;
(2)在1999年主演过电影的演员姓名;
(3)所有同名电影各自的电影名和制作年份;
(4)往演员关系Actor插入一个演员记录,具体的数据值由你指定;
(5)把电影“我的世界“的长度改为109分钟;
(6)删除1940年以前制作的所有电影记录以及电影主演记录。
答案:
(1)SELECT A VG (Length),MIN(Length)
FROM Movie
WHERE Year=1999;
(2)SELECT ActorName
FROM Acts
WHERE MovieYear=1999;
(3)SELECT M1.Title,M1.Year,M2.Year
FROM Movie AS M1, Movie AS M2
WHERE M1.Title=M2.Title AND M1.Year (4)INSERT INTO Actor(Name,Gender) V ALUES(‘秀兰·邓波儿’,’F’); (5)UPDATE Movie SET Length=109 WHERE Title=’我的世界’; (6)DELETE FROM Movie WHERE Year<1940; DELETE FROM Acts WHERE MovieYear<1940; 七、在习题五建立的表但是基础上,要求为Movie关系增加一个属性MovieDirector(电影导演)。 用SQL实现这种关系模式的改变。 答案: ALTER TABLE Movie ADD MovieDirector CHAR(20) 八、假设学生炫课数据库如下: Student(Sno,Sname,Sage,Ssex) Course(Cno,Cname,Teacher) SC(Sno,Cno,Grade) 用SQL语句表达下列查询: (1)找出刘老师所授课程的课程号和课程名。 (2)找出年龄小于22岁女学生的学号和姓名。 (3)找出至少选修刘老师讲的一门课的学生姓名。 3