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

章节测试与考试

第一篇 基础篇

第一次单元测验(考查范围:第一章) 单选

1.( )是存储在计算机内有结构的数据的集合。

A.数据库系统 B.数据库 C.数据库管理系统 D.数据结构

2.数据库的特点之一是数据的共享,严格的讲,这里的数据共享是指( )。

A.同一个应用中的多个程序共享一个数据集合 B.多个用户、同一种语言共享数据 C.多个用户共享一个数据文件

D.多种应用、多种语言、多个用户互相覆盖地使用数据集合 3.要保证数据库的数据独立性,需要修改的是( )。

A.模式与外模式 B.模式与内模式 C.三级模式之间的两层映射 D.三层模式 4.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是( )。 A.DBS包括DB和DBMS B.DBMS包括DB和DBS

C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS 多选

5.数据库系统的基本特点包括( )。

A.数据共享性高、冗余度低 B.数据独立性高

C.数据结构化 D.数据设计面向某个具体的应用 6.在数据管理技术的发展过程中,经历了( )阶段。

A.人工管理 B.文件系统 C.档案管理 D.数据库系统 填空

7.数据库系统与文件系统的本质区别为__________。

8.在数据库领域的各种逻辑数据模型中,一个结点可以有多个双亲,结点之间可以有多种联系,该数据模型指的是__________。 判断

9.数据冗余可能导致的问题有浪费存储空间、修改复杂和潜在的数据不一致性。( ) 10.数据库管理员是开发数据库的专门人员。( )

B、D、C、A、ABC、ABD、数据的结构化、网状模型、√、× 陈述题

11.数据库系统的三级模式和二级映像分别指什么?系统是如何实现数据的逻辑独立性和物理独立性的? 三级模式:外模式、模式、内模式;二级映像:外模式与模式映像、模式与内模式映像;

? 保证数据的逻辑独立性

当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变; 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。

? 保证数据的物理独立性

当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变

应用程序不受影响。保证了数据与程序的物理独立性。

12.关系数据模型的三要素指什么?其中哪一个要素是核心,为什么?

三要素:关系模型的数据结构、关系模型的操作、关系模型的完整性约束; 其中关系模型的数据结构是核心,因为它确定了数据的存储、操作及运算。

第二次单元测验(考查范围:第5讲至第10讲) 单选

1 .下列选项中不是关系数据库基本特征的是( )。

A.不同的列应有不同的数据类型 B.不同的列应有不同的列名 C.与行的次序无关 D.与列的次序无关 2.关系代数中的连接操作是由( )操作组合而成。

