《数据库原理与应用》复习题及参考答案完整版 (2)

寡言难瘾 分享 2020-06-22 下载文档

15.候选关键字中的属性称为 B 。

A.非主属性 B.主属性 C.复合属性 D.关键属性 16.消除了部分函数依赖的1NF的关系模式,必定是 B 。

A.1NF B.2NF C.3NF D.4NF 17.关系模式的候选关键字可以有 C ,主关键字有 B 。

A.0个 B.1个 C.1个或多个 D.多个

二、填空题

1、一个关系模式的定义格式为 关系名(属性名1,属性名2,?,属性名n)

2、一个关系模式的定义主要包括 关系名 、属性名、属性类型、属性长度 和关键字。 3、关系代数运算中,传统的集合运算有 笛卡尔积、并、交和差. 4、关系代数运算中,专门的关系运算有 选择、投影 和 连接。 5、关系数据库中基于数学上两类运算是关系代数和关系演算。

6.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是 系编号 ,系关系的外关键字无 ,学生关系的主关键字是学号 ,外关键字 系编码。

7.数据库的完整性是指数据的 实体完整性、参照完整性 和用户定义完整性 8、实体完整性是指在基本表中,主属性不能取空值。

9、参照完整性是指在基本表中, 外码可以是空值或者另一个关系主码的有效值。

10、为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时,DBMS就拒绝此操作 。 11、在关系A(S,SN,D)和B(D,CN,NM)中,A的主键是S,B的主键是D,则D在A中称为 外部键 12、对于满足1NF的关系模式,经过 消除非主属性对主关键字的部分依赖 转变为2NF,将2NF经过 消除非主属性对主关键字的传递依赖转变为3NF。

三、名词解释:

1、 平凡的函数依赖

在关系模式R(U)中,对于U的子集X和Y,

如果X→Y,但Y ? X,则称X→Y是非平凡的函数依赖 2、 非平凡的函数依赖

在关系模式R(U)中,对于U的子集X和Y, 若X→Y,但Y ? X, 则称X→Y是平凡的函数依赖 3. 2NF

对于满足1NF的关系模式,消除非主属性对主关键字的部分依赖即为2NF 4.3NF

对于满足1NF的关系模式,消除非主属性对主关键字的部分依赖和传递函数依赖即为3NF

四、应用题:

1.设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:

(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。 (3)检索”李强”同学不学课程的课程号(C#)。 (4)检索选修课程号为k1和k5的学生学号(S#)。

(5)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。 解:本题各个查询语句对应的关系代数表达式表示如下:

(1). ∏C#,CNAME(σTEACHER=‘程军’(C)) (2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C)) (3). ∏C#(C)- ∏C#(σSname=‘李强’(S) ?? SC)

(4).∏S# (σC#=’k1’(SC))? ∏S# (σC#=’k5’(SC))

(5). ∏S#,SNAME( σCNAME=‘C语言’(S?? SC?? C)) 2.

试问下列关系模式最高属第几范式,并解释其原因

1)R{(A,B,C,D) ,(A C, (C,D) B)} 2)R{(A,B,C,D) ,(A C, D B)} 3)R{(A,B,C) ,(A B, B A ,A C} 解:1) 候选码 (A,D)

非主属性为B和C, A C,(A,D) C) 所以存在非主属性对主码的部分函数依赖,因此不属于2NF

所以:R ∈1NF

2) 非主属性为B和C, A C,(A,D) C) 所以存在非主属性对主码的部分函数依赖,因此不属于2NF

3)

所以:R ∈1NF

第一步:确定候选码 A,B

第二步:判断是否满足BCNF(即判断决定因素是否含有码); 所以:R ∈BCNF

第4.5.6.7.8章 关系数据库标准语言SQL

一、选择题

1、SQL语言是 B 的语言,易学习。

A.过程化 B.非过程化 C.格式化 D.导航式 2、SQL语言是 C 语言。

A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 3、SQL语言具有 B 的功能。

A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵

4、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。

要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系 D 。 A.S B.SC,C C.S,SC D.S,C,SC 5、若用如下的SQL语句创建一个student表: CREATE TABLE student(NO Char(4) NOT NULL, NAME Char(8) NOT NULL, SEX Char(2), AGE int)

可以插入到student表中的是 B 。

A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL) C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23)

第6到第8题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN)

