数据库系统-2018期中考试解析

【写在前面】

在备考期中的过程中,做了前几年零零散散的几套卷子,自己练练手。也没有标准答案校对,只能跟同学对对答案。这是2018年的卷子,有一点参考性,可以看看。

正式考试试卷太浅了,但是也没考好,很多简单的地方想太复杂丢了很多分,有些简答题没有记住,也没拿分,所以有时还是要衡量好做题和看书的权重。

以上,是期中失利的感悟。【1.20补:好像也没有太失利,可能是当时感觉错了,或者老师捞捞】

以下,答案需辩证看待,不保证正确,可以探讨正确或错误。

湖南大学-数据库系统-2018期中考试

1、下列关于数据库系统正确的描述是(  A   )。

A、数据库系统减少了数据的冗余

B、数据库系统避免了一切冗余

C、数据库系统中数据的一致性是指数据的类型一致

D、数据库系统比文件系统能管理更多的数据

2、下面哪个不属于数据库系统的三级模式结构(    C    )。

A、外模式 B、 模式  C、中模式   D、 内模式

3、下面哪个命令属于SQL语言授权命令(   D   )。

A、 update    B、 delete    C、select   D、 grant

4、同一个关系模型的任意两个元组值(    A   )。

A、不能全同    B、可全同   C、必须全同  D、以上都不是

5、关系模型的结构是(  D    )。

A、层次结构 B、网状结构 C、对象结构  D、二维结构

6、下列聚合函数中不忽略空值(null)的是(   C   )   

A、SUM(列名)  B、MAX(列名)  

C、COUNT(*)   D、AVG(列名)

7、实体完整性要求主属性不能取空值,这一点可以通过(  B  ) 来保证。

   A、定义外码     B、定义主码  

C、用户定义的完整性  D、由关系系统自动

8、为防止用户通过视图对数据进行增、删、改时,无意或故意操作不属于视图范围内的基本表数据,可在定义视图时加上下列哪个句子?(  A ) 

A、WITH CHECK OPTION子句  B、WITH CHECK DISTINCT 子句 

   C、WITH CHECK ON 子句     D、WITH CHECK STRICT 子句

9、设关系R与关系S具有相同的目(或称度),且相对应的属性的值取自同一个域,则R-(R-S)等于(  B   )

A、R∪S    B、R∩S   C、R×S   D、R-S

10、视图消解(View Resolution)的概念是(   D  )   

A、将对视图的查询转换为逻辑查询的过程   

B、将对视图的查询转换为对具体数据记录查询的过程 

C、将对视图的查询转换为对数据文件的查询的过程 

D、将对视图的查询转换为基本表的查询的过程

11、当关系R和S自然连接时,能够把R和S原该舍弃的元组放到结果关系中的操作是(   D   )

A、左外联接  B、右外联接  C、外部并  D、外联接

12、 要保证数据库逻辑数据独立性,需要修改的是(    C    )

A、模式 B、模式与内模式的映射

C、模式与外模式的映射 D、内模式

13、若要删除数据库中已经存在的表 S ,可用(     C     )

A、DELETE TABLE S B、DELETE S

C、DROP TABLE S D、DROP S

14、在视图上不能完成的操作是(    C    )

A、更新视图 B、查询

C、在视图上定义新的表 D、在视图上定义新的视图

15、建立索引的最优之一是(    C     )

A、节省存储空 B、便于管理

C、提高查询速度 D、提高查询和更新的速度

  • 简答题(每小题6分,共30分)

1、试述数据库中候选码和主码的区别?

2、试述视图的作用?基本表和视图有什么区别和联系?

3、简述数据库的审计功能,为什么要提供审计功能?

4、举例说明关系模型有哪三类完整性规则?

5、简述数据库的三级模式结构和两层映像?这样的结构有什么好处?

【该部分答案可以在书上找到,故不再列出】

三、问答题(第1小题25分,第2小题10分,第三小题5分,共40分)

1、设有一个学生—课程数据库,其中关系表如下所示:

学生关系表:Student(Sno,Sname,Ssex,Sage,Sdept),属性为:学生(学号,姓名,性别,年龄,所在系)

课程关系表:Course(Cno,Cname,Cpno,Ccredit),属性为:课程(课程号,课程名,先修课号,课程学分)

学生选课关系表:SC(Sno,Cno,Grade),属性为:选课(学号,课程号,成绩)

用SQL语句实现下列各项:

(1)创建学生选课表SC。(4′)

CREATE TABLE SC (SNO CHAR,
                 CNO CHAR,
                 GRADE INT,
                 PRIMARY KEY(SNO,CNO),
                 FOREIGN KEY(SNO) REFERENCES STUDENT(SNO),
                 FOREIGN KEY(CNO) REFERENCES STUDENT(CNO)
);

(2)为学生—课程数据库中的SC建立索引,SC表按学号升序和课程号降序建索引。(2′)

CREATE UNIQUE INDEX MY_INDEX ON SC(SNO ASC,CNO DESC);

(3)创建视图:院系学生数,要求将所有院系学生人数列示出来。(3′)

CREATE VIEW MY_VIEW AS(
SELECT SDEPT,COUNT(*)
FROM STUDENT
GROUP BY SDEPT);

(4)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。(2′)

SELECT SNAME,SDEPT,SAGE
FROM STUDENT
WHERE SAGE >= 20 AND SAGE <= 23;

(5)查询学生姓名中第2个字为”明”字的学生的姓名和学号。(3′)

SELECT SNAME,SNO
FROM STUDENT
WHERE SNAME LIKE '_明%';

(6)查询“化学系”学生没有选修的所有课程名。(3′)

SELECT CNAME
FROM COURSE
WHERE CNO NOT IN
		(SELECT CNO 
		FROM STUDENT,SC
		WHERE STUDENT.SNO = SC.SNO AND
			SDEPT = '化学系');

SELECT CNAME
FROM COURSE
WHERE NOT EXISTS(
    SELECT *
    FROM SC,STUDENT
    WHERE COURSE.CNO = SC.CNO AND
    	SC.SNO = STUDENT.SNO AND
    	STUDENT.SDEPT = '化学系');

(7)查询选修了课程M01或者选修了课程M02的学生。(3′)

SELECT *
FROM STUDENT
WHERE SNO IN
	(SELECT SNO 
	FROM SC
	WHERE CNO = 'M01' OR CNO = 'M02');
	
SELECT *
FROM STUDENT,SC
WHERE SC.SNO = STUDENT.SNO AND
	(SC.CNO = 'M01' OR SC.CNO = 'M02');

(8)将学生08001的年龄改为23岁。(2′)

UPDATE STUDENT
SET SAGE = 23
WHERE SNO = '08001';

(9)查询每一课的间接先修课(先修课的先修课)。(3′)

SELECT FIRST.CNO,SECOND.CPNO
FROM COURSE FIRST,COURSE SECOND
WHERE FIRST.CPNO = SECOND.CNO;

2、设有3个关系模式如题1所示,请用关系代数表达式完成下列各题。

(1)检索选修课程号为C2的学生学号与姓名。(3′)

(2)检索选修课程名为MATHS的学生学号与姓名。(3′) 

(3)检索至少选修课程号为C2或C4的学生学号。(4′)

3、设有两个关系R(A,B)和S(B,C),有下列SELECT语句

SELECT  A,B

FROM  R

WHERE  B  NOT  IN(SELECT  B

FROM  S

WHERE  C='C56');

请写出与之等价的关系代数表达式。

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值