东华大学数据库系统原理试卷一及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负。
课程名称数据库系统原理使用专业计算机02级
班级姓名答案学号
一二三四五六七八九十总分
试题
得分
一、( 20分)有一个学生-课程数据库,各表如下:
学生表: Student(Sno,Sname,Ssex,Sage,Sdept)
课程表: Course(Cno,Cname,Cpno,Ccredit),Cpno为先修课编号
学生选课表: SC(Sno,Cno,Grade) ,请完成下列操作:
1、建立一个“学生”表Student,由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系
Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。
建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。
建立一个“课程”表Course,由课程编号Cno 、课程名Cname 、先修课程编号Cpno、 学分Ccredit四个属性组成。其中课程编号不能为空,值是唯一的。
CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE,
Ssex CHAR(1) ,
Sage NUMBER,
Sdept CHAR(15));
CREATE TABLE SC(
Sno CHAR(5) ,
Cno CHAR(3) ,
Grade NUMBER,
Primary key (Sno, Cno));
CREATE TABLE Course
(Cno CHAR(5) NOT NULL UNIQUE,
Cname CHAR(20),
Cpno CHAR(5) ,
Ccredit NUMBER );
2、查询每一门课的间接先修课(即先修课的先修课)。
SELECT o,SECOND.Cpno
FROM Course FIRST,Course SECOND
WHERE FIRST.Cpno = o;
1、查询其他系中比信息系某一学生年龄小的学生姓名和年龄
SELECT Sname,Sage
FROM Student
WHERE Sage < ANY (SELECT Sage
FROM Student
WHERE Sdept= ' IS ')
AND Sdept <> ' IS ' ;
2、查询没有选修1号课程的学生姓名。
SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno = Student.Sno AND Cno='1');
3、查询选修了全部课程的学生姓名。
SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno= Student.Sno
AND Cno= o));
4、查询至少选修了学生95002选修的全部课程的学生号码。
SELECT DISTINCT Sno
FROM SC SCX
WHERE NOT EXISTS
(SELECT *
FROM SC SCY
WHERE SCY.Sno = ' 95002 ' AND
NOT EXISTS
(SELECT *
FROM SC SCZ
WHERE SCZ.Sno=SCX.Sno AND
o=o));
5、建立1号课程的选课视图,并要求通过该视图进行的更新操作只涉及1号课程,同时对该
视图的任何操作只能在工作时间进行。
CREATE VIEW IS_SC
AS
SELECT Sno,Cno,Grade
FROM SC
WHERE Cno= '1'
AND TO_CHAR(SYSDATE,'HH24') BETWEEN 9 AND 17
AND TO_CHAR(SYSDATE,'D') BETWEEN 2 AND 6
WITH CHECK OPTION;
8、比较如下查询的效率:
–不相关子查询
–相关子查询
–带EXISTS量词的相关子查询
–连接查询
答:相关子查询的效率一般高于连接查询
由于带EXISTS量词的相关子查询只关心内层查询是否有返回值,并不需要查具体值,因此其效率并不一定低于其他形式的查询。
不相关子查询的效率高于相关子查询的效率
二、( 10 分)、简述构成RDBMS的组件结构。
答:构成RDBMS的组件结构主要有:数据和元数据存储,存储管理器(包括缓冲区管理器及文件管理器),查询处理器(包括预编译器,编译器及解释器),事务管理器和查询、修改、模式修改等。
三(10分)、设关系模式R(U)上的函数依赖集为F; F={A→D, AB→E, BI→E, CD→I, E→C},U={A, B, C, D, E, I} 试计算(AE)+。
解:令X(0)=AE, i=0;
在F中找出左边是AE子集的函数依赖,因A→D, ,则X(1)=AED;
因E→C,则X(2)=AEDC;
因CD→I, 则X(3)=AEDCI; 因已没有V→W∈F,能使X(3+1)≠X(3),则X+=X(3),即(AE)+=ACDEI。
四(10分)、关系模式R(CITY, ST, ZIP),其中CITY表示城市, ST表示城市的街道, ZIP表示街道所在地区的邮政编码,函数依赖集合F={(CITY, ST)→ZIP, ZIP→CITY},证明{ST, ZIP}和{CITY, ST}是候选键。