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

某学校的2018年数据库系统期中考试,答案是自己做的,仅供参考。

一、单选题(每小题2分,共30分)

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’);

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

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值