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

2023-12-13 14:50:59

【写在前面】

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

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

以上,是期中失利的感悟。

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

湖南大学-数据库系统-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');

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

文章来源:https://blog.csdn.net/qq_39480177/article/details/134350663
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。