数据库系统原理及应用(SQL Server 2012)配套习题答案 下载本文

A.安全性 B.完整性 C.并发控制 D.恢复 6、不允许在关系中出现重复记录的约束是通过( D )实现的。

A.CHECK B.DEFAULT C.Foreign KEY D.Primary KEY 或Unique

四、填空题

1、在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用 grant 语句,收回所授的权限使用 revoke 语句。 2、SQL中的安全性机制,主要有两个: 服务器级 和 数据库级 。

3、不允许在关系中出现重复记录的约束是通过 唯一性约束 实现的。

4、参照完整性规则,表的 外键 必须是另一个表主键的有效值,或者是空。

5、在SOL Server 2012中,连接数据库时是否需要提供用户名和密码,是由 身份验证模式 决定的。

五、简答题

1、 什么是基本表?什么是视图?两者的区别和联系是什么?

答:数据表:用于存储数据库中的数据,它由行(记录)和列(字段)组成;视图:视图是虚拟表,它可以包含来自多个表的数据;两者区别:1)视图是已经编译好的SQL语句,而基本表不是;2)视图没有实际的物理记录,而基本表有;3)基本表是内容,视图是窗口;4)基本表只用物理空间而视图不占用物理空间;5)基本表是内模式,试图是外模式;6)基本表属于全局模式中的表,是实表,视图属于局部模式的表,是虚表;7)视图的建立和删除只影响视图本身,不影响对应的基本表; 2、 简述SQL SERVER 2012 的特点。 3、 设数据库中有3个关系:

职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。

工作表WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。 公司表 COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。

试用SQL语言写出下列操作:

(1) 检索超过50岁的男职工的工号和姓名。

Select E#, ENAME from EMP where SEX=’男’ and AGE>50;

(2) 假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。

Select E#, ENAME from EMP, WORKS where EMP. E#=WORKS. E# and SEX=’男’ and SALARY>1000

(3) 假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。

Select E#, ENAME from EMP, WORKS, COMP where EMP. E#=WORKS. E# and COMP. C#=WORKS. C# and C# in (C4, C8)

(4) 检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。

Select E#, ENAME from EMP, WORKS, COMP where EMP. E#=WORKS. E# and COMP. C#=WORKS. C# and SEX=’男’ and SALARY>1000 and CNAME=’ 联华公司’ (5) 假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数,显示(E#,

NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。

Select E#, count(C#) NUM,sum(SALARY) SUM_SALARY from EMP, WORKS, COMP where EMP. E#=WORKS. E# and COMP. C#=WORKS. C# group by E#

(6) 工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工

工号。

Select E# from EMP, WORKS where EMP. E#=WORKS. E# and C# in (Select C# from WORKS where E#=’ E6’)

(7) 检索联华公司中低于本公司平均工资的职工工号和姓名。

Select E#, ENAME from EMP, WORKS, COMP where EMP. E#=WORKS. E# and COMP. C#=WORKS. C# and SALARY<(select avg(SALARY) from WORKS) and CNAME=’ 联华公司’

(8) 在每个公司中为50岁以上职工加薪100元。

Update WORKS set SALARY= SALARY+100 where E# in (Select E# from EMP where age>50)

(9) 在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。

Delete from WORKS where E# in (Select E# from EMP where age>60) Delete from EMP where age>60 4、 对于教学数据库的3个基本表

