发布时间 : 星期日 文章《数据库原理》模拟试题三答案更新完毕开始阅读de13ab1714791711cc791707
《数据库原理》模拟试题三答案 一. 填空题(每空1分,共10分)
1、数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段。
2、数据模型是数据库系统的核心和基础,它通常由数据结构、数据操作和完整性约束三部分组成。 3、层次模型和网状模型统称为非关系模型。
4、两个实体型之间的联系可分为三类:一对多联系、一对多联系和多对多联系。
5、Armstrong推理规则指自反律、增广律和传递律。
二. 简答题(每题5分,共30分)
1、 试述关系和关系模式的概念。
答:(1)关系:
定义1:即一张二维表。
定义2:D1×D2×?×Dn的子集叫做在域D1,D2,?,Dn上的关系,表示为: R(D1,D2,?,Dn) (2)关系模式:
定义1:对关系的描述,一般表示为:关系名(属性1,属性2,?,属性n)。
定义2:对关系的描述,可以形式化地表示为R(U,D,dom,F),其中R为关系名,U为组成该关系地属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。
2、 试述数据库系统的三级模式结构。
答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
(1)模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。
(2)外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。
(3)内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
3、 什么是函数依赖?什么是传递函数依赖?
答:(1)函数依赖:设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记为X→Y。 (2)传递函数依赖:在R(U)中,如果X→Y,(Y?X),Y→X,Y→Z,则称Z对X传递函数依赖。
4、 DBA的职责是什么?
答:(1)决定数据库中的信息内容和结构;
(2)决定数据库的存储结构和存取策略;
(3)定义数据的安全性要求和完整性约束条件; (4)监控数据库的使用和运行; (5)数据库的改进和重组重构。
5、 数据库管理系统的主要功能有哪些?
答:(1)数据定义功能; (2)数据操纵功能; (3)数据库的运行管理;
- 1 -
(4)数据库的建立和维护功能。
6、 关系代数的基本运算有哪些?
答:关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算:
(1) 传统的集合运算:包括并、交、差、广义的笛卡儿积
四种运算;
(2) 专门的关系运算:包括选择、投影、连接、除等。
三. SQL语言操作(每题2分,共34分)
(1) 查询读者张平的所在单位。
select 姓名,单位 from 读者
where 姓名=“张平”;
(2) 查找人民出版社和科学出版社的所有图书及作者。
select书名,出版单位,作者 from 图书
where 出版单位=“人民出版社” or 出版单位=“科学出版社”;
(或:where 出版单位 in(“人民出版社”,“科学出版社”);
(3) 查找价格介于10元和15元之间的图书,结果按单价
降序排列。 Select * from 图书
where 单价>=10 and 单价<=15
(或:where 单价 between 10 and 15) order by 单价 desc;
(4) 查找所有借阅了图书的读者姓名及借阅日期。
select 姓名,借阅日期 from读者,借阅
where 读者.借书证号=借阅.借书证号;
(5) 查找价格在20元以上已借出的图书,结果按单价升
序排列。 select *
from 借阅,图书
where图书.总编号=借阅.总编号 and 单价>=20 order by 单价 asc; 或:select * from 图书
where 单价>=20 and 总编号 in (select 总编号 from 借阅)
order by 单价 asc;; 或:select * from 图书
where 单价>=20 and exists (select * from 借阅
where图书.总编号=借阅.总编号) order by 单价 asc;;
(6) 找出藏书中所有与“数据库原理”在同一个出版单位
出版的图书。 Select * from 图书
where 出版单位= (select出版单位 from图书
where 书名=“数据库原理”);
(7) 求计算机科学系的读者人数。
Select count(*)
- 2 -
from 读者
where 单位=“计算机科学系”;
(8) 求各出版社图书的最高价格、最低价格和平均价格。 Select 出版单位,max(单价),min(单价),avg(单价) from 读者
where借书证号 in (select 借书证号 from 借阅
from 图书
group by出版单位;
(9) 找出没有借阅任何图书的读者及所在单位。 select 姓名,单位 from 读者
where not exists (select * from 借阅
where 读者. 借书证号=借阅.借书证号); (10) 找出借阅了“数据结构”一书的读者姓名及所在单位。 select 姓名,单位
from 读者,借阅,图书
where 读者.借书证号=借阅.借书证号 and图书.总编号=借阅.总编号 and 书名=“数据结构”; 或:select姓名,单位 from 读者
where借书证号 in (select 借书证号 from 借阅
where总编号 in (select 总编号 from 图书
where书名=“数据结构”));
(11) 找出当前至少借了5本图书的读者姓名及所在单位。 select 姓名,单位
group by借书证号
having count(*)>=5);
(12) 向图书基本表中新加一个元组:(“446943”,
“TP31/138”,“计算机基础”,“杨大华”,“高等教育出版社”,17.10); insert into 图书 values (“446943”,“TP31/138”,“计算机基础”,“杨大华”,“高等教育出版 社”,17.10); (13) 将书名为“计算机网络”的书分类号改为“TP31/138”。 Update 图书
set 分类号=“TP31/138” where 书名=“计算机网络”;
(14) 删除借书证号为“9011100”的读者的借阅记录。 Delete from 借阅
where 借书证号=“9011100”;
(15) 将查询读者表和修改职称属性的权限授予用户李伟。 Grant select ,update(职称) on table 读者 to 李伟; (16) 把对图书表的INSERT权限授予用户张红和李娜。 Grant insert on table 图书 to 张红,李娜; (17) 将李伟查询读者表的权限收回。
Revoke select on table 读者 from 李伟;
四. 针对第三题中的图书管理关系模型,用关系代数完成下列查询(每题2分,共10分)
- 3 -
1、查询读者张涛的信息。
σ姓名=“张涛”
(读者)
2、查询人民出版社的所有图书信息。
σ出版单位=“人民出版社”
(图书)
3、 查询借阅了“C++”的读者姓名。
π姓名
(读者∞借阅∞σ
书名=“C++”
(图书))4、 查询读者王华所借图书的单价。
π
单价
(图书∞借阅∞σ
姓名=“王华”
(读者))5、 查询至少借阅了总编号为“445611”和“332166”的
图书的读者的借书证号。
建立一个临时关系K: 总编号 445611 332166
π
借书证号,总编号
(借阅)÷K
五. 规范化(10分)
设有关系模式S_L_C(S#,SD,SL,C#,G),其中S#为学号,SD为学生所在系,C#为学生选修的课程号,G为选修成绩,SL为学生的住处,并规定每个系的学生只住一个地方,问:
(1) S_L_C的候选码是什么?(4分)
(2) S_L_C是否属于2NF?若属于,请说明原因;若不属
于,请说明原因并找出解决方案。(6分)
答:(1)候选码为(S#,C#)。(4分) (2)函数依赖有:
(S#,C#) F G
S# →SD,(S#,C#) P SD S# →SL,(S#,C#) P SL
SD→SL
可以看到非主属性SD,SL并不完全函数依赖于码。因此,关系模式S_L_C(S#,SD,SL,C#,G)不符合2NF定义,即S_L_C∈2NF。
解决方法:用投影分解把关系模式S_L_C分解为两个关系模式:
SC(S#,C#,G) S_L(S#,SD,SL)
六. 计算题(6分)
已知关系R〈U,F〉,U={A,B,C,D,E},F={AB→C,B→D,C→E,EC→B,AC→B}求(AB)+F。 解:设X(0)=AB;
X(1)=AB∪CD=ABCD
因为X(1)≠X(0),再求X(2)= X(1)∪BE=ABCDE; X(2)=U,所以(AB)+F=ABCDE。
- 4 -