数据库期末复习题 下载本文

内容发布更新时间 : 2024/11/15 2:09:50星期一 下面是文章的全部内容请认真阅读。

D.Insert into CStud Values ( “98030104”, “张三丰”, “980301” ); 9.求既学过002号课,又学过003号课的同学学号,下列SQL语句不正确的是_________。 A.Select S# From SC Where C# = ‘002’ INTERSECT Select S# From SC Where C# = ‘003’; B.Select S# From SC Where C# = ‘002’ and S# IN (Select S# From SC Where C# =‘003’); C.Select S# From SC Where C# = ‘002’ AND C#=‘003’;

D.Select S1.S# From SC S1, SC S2 Where S1.S# = S2.S# and S1.C#=‘002’ and S2.C#=‘003 ; 10.有一个学生表student,包含主键S#(学生编号)等。又有分数表SC,包含S#(学生编号)、score(分数)等。已知student表中共有50个学生,有45人参加了考试(分数存在SC表中),其中10人不及格。执行以下SQL语句:select * from student where exists (select S# from SC where score<60 ), 可返回_________条记录。 A.10 B.35 C.50 D.45 D、A、A、B、B、B、D、D、A、A 设计题

11.学生-课程数据库模式 S-T :

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

课程表:Course (Cno,Cname,Cpno,Ccredit),其属性分别为课号、课名、先行课号、学分

学生选课表:SC(Sno,Cno,Grade) ,其属性分别为学号、课号、成绩 用SQL实现如下操作:

①查询选修2号课程且成绩在90分以上的所有学生 ②求计算机系(代号为CS)的学生总数

③找出每个学生超过他选修课程平均成绩的学号、课号

④查询其他系中比计算机系(代号为CS)某一学生年龄小的学生姓名和年龄 ⑤删除计算机系(代号为CS)所有学生的选课记录

⑥创建信息系(IS)选修1号课程学生的视图,该视图包括:学号、姓名、成绩3列 参考答案:

①SELECT Student.Sno, Sname FROM Student, SC WHERE Student.Sno = SC.Sno AND Cno=‘2’ AND Grade > 90; ②SELECT COUNT(*) FROM Student WHERE Sdept='CS‘ ③SELECT Sno,Cno FROM SC x

WHERE Grade >=(SELECT AVG(Grade) FROM SC y

WHERE y.Sno=x.Sno); ④SELECT Sname,Sage FROM Student

WHERE Sage < ANY (SELECT Sage

FROM Student

WHERE Sdept=' CS ') AND Sdept <> ‘CS ' ; ⑤DELETE FROM SC WHERE ‘CS’=

(SELECT Sdept FROM Student WHERE Student.Sno=SC.Sno) ⑥CREATE VIEW IS_S1 (Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Grade FROM Student,SC WHERE Sdept=‘IS’ AND Student.Sno=SC.Sno AND SC.Cno=‘1’

第四单元测试 单选

1.保护数据库,防止未经授权的或不合法的使用造成的数据泄漏、更改破坏。这是指数据的( )。

A.安全性 B.完整性 C.并发控制 D.恢复

2.下列SQL语句中,能够实现“收回用户ZHAO对学生表(STUD)中学号(XH)的修改权”这一功能的是( )。

A.REVOKE UPDATE(XH) ON TABLE FROM ZHAO B.REVOKE UPDATE(XH) ON TABLE FROM PUBLIC C.REVOKE UPDATE(XH) ON STUD FROM ZHAO D.REVOKE UPDATE(XH) ON STUD FROM 3.安全性控制的防范对象是( ),防止他们对数据库数据的存取。

A.不合语义的数据 B.非法用户 C.不正确的数据 D.不符合约束数据 4.数据库安全审计系统提供了一种( )的安全机制。 A.事前检查 B.事发时追踪 C.事后检查 D.事前预测

5.把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是( )。

A.GRANT QTY ON SPJ TO '李勇' B.GRANT UPDATE(QTY) ON SPJ TO '李勇' C.GRANT UPDATE (QTY) ON SPJ TO 李勇 D.GRANT UPDATE ON SPJ (QTY) TO '李勇' 多选

6 .保护数据库安全性的一般方法是( )。

A.设置用户标识 B.存取权限控制 C.建立机房管理制度 D.建立完整性约束 7.安全性控制的一般方法有( )。

A.用户标识鉴定 B.存取控制 C.审计 D.数据加密 填空

8 .把Student表 的INSERT权限从用户王平处收回用SQL语句描述为REVOKE INSERT ON Student FROM 王平 ___________。(关键词请用大写字母) 判断

9 .在数据库的安全性控制中,授权对象的约束范围越大,授权子系统就越灵活。( ) 10. SQL标准允许具有WITH GRANT OPTION的用户将其权限再授回给授权者或者其祖先。( )

A、C、B、C、C、AB、ABCD、CASCADE、×、× 陈述题

11. 用户标识与鉴别的要素、目的及安全级别分别是什么? 要素:数据库服务器、数据库、用户标识、口令(密码) 目的:

1)驱动数据库

2)建立用户端与数据库服务器的通信链路 3)对用户和数据进行分离 安全级别:C1级

12. 数据库的安全方法主要有哪些?

用户标识与鉴别、存取控制、数据库角色、视图机制、审计、数据加密、其他安全性保护

第五次单元测验 单选

1.在数据库系统中,保证数据及语义正确和有效的功能是( )。 A.并发控制 B.存取控制 C.安全控制 D.完整性控制 2.在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,属于数据的( )约束。

A.实体完整性 B.参照完整性 C.用户自定义完整性 D.用户操作 3.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( )。

A.实体完整性约束 B.参照完整性约束 C.用户自定义完整性约束 D.关键字完整性约束 4.关于主键约束以下说法错误的是( )。

A.一个表中只能设置一个主键约束 B.空值的字段上不能定义主键约束

C.空值的字段上可以定义主键约束 D.可以将包含多个字段的字段组合设置为主键 多选

5 .实体完整性规则检查的内容包括( )。

A.检查主码的各个属性值是否为空,只要有一个为空就拒绝插入或修改 B.检查主码的各个属性值是否唯一,只要有一个不唯一就拒绝插入或修改 C.检查主码值是否唯一,如果不唯一就拒绝插入或修改 D.检查主码值是否唯一,如果唯一就拒绝插入或修改 6.数据库的完整性是指数据的( )。

A.实体完整性 B.参照完整性 C.用户定义完整性 D.安全完整性 填空

7 .将Student表中的Sno属性定义为码(关键词请用大写字母)。 CREATE TABLE Student

(Sno CHAR (9) _______________, Sname CHAR (20) NOT NULL, Ssex CHAR (2), Sage SMALLINT, Sdept CHAR (2) ); 判断

8.数据的完整性是保护数据库,防止恶意破坏和非法存取。( )

9.对参照表插入元组时,一旦违背了参照完整性约束,则拒绝插入元组。( ) 10.触发器不仅可以定义在基本表上,也可以定义在视图上。( ) D、C、C、C、AC、ABC、PARIMARY KEY、×、√、×

陈述题

11. RDBMS完整性实现的机制是什么?RDBMS完整性约束 RDBMS完整性实现的机制指:完整性约束定义机制、完整性检查机制、违背完整性约束条件时RDBMS应采取的动作

RDBMS完整性约束包括:实体完整性、参照完整性、用户自定义完整性

12. 同一个表上的多个触发器激活时遵循如下的执行顺序是怎样的?给出定义触发器的命令格式。 (1) 执行该表上的BEFORE触发器; (2) 激活触发器的SQL语句;

(3) 执行该表上的AFTER触发器。

定义触发器的命令格式:CREATE TRIGGER <触发器名> {BEFORE | AFTER} <触发事件> ON <表名> FOR EACH {ROW | STATEMENT}

[WHEN <触发条件>] <触发动作体> 设计题

13.现有一个教师表Teacher(Eno,Tname,Job,Sal),其字段分别表示教工号、姓名、职称、工资;请完成下列操作:

1)建立工资变化表Sal_log(Eno NUMERIC(4), Sal NUMERIC(7,2), Username char(10), Date TIMESTAMP) 2)定义AFTER行级触发器,当教师表Teacher的工资发生变化后就自动在工资变化表Sal_log中增加一条相应记录 参考答案:

1)CREATE TABLE Sal_log

(Eno NUMERIC(4), Sal NUMERIC(7,2), Username char(10), Date TIMESTAMP); 2) CREATE TRIGGER Insert_Sal

AFTER INSERT ON Teacher FOR EACH ROW AS BEGIN

INSERT INTO Sal_log VALUES(new.Eno,new.Sal,CURRENT_USER,CURRENT_TIMESTAMP);

END;

CREATE TRIGGER Update_Sal AFTER UPDATE ON Teacher FOR EACH ROW AS BEGIN

IF (new.Sal <> old.Sal) THEN

INSERT INTO Sal_log VALUES(new.Eno,new.Sal,CURRENT_USER,CURREN T_TIMESTAMP); END IF; END;

14. 现有一个教师表Teacher(Eno,Tname,Job,Sal),其字段分别表示教工号、姓名、职称、工资;请完成下列操作:

定义一个BEFORE行级触发器,为教师表Teacher定义完整性规则“教授的工资不得低于4000元,如果低于4000元,自动改为4000元”。

参考答案:

CREATE TRIGGER Insert_Or_Update_Sal

BEFORE INSERT OR UPDATE ON Teacher FOR EACH ROW AS BEGIN

IF (new.Job='教授') AND (new.Sal < 4000) THEN new.Sal :=4000; END IF;

END;