A.选择和投影 B.选择和笛卡尔积 C.投影、选择、笛卡尔积 D.投影和笛卡尔积 3.设有一个SPJ数据库,其包括S,P,J,SPJ四个关系: S (SNO, SNAME, STATUS, CITY); P (PNO, PNAME, COLOR, WEIGHT); J (JNO, JNAME, CITY); SPJ (SNO, PNO, JNO, QTY);

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成; 零件表P有零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)城市组成;

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。 供应工程J1零件为红色的供应商号码SNO用关系代数表示为( )。 A.∏SNO(σJNO=’J1’(SPJ) ∧ (σColor=’红’ (P)) B.∏SNO(σJNO=’J1’, Color = ’红’ (P ∞ SPJ ∞ S)) C.∏SNO(σJNO=’J1’(SPJ) ∞ (σColor=’红’ (P)) D.∏SNO(σJNO=’J1’(SPJ) ∧(σColor=’红’ (P))

4.自然联接是构成新关系的有效方法。一般情况下,当对关系R和S是用自然联接时,要求R和S含有一个或者多个共有的( )。 A.记录 B.行 C.属性 D.元组 多选

5.关系R中能唯一标识一个元组的是它的( )。 A.主码 B.候选码 C.外部码 D.全码

6.在“学生-选课-课程”数据库中的3个关系如下:S(SNO, SNAME, SEX, AGE);SC(SNO, CNO, GRADE); C(CNO, CNAME, TEACHER),查找选修“数据库技术”这门课程学生的学生名和成绩,若用关系代数表达式来表示为( )。

A.ПCNAME, GRADE (σCNAME=’数据库技术’(C) ∞ПSNO, CNO, GRADE (SC) ∞ПSNO, SNAME (S) )

B.ПCNAME, GRADE (σCNAME=’数据库技术’(C) ∞ SC∞ S) C.ПCNAME, GRADE (C ∞ SC ∞SC) D.ПCNAME, GRADE (σCNAME=’数据库技术’ (ПCNAME (C)) ∞ПSNO, CNO, GRADE (SC)

∞ПSNO, SNAME (S) ) 判断

7. 关系是静态的、稳定的,关系模式是动态的、随时间变化的。( )

8.在参照完整性规则中,参照关系R中的外码与被参照关系S中的主码可以不同名,但应取自同一值域。( )

9.两个分别为n目和m目的关系R和S的笛卡尔积是一个(n + m)列的元组的集合。若R有k1个元组,S有k2个元组,则R和S的笛卡尔积有k1 + k2个元组。( ) 10单选.关系数据模型的基本数据结构是()。

A.数据库 B.关系模式 C.关系 D.元组或记录 A、B、C、C、ABD、AB、×、√、×、C

设计题

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

学生表:Student (Sno,Sname,Ssex,Sage,Sdept),其属性分别为学号、姓名、性别、年龄、所在系 课程表:Course (Cno,Cname,Cpno,Ccredit),其属性分别为课号、课名、先行课号、学分

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

①查询选修了2号课程的学生的学号

②查询至少选修了一门其直接先行课程为5号课程的学生姓名 ③查询选修了全部课程学生学号和姓名

④查询选修了2号或3号课程的学生学号和姓名

⑤查询没有全部选修其直接先行课程为5号课程学生姓名 ⑥查询没有选修3号课程学生学号和姓名 参考答案:

①②③④⑤⑥

第三次单元测验 单选

1.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能_________。

A.数据操纵 B.数据控制 C.数据查询 D.数据定义 2.已知有:学生表Student ( S# char(8), Sname char(10), Ssex char(2), Sage integer, D# char(2), Sclass char(6) )中,若要在学生表中追加一个元组“学号为98030101的男同学张三,年龄为20,所属系别03,所在班级980301”,则可用_________。

A.INSERT INTO Student VALUES ( ‘98030101’, ‘张三’,‘男’, 20, ‘03’,‘980301’); B.ADD INTO Student VALUES(98030101,张三,男, 20,03, 980301);

C.ADD INTO Student VALUES(‘98030101’, ‘张三’,‘男’, 20, ‘03’,‘980301’); D.INSERT INTO Student VALUES (9803010, 张三,男, 20, 03,980301);

3.有学生表Student(S# char(8), Sname char(10), Ssex char(2), Sage integer, D# char(2),Sclass char(6))。要检索学生表中“所有年龄小于等于19岁的学生的年龄及姓名”,SQL语句正确的是_________。

A.Select Sage, Sname From Student Where Sage <= 19; B.Select * From Student Where Sage <= 19;

C.Select Sname From Student Where Sage <= 19; D.Select Sage, Sname From Student;

4.SQL语言中,删除一个表的命令是________。

A.CLEAR B.DROP C.REMOVE D.DELETE

5.学生关系S(S#,Sname,Ssex,Sage,D#,Sclass),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是_________。 A.ALTER TABLE S ‘Sage’ B.ALTER TABLE S DROP Sage C.DELETE Sage from D.UPDATE S Sage 6.陈述A:SubQuery1 UNION SubQuery2语句,其中SubQuery1和SubQuery2查询中相应的列必须以同一顺序出现。 陈述B:GROUP BY和HAVING子句不能在子查询中使用,这些子句只能用在最后一个查询结束时来总结和排序最后结果集。 关于陈述A和B,下列说法正确的是_________。

A.都是错误的 B.陈述A正确,陈述B错误 C.都是正确的 D.陈述A错误,陈述B正确 7.下面有关HAVING子句,说法不正确的是_________。

A.HAVING子句必须与GROUP BY 子句同时使用,不能单独使用 B.使用HAVING子句的同时可以使用WHERE子句

C.使用HAVING子句的作用是过滤掉不满足条件的分组 D.使用HAVING子句的同时不能使用WHERE子句

8.已知关系模式Student (S# char(8) Primary key, Sname char(10), Ssex char(2),Sage integer, D# char(2), Sclass char(6)),在此基础上定义了视图create view CStud(S#, Sname, Sclass) as ( select S#, Sname, Sclass from Student where D# =‘03’)。若要对该视图进行更新,下列语句正确的是_________。

A.insert into CStud values (Null, “张三丰”, “980301”);

B.insert into CStud values (“98030104”, 张三丰, Null, Null, “03” , “980301”); C.Insert into CStud Values (98030104, “张三丰”, “980301”);

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;

考试一

1.下列四项中,不属于数据库系统的主要特点的是( )。

A.数据库与DBMS的相互独立 B.用户程序与DBMS的相互独立 C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 D.应用程序与数据库中数据的逻辑结构相互独立

2.下列四项中,不属于数据库系统的主要特点的是( )。

A.数据结构化 B.数据的冗余度小 C.较高的数据独立性 D.程序的标准化 3.在( )中一个结点可以有多个双亲,结点之间可以有多种联系。 A.网状模型 B.关系模型 C.层次模型 D.以上都有

4.假设有关系R和S,关系代数表达式R -(R - S)表示的是( ) A.R ∩ S B.R ∪ S C.R – S D.R × S

5.设有一个医生诊疗数据库,其包含3个关系模式:

患者(患者编号,患者姓名,性别,出生日期,所在单位); 医生(医生编号,医生姓名,出生日期,最高学位,所在科室); 治疗(患者编号,医生编号,诊断日期,诊断结果)。 其中,患者和医生通过治疗关系建立联系,即某医生给某患者在某一天看病,给出一个诊断结果。

根据以上描述,治疗关系模式中的外码是( )。

A.患者编号 B.患者姓名 C.患者编号和患者姓名 D.医生编号和患者编号 6.学生关系模式 S (SNO,SNAME,SEX,AGE),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除属性“AGE”,可选用的SQL语句是( )。 A. DELETE AGE FROM S B. ALTER TABLE S DROP AGE C.UPDATE S AGE D.ALTER TABLE S AGE

7.有关系S(SNO, SNAME, SAGE),C(CNO, CNAME),SC(SNO, CNO, GRADE)。其中SNO是学生号,SNAME是学生姓名,SAGE是学生年龄, CNO是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的学生姓名,则SQL语句是: SELECT SNAME FROM S,C,SC WHERE子句。 这里的WHERE子句的内容是( )。 A.S.SNO = SC.SNO and C.CNO = SC.CNO and SAGE>=20 and CNAME=‘ACCESS’ B.S.SNO = SC.SNO and C.CNO = SC.CNO and SAGE in>=20 and CNAME in ‘ACCESS’ C.SAGE in>=20 and CNAME in ‘ACCESS’ D.SAGE>=20 and CNAME=’ ACCESS’ *以下为多选题

8.在关系代数的基本运算中,交、连接、除这三种运算可用其它五种运算来表达,以下描述正确的是( )。

A.R∩S = R – (R – S) B.R ∞XθY S = σ XθY(R×S) C.R(X, Y)÷S(Y, Z) =ПX(R)–ПX(ПX(R)×ПY(S)-R) D.R(X, Y)÷S(Y, Z) =ПX(R)–ПX(ПX(R)×ПY(S)) 9.设有学生关系:S(SNO, SNAME, SEX, AGE, DEPT)。在这个关系中,SNO表示学号,SNAME表示姓名,SEX表示性别,AGE表示年龄,DEPT表示系部。查询学生姓名和所在系的投影操作的关系运算式是( )。

A.П2, 5(S) B.σ2, 5(S) C.ПSNAME, DEPT(S) D.σSNAME, DEPT()

10.设有一个学生选课数据库,其包括学生表S、课程表C和学生选课表SC三个关系:S (SNO, SNAME, SAGE, SDEP);C (CNO, CNAME);SC (SNO, CNO, GRADE)。其中SNO是学生号,SNAME是学生姓名,SAGE是年龄, SDEP是学生所在系,CNO是课程号,CNAME是课

程名称。 “查询计算机科学系年龄介于15岁至19岁之间的学生”,其SQL语句为( )。 A.SELECT * FROM S WHERE SDEP = ‘CS’ AND SAGE BETWEEN 15 AND 19; B.SELECT * FROM S WHERE SDEP = ‘CS’ AND SAGE <= 19 AND SAGE >= 15; C.SELECT * FROM S WHERE SDEP = ‘CS’ OR SAGE BETWEEN 15 AND 19; D.SELECT * FROM S WHERE SDEP = ‘CS’ AND SAGE <= 19 OR SAGE >= 15;

C、D、A、A、D、B、A、ABC、AC、AB

考试二

如无特殊说明,本次考试所涉及的题目均基于如下描述:

设有一个学生选课数据库,其包括学生表S、课程表C和学生选课表SC三个关系: S(SNO, SNAME, SAGE, SSEX, SDEP); C(CNO, CNAME);

SC(SNO, CNO, GRADE)。

其中SNO是学生号,SNAME是学生姓名,SAGE是年龄,SDEP是学生所在系,CNO是课程号,CNAME是课程名称。

1.检索所有比“刘晨”年龄大的学生姓名、年龄和性别。正确的SELECT语句是()。 A.SELECT SNAME, SAGE, SSEX FROM S

WHERE SAGE > (SELECT SAGE FROM S WHERE SNAME = '刘晨'); B.SELECT SNAME, SAGE, SSEX FROM S WHERE SNAME = '刘晨'; C.SELECT SNAME, SAGE, SSEX FROM S

WHERE SAGE> (SELECT SAGE WHERE SNAME = \刘晨\

D.SELECT SNAME, SAGE, SSEX FROM S WHERE SAGE>'王华'.SAGE;

2. 检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是()。 A.SELECT SNO FORM SC

WHERE CNO='C2' AND GRADE >= ( SELECT GRADE FORM SC WHERE CNO='C2' ); B.SELECT SNO FORM SC

WHERE CNO='C2' AND GRADE IN (SELECT GRADE FORM SC WHERE CNO='C2'); C.SELECT SNO FORM SC

WHERE CNO='C2' AND GRADE NOT IN (SELECT GRADE FORM SC WHERE CNO='C2' ); D.SELECT SNO FORM SC

WHERE CNO='C2' AND GRADE >= ALL (SELECT GRADE FORM SC WHERE CNO='C2' );

3. 检索选修四门以上课程的学生总成绩,并要求按总成绩的降序排列出来。正确的SELECT语句是()。

A.SELECT SNO, SUM (GRADE) FROM SC GROUP BY SNO ORDER BY 2 DESC HAVING COUNT(*) >= 4;

B.SELECT SNO, SUM (GRADE) FROM SC GROUP BY SNO HAVING COUNT(*)>=4 ORDER BY 2 DESC;

C.SELECT SNO, SUM (GRADE) FROM SC HAVING COUNT(*)>=4 GROUP BY SNO ORDER BY 2 DESC;

D.SELECT SNO, SUM (GRADE) FROM SC ORDER BY 2 DESC GROUP BY SNO HAVING COUNT(*)>=4;

4. 以下对触发器概念理解正确的是()。

A. 触发器经常用于加强数据的完整性约束和业务规则等,其由事件来触发执行。

B.触发器一旦被激活,则触发动作体在触发器激活后立即执行 C.在一个数据库中,触发器的命名必须是唯一的

D.触发器类似于存储过程,需要用户手工启动或程序调用 *以下为多选题

5.“查询与‘刘晨’在同一个系学习的学生”的SQL语句为()。 A.SELECT SNO, SNAME, SAGE, SSEX, SDEP FROM S WHERE SDEP IN (SELECT SDEP

FROM S WHERE SNAME = '刘晨'); B.SELECT * FROM S WHERE SDEP IN (SELECT SDEP

FROM S WHERE SNAME ='刘晨');

C.SELECT SNO, SNAME, SAGE, SSEX, SDEP FROM S WHERE SNAME = '刘晨'; D.SELECT S1.SNO, S1.SNAME, S1.SAGE, S1.SSEX, S1.SDEP FROM S S1, S S2 WHERE S1.SDEPT = S2.SDEPT AND S2.SNAME = '刘晨'; 6.“查询计算机科学系年龄大于19岁的学生”的SQL语句为()。

A.SELECT * FROM S WHERE SDEP = ‘CS’ EXCEPT SELECT * FROM S WHERE SAGE<=19; B.SELECT * FROM S WHERE SDEP = 'CS' AND SAGE > 19; C.SELECT * FROM S WHERE SDEP = 'CS' AND SAGE <= 19; D.SELECT * FROM S WHERE SDEP != 'CS' AND SAGE <= 19;

7. 在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权、收回所授权限的关键字为()。

A.GRANT B.REVOKE C.CREATE D.DELETE *以下为判断题

8.强制存取控制的安全级别高于自主存取控制。()

9. 数据库加密技术提高了安全性的同时,增加了查询处理的复杂性,效率降低。() 10. 在参照完整性检查中,对参照表进行增、删、改操作时,有可能破坏参照完整性,而对被参照表进行增、删、改操作时,则不会破坏参照完整性。()

A、D、B、A、ABD、AB、AB、√、√、× 11. 假设有下面两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码 部门(部门号,名称,经理名,电话),其中部门号为主码

用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义: (1)定义每个模式的主码; (2)定义参照完整性;

(3)定义职工年龄不得超过60岁。

第二篇 高级篇 单元测验1 单选

1 .关系规范化中的删除异常是指( )。

A.不该插入的数据被插入 B.应该删除的数据未被删除 C.应该插入的数据未被插入 D.不该删除的数据被删除

2.已知关系模式R(A,B,C,D,E)及其函数依赖集合F={A→D, B→C, E→A },该关系模式的候选码是( )。

A.DE B.AB C.CD D.BE

3.X→Y,当下列哪一条成立时,称为平凡的函数依赖( )。 A.Y?X B.X∩Y=Φ C.X?Y D.X∩Y≠Φ

4.关系数据库的规范化理论主要解决的问题是( )。

A.如何控制不同用户的数据操作权限 B.如何构造合适的应用程序界面 C.如何构造合适的数据逻辑结构 D.如何构造合适的数据物理结构

5.数据库设计中,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的( )。

A.需求分析阶段 B.物理设计阶段 C.逻辑设计阶段 D.概念设计阶段

6.在数据库物理设计完成后,进入数据库实施阶段,下列选项中不属于实施阶段的工作是( )。 A.加载数据 B.物理实现 C.系统调试 D.数据模型优化 多选

7.给定关系模式R(A, B, C, D, E),如果存在依赖:A→B,BC→D,DE→A,则该关系模式的码为( )。 A.ACE B.BCE C.ABC D.CDE

判断

8.两个实体性之间的联系有一对一联系、一对多联系和多对多联系。而单个实体型内的联系只存在一对一、一对多联系,不存在多对多联系。( )

9.在E-R图向关系模型转换的过程中,无论是一个1:1的联系,一个1:n的联系,还是一个m:n的联系,都可以转换为一个独立的关系模式。( ) 10.关系模式的分解不唯一。( )

D、D、A、C、B、D、ABD、×、√、√ 综合题:

1.设某家电公司售后服务系统中有一个记录安装工人日工作量的关系模式: R(员工编号,姓名,电话,产品型号,日期,安装数量)

如果规定:员工每天可安装多种产品,并按不同产品型号统计安装数量。 (1)写出关系模式R的基本FD和关键码。 (2)R最高属于第几范式。 (3)将R规范到3NF。

2.某商业集团的商品进销存系统中,涉及的部分信息如下: (1)商品:商品号、商品名、规格、计量单位。 (2)供应商:供应商号、供应商名、地址。 (3)商店:商店号、商店名、地址。 (4)客户:客户号、客户名、地址。

其中,每个供应商可供应多种商品,每种商品也可向多个供应商订购,订购时要记录订购单价和订购数量;每个商店可向多个客户销售多种商品,每个客户可以从多个商店购买多种商品,每种商品也可在多个商店销售给多个客户,商品销售时要记录销售单价、销售数量和销售日期。

(1)建立一个反映上述局部应用的ER模型,要求标注联系类型(可省略实体属性)。 (2)根据转换规则,将ER模型转换为关系模型。 参考答案: 1.(1)员工编号→(姓名,电话),(员工编号,产品型号,日期)→安装数量 (2)1NF(1分)

(3)R(员工编号,姓名,电话),S(员工编号,产品型号,日期,安装数量) 2.(1)

M 商品 K 订购 L J 商店 销售 单价,数量 供应 N 供应商 H 客户 单价,数量,日期

(2)

商品(商品号、商品名、规格、计量单位) 供应商(供应商号、供应商名、地址) 商店(商店号、商店名、地址) 客户(客户号、客户名、地址)

商品订购(日期,商店号,商品号,供应商号,单价,数量) 商品销售(日期,商店号,商品号,客户号,单价,数量) 注:双线代表主键加外键

单元测验2

单选1.视图的消解属于查询处理中的( )。

A.查询优化阶段 B.查询执行阶段 C.查询分析阶段 D.查询检查阶段 2.简单的全表扫描方法的特点是( )。

A.逐一检查每个元组 B.检查效率较高 C.需要建立索引 D.需要排序 3.如果两个表都在连接属性上建立了排序,连接操作的启发式规则是( )。 A.索引连接算法 B.排序-合并算法 C.Hash Join算法 D.嵌套循环算法

4.查询选修了2号课程的学生姓名,可以用下面几个关系代数表达式表示,效率最高的为( )。 A.∏Sname (σSC.Cno = ‘2’(S∞SC))

B.∏Sname (∏Sname,SnoS∞σSC.Cno = ‘2’SC) C.∏Sname (S∞σSC.Cno = ‘2’ SC))

D.∏Sname (σS.Sno=SC.Sno ∧ SC.Cno = ‘2’(S×SC)) 5.物理优化中,连接操作的启发式规则执行顺序为( )。

(1)如果一个表在连接属性上有索引,则可以选用索引连接算法 (2)如果2个表都已经按照连接属性排序,则选择排序-合并算法

(3)如果I和II都不是用,其中一个表较小,则可以选用Hash Join算法 (4)使用嵌套循环算法,并选择其中较小的表作为外表 A.(1)(2)(3)(4) B.(2)(1)(3)(4) C.(2)(4)(1)(3) D.(1)(4)(2)(3) 多选

6.连接操作是查询处理中最常见也是最耗时的操作之一。数据库管理系统中实现连接操作的算法包括( )。

A.排序-合并算法 B.嵌套循环算法 C.索引连接算法 D.Hash Join算法

7.物理优化的目标是选择高效合理的操作算法或存取路径。以下哪些方法可用于物理优化( )。 A.基于规则的启发式优化 B.结合A和B的优化方法 C.基于查询树的启发式优化 D.基于代价估算的优化 判断

8.建立索引需要额外的存储代价,但使用索引扫描一定比简单的全表扫面效率要高。( ) 9.代数优化的目标是选择高效合理的操作算法或存取路径。( )

10.对于基于启发式规则中的选择操作,一旦处理的关系较小,即使选择列上建有索引,也使用全表顺序扫描。( )

D、A、B、B、B、ABCD、ABD、×、×、√

单元测验3 单选

1.一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是( )。

A.一致性 B.隔离性 C.持久性 D.原子性

2.表示两个或多个事务可以同时运行而不互相影响的是( )。 A.隔离性 B.持久性 C.原子性 D.一致性 3.SQL语言中的COMMIT语句的主要作用是( )。 A.提交事务 B.存储数据 C.返回系统 D.结束程序 4.在DBMS中实现事务持久性的子系统是( )。

A.恢复管理子系统 B.并发控制子系统 C.完整性管理子系统 D.安全管理子系统 5.事务日志用于保存( )。

A.对数据的查询操作 B.程序运行过程 C.对数据的更新操作 D.程序的执行结果 6.数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括( )。 A.数据字典、应用程序、日志文件 B.日志文件、数据库后备副本 C.数据字典、应用程序、数据库后备副本 D.数据字典、应用程序、审计档案 多选

7.可能破坏事务ACID特性因素有( )。

A.多个查询事务并行运行时,不同事务的操作交叉执行 B.事务在运行过程中被强行停止

C.多个更新事务并行运行时,不同事务的操作交叉执行 D.当处理多个更新事务时,不同事务的操作串行执行 8.在SQL语言中,定义事务控制的语句主要有( ) 。

A.COMMIT B.ROLLBACK C.END TRANSACTION D.BEGIN TRANSACTION

判断

9.登记日志文件时,先写数据,在写日志。( ) 10.使用静态转储可以不用建立日志文件。( ) D、A、A、A、C、B、BC、ABD、×、√ 陈述题

11. 请给出利用检查点的恢复的步骤

1)从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录)

2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST 3)从检查点开始正向扫描日志文件,直到日志文件结束 4)对UNDO-LIST中的每个事务执行UNDO操作

对REDO-LIST中的每个事务执行REDO操作 12. 试述查询优化的一般准则 (1)选择运算应尽可能先做;(2)把投影运算和选择运算同时进行;(3)把投影同其前或其后的双目运算结合起来执行;(2)把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算;(5)找出公共子表达式;(6)选取合适的连接算法。

单元测验4 单选

1.解决并发操作带来的数据不一致问题普遍采用( )技术。 A.封锁 B.协商 C.存取控制 D.恢复 2.下列不属于并发操作带来的问题是( )。 A.死锁 B.脏读 C.丢失修改 D.不可重复读 3.设有两个事务T1、T2,其并发操作如下: T1 T2

① | 读A=20 | | ② | | 读A=20 | ③ | A = A – 10写回 | | ④ | | A = A – 15写回 | 以下对上述事务执行操作结果描述正确的是( )。

A.该操作存在丢失修改 B.该操作不能重复读 C.该操作不存在问题 D.该操作“读脏数据” 4.设有两个事务T1、T2,其并发操作如下: T1 T2 ① |读A=20,B=10 | | ② | | 读A=20 | ③ | | A = A *2写回 | ④ | 读A=20,B=10 | |

以下对上述事务执行操作结果描述正确的是( ) 。

A.该操作“读脏数据” B.该操作不存在问题 C.该操作存在丢失修改 D.该操作不能重复读 5.设有两个事务T1、T2,其并发操作如下: T1 T2 ①| 读A=100 | | | A = A *2写回 | | ②| | 读A=200 | ③| ROLLBACK | | | 恢复A=100 | |

以下对上述事务执行操作结果描述正确的是( )。

A.该操作存在丢失修改 B.该操作不能重复读 C.该操作“读脏数据” D.该操作不存在问题 6.若事务T对数据对象A加上S锁,则( )。

A.事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁 B.事务T可以读A和修改A,其它事务能对A加S锁和X锁 C.事务T可以读A但不能修改A,其它事务能对A加S锁和X锁

D.事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X锁

7.在并发控制技术中,最常用的是封锁机制,基本的封锁类型有排它锁X和共享锁S,下列关于两种锁的相容性描述不正确的是( )。

A.A. X/X :TRUE B.D. X/S:FALSE C.C. S/X:FALSE D.B. S/S:TRUE 8.以下( )封锁违反两段锁协议。

A.Slock A, Slock B, Xlock C, Unlock B, Unlock C, Unlock A B.Slock A, Slock B, Xlock C, Unlock A, Unlock B, Unlock C C.Slock A, Slock B, Xlock C, Unlock C, Unlock B, Unlock A D.Slock A, Unlock A, Slock B, Xlock C, Unlock B, Unlock C

多选

9.死锁的诊断技术包括( )。

A.超时法 B.一次封锁法 C.顺序封锁法 D.事务等待图法

10.两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁,其中“两段”的含义指的是( )。 A.在第二阶段,事务可以释放任何数据项上的任何类型的锁,但不能再申请任何锁 B.在释放了一个封锁之后,事务不在申请和获得任何其他封锁

C.在对任何数据项进行读、写操作之前,首先要申请并获得对该数据项的封锁

D.在第一阶段,事务可以申请获得任何数据项上的任何类型的锁,但不能释放任何锁 判断

11.调度r1(A); r2(A); r3(B); w1(A); r2(C); r2(B); w2(B); w1(C);是冲突可串行化的。( )

12.封锁对象的大小称为封锁的粒度。在关系数据库中,封锁对象可以是一些逻辑单元,也可以是一些物理单元。( )

A、A、A、D、C、A、A、D、AD、AD、√、√ 陈述题

13. 什么是日志文件?为什么要设立日志文件?为什么要先写日志后写数据库? 参考答案:

日志文件是用来记录事务对数据库的更新操作的文件。 设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。 把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。 如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了,如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

14. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 参考答案:

并发操作带来的数据不一致性包括:丢失修改、不可重复读和读“脏”数据。 (1)丢失修改(lost update):两个事务Tl和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了) Tl 提交的结果,Tl的修改被丢失。 (2)不可重复读(Non - Repeatable Read):是指事务Tl 读取数据后,事务T2执行更新操作,使 Tl 无法再现前一次读取结果。

(3)读“脏”数据(Dirty Read):是指事务 Tl 修改某一数据,并将其写回磁盘,事务几读取同一数据后, Tl 由于某种原因被撤销,这时 Tl 已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。

避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。