S(S#,SNAME,AGE,SEX) SC(S#,C#,SCORE)

C(C#,CNAME,TEACHER)试用SQL查询语句表示下列查询语句: (1) 统计有学生选修的课程门数。

Select count(distinct C#) from SC (2) 求选修C4课程的女学生的平均年龄。

Select avg(age) from S, SC where S. S# =SC. S# and C#= ’C4’ (3) 求LIU老师所授课程的每门课程的平均成绩。

Select avg(SCORE) from C, SC where C. C# =SC. C# and TEACHER=’LIU’ (4) 统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查

询结果按人数降序排列,若人数相同,按课程号升序排列。

Select C#,count(S#) from SC group by C# having count(S#)>10 order by count(S#) desc, C# asc

(5) 检索学号比WANG同学大,而年龄比他小的学生姓名。

Select SNAME from S where S#>( Select S# from S where SNAME=’WANG’) and AGE <( Select AGE from S where SNAME=’WANG’) (6) 在表SC中检索成绩为空值的学生学号和课程号。

Select S#,C# from SC where SCORE is null (7) 检索姓名以L打头的所有学生的姓名和年龄。

Select SNAME,AGE from S where SNAME like ‘L%’ (8) 求年龄大于女同学平均年龄的男学生姓名和年龄。

Select SNAME,AGE from S where age >(select avg(age) from S where SEX=’ 女’) and SEX=’男’

(9) 求年龄大于所有女同学年龄的男学生姓名和年龄。

Select SNAME,AGE from S where age >all(select age from S where SEX=’ 女’) and SEX=’男’

(10)往关系C中插一个课程元组。

Insert into C values(c1,’数据库系统原理’,’李成’) (11)SC中删除尚无成绩的选课元组。

Delete from SC where SCORE is null

(12)把选修LIU老师课程的女同学选课元组全部删去。

Delete from SC where C# in (select C# from C where TEACHER=’LIU’) and S# in (select S# from S where SEX=’ 女’) (13)把MATHS课不及格的成绩全改为60分。

Update SC set SCORE=60 where C# in (select C# from C where CNAME=’MATHS’) and SCORE<60

(14)把低于所有课程总平均成绩的女同学成绩提高5%。

Update SC set SCORE= SCORE*(1+0.05) where S# in (select S# from S where SEX=’ 女’) and SCORE<(select avg(SCORE) from SC)

(15)在表SC中修改C4课程的成绩,若成绩小于等于70分提高5%,若成绩大于70分时提

高4%(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE语句实现)。

(16)在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。

Update SC set SCORE= SCORE*(1+0.05) where SCORE<(select avg(SCORE) from SC)

第四章习题答案

一、选择题

1、为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是( A )。 A. 关系规范化理论 B. 关系代数理论 C.数理逻辑 D. 关系运算理论

2、下列关于函数依赖的叙述中,哪一条是不正确的( B )。

A.由X→Y,WY→Z,则XW→Z B.由XY→Z,则X→Y,Y→Z C. 由X→Y,Y→Z,则X→YZ D.由X→Y,Z∈Y,则X→Z 3、任何一个满足2NF但不满足3NF的关系模式都不存在( B )。

A.主属性对键的部分依赖 B.非主属性对键的部分依赖 C.主属性对键的传递依赖 D.非主属性对键的传递依赖 4、设有关系模式R(A,B,C),其函数依赖集:F={A→B,B→C},则关系模式R的规范化程度最高达到( B )。

A. 1NF B. 2NF C. 3NF D. BCNF 5、已知关系模式R(A,B,C,D)及其上的函数相关性集合F={A→D,B→C},该关系模式的候选关键字是( D )。

A.AC B. BC C.CD D.AB 6、两个函数依赖集F和G等价的充分必要条件是( C )。 A.F?G B. F??G C. F??G? D.F?G? 7、设关系模式R(A,B,C,D),函数依赖集F={ B→A,D→C },ρ={AB,BC,AD}是R上的一个分 解,那么分解ρ相对于F( D )。

A.既是无损连接分解,又保持函数依赖的分解

B.是无损连接分解,但不是保持函数依赖的分解

C.不是无损连接分解,但是保持函数依赖的分解 D.既不是无损连接分解,也不是保持函数依赖的分解

8、关系数据库的规范化理论指出,关系数据库中的关系应该满足一定的要求,最起码的要求是达到1NF,即满足( C )。 A.关系中的元组不可重复

B.主键属性唯一标识关系中的元组 C.每个属性都是不可分解的

D.每个非主键属性都完全依赖于主键属性 二、填空题

1、对于非规范化的关系模式,将1NF消除 非主属性对主属性的部分函数依赖 ,转换为若干个2NF关系,将2NF消除 非主属性对主属性的传递函数依赖 转换为若干个3NF关系。 2、在关系数据库的规范化理论中,对关系模式进行分解,衡量关系模式的分解是否可取的标准包括 无损连接 和 保持函数依赖 。

3、设关系模式R(A,B,C,D),函数依赖集F={ CD→A,A→B,B→C },则R的所有三个可能的候选键分别是 CD 、 AD 和 BD 。 4、设关系模式R(A,B,C,D),函数依赖集F={ CD→AB,C→B },则R的候选键是 CD , 它是属于 第三 范式的关系模式。

5、设F是函数依赖集,被F逻辑蕴涵的函数依赖的全体构成的集合,称为函数依赖集F的 闭包 ,记作 F+ 。 三、简答题:

1、理解并给出下列术语的定义:函数依赖、函数依赖集的等价、部分函数依赖、完全函数依赖、传递函数依赖、范式。

2、给出2NF、3NF、BCNF的定义,并能判断区分。

如果关系模式R∈1NF,且每个非主属性都完全函数依赖于R的主关系键,则称R属于第二范式,简称2NF,记作R∈2NF 。

如果关系模式R∈2NF,且每个非主属性都不传递函数依赖于R的主关系键,则称R属于第三范式,简称3NF,记作R∈3NF。

如果关系模式R∈1NF,且所有的函数依赖X→Y,决定因素X都包含了R的一个候选键,则称R属于BC范式,记作R∈BCNF。 3、关系模式分解需要遵循什么准则?

模式分解的准则为“无损连接性”和“保持函数依赖”。

4、设关系模式R(A,B,C,D),函数依赖集F={ D→B,B→D,A→BD,C→BD,AC→D } (1)求出R的所有候选键。 AC

(2) 求出F的最小函数依赖集Fmin。

Fmin={ D→B,B→D,A→D,C→B }

(3) 根据函数依赖关系,关系模式R属于第几范式?

第一范式

(4) 将R分解为3NF,并保持无损连接性和函数依赖性。

(A, C,D),(B,C,D)

5、设关系模式R(A,B,C,D,E),函数依赖集F={ A→D,D→B,A→C },ρ={AD,BD,CD}是R上 的一个分解。

(1)判断分解ρ是否为无损连接分解。 不是无损连接分解

(2)判断分解ρ是否保持函数依赖,如果不是,丢失了哪个函数依赖? 不是,丢失了A→C