东华大学数据库系统原理试卷一及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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}是候选键。

相关文档
最新文档