SC(S#,C#,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。

6、检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是 A A.SELECT SN,AGE,SEX FROM S C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE AGE>(SELECT AGE WHERE SN=’王华’) WHERE SN=’王华’) B.SELECT SN,AGE,SEX D.SELECT SN,AGE,SEX FROM S FROM S WHERE AGE>王华.AGE WHERE SN=’王华’

7、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 D 。 A.SELECT S# FORM SC WHERE C#=“C2” AND C.SELECT S# FORM SC GRAD>= WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC (SELECT GRADE FORM SC WHERE C#=“C2”) WHERE C#=“C2”) B.SELECT S# FORM SC D.SELECT S# FORM SC WHERE C#=“C2” AND GRADE IN WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC (SELECT GRADE FORM SC WHERE C#=“C2”) WHERE C#=“C2”)

8、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是 C 。

A.SELECT S.SN,SC.C#,SC.GRADE C.SELECT S.SN,SC.C#,SC.GRADE FROM S FROM S,SC WHERE S.S#=SC.S# WHERE S.S#=SC.S# B.SELECT S.SN,SC.C#,SC.GRADE D.SELECT S.SN,SC.C#,SC.GRADE FROM SC FROM S.SC WHERE S.S#=SC.GRADE

二、填空题

1、SQL是 结构化查询语言 。

2、视图是一个虚表,它是从 一个或几个基本表 中导出的表。在数据库中,只存放视图的 定义 ,不存放视图的 视图对应的数据. 3、设有如下关系表R:

R(No,NAME,SEX,AGE,CLASS) 主关键字是NO

其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。 写出实现下列功能的SQL语句。

①插入一个记录(25,’李明’,’男”,21,’95031’);insert into R VALUES(25,’李明’,’男’,21,’95031’)

②插入’95031”班,学号为30、姓名为’郑和’的学生记录;update R SET NAME=‘王华’WHERE NO=10 ③将学号为10的学生姓名改为’王华’; insert into R(NO,NAME,CLASS) values S(30,’郑和’,’95031’) 。

④将所有’95101’班号改为’95091’;update r set class=“95091”where CLASS=’95101’。 ⑤删除学号为20的学生记录;delete from r where no=20 。 ⑥删除姓’王’的学生记录; delete from r where name like ‘王%’ 4、索引的类型分为:唯一、聚集和非聚集索引。

三、应用题

1、设学生课程数据库中有三个关系:

学生关系S(S#,SNAME,AGE,SEX) 学习关系SC(S#,C#,GRADE) 课程关系C(C#,CNAME)

其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。

用SQL语句表达下列操作

(1)检索选修课程名称为“MATHS”的学生的学号与姓名 (2)检索至少学习了课程号为“C1”和“C2”的学生的学号

(3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄 (4)检索平均成绩超过80分的学生学号和平均成绩

(5)检索选修了三门课以上的学生的姓名 答案:

(1)select S.S#, SNAME

from S,SC,C where S.S#=SC.S# AND C.C#=SC.C# (4) select S# ,AVG(GRADE) ‘平均成绩’

FROM SC AND CNAME=’ MATHS’

(2) SELECT S# Group by S# FROM SC Having AVG(grade)>80

Where CNO=’C1’ AND S# IN

( SELECT S# (5) select Sname

FROM SC FROM S,SC

where S.S#=SC.S# WHERE CNO=’C2’)

(3)SELECT S#,SNAME,AGE Group by Sname

FROM S Having COUNT(*)>3 WHERE AGE BETWEEN 18 AND 20 2、试用SQL语言完成下列项操作:

(1)创建一个计科系学生信息视图S_CS_VIEW,包括Sno学号、Sname姓名、Ssex性别; (2)通过上面第2题创建的视图修改数据,把王平的名字改为王慧平

(3)创建一选修数据库课程信息的视图,视图名称为datascore_view,包含学号、姓名、成绩。 答案: WHERE SNAME=’ 王平’ (1) create view S_CS_VIEW (3) create VIEW datascore_view as as select Sno,Sname,Ssex select SNO 学号、SNAME 姓名、GRADE 成绩 from student From student,SC,Course where Sdept=’CS’ where Student.SNO=SC.SNO (2)update S_CS_VIEW and Course.CNO=SC.CNO set Sname=’ 王慧平’ and CNAME=’ 数据库’


《数据库原理与应用》复习题及参考答案完整版 (2).doc 将本文的Word文档下载到电脑

下一篇:中教模拟上课评分标准

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx