数据库原理及应用 课后部分习题答案.docx
- 文档编号:8644468
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:16
- 大小:439.41KB
数据库原理及应用 课后部分习题答案.docx
《数据库原理及应用 课后部分习题答案.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用 课后部分习题答案.docx(16页珍藏版)》请在冰豆网上搜索。
数据库原理及应用课后部分习题答案
练习题参考答案
练习题1参考答案
1.单项选择题
(1)C
(2)B(3)C(4)D(5)D
(6)A(7)B(8)B(9)C(10)A
(11)B(12)D(13)C(14)B(15)C
(16)A(17)A(18)B
2.简答题
(1)答:
文件系统中的文件是面向应用的,一个文件基本上对应于一个应用程序,文件之间不存在联系,数据冗余度大,数据共享性差,数据独立性差;数据库系统中的文件不再面向特定的某个或多个应用,而是面向整个应用系统,文件之间是相互联系着的,减少了数据冗余,实现了数据共享,数据独立性强。
(2)答:
概念模式体现了数据库的总体观,简称DBA视图;内模式体现了数据库的存储观,称为系统程序员视图;外模式体现了数据库的用户观,称为用户视图。
用户视图有多个,而其它视图只有一个。
(3)答:
数据独立性是指应用程序和数据之间相对独立、不受影响,及数据结构的修改不引起应用程序修改的特性。
数据独立性包括物理数据独立性和逻辑数据独立性。
物理数据独立性是指数据库物理结构改变时不必修改现有的应用程序。
逻辑数据独立性是指数据库逻辑结构改变时应用程序不用修改。
数据独立性是由DBMS的二级映像功能来保证的。
数据库系统通常采用外模式、模式、内模式三级结构,数据库管理系统在这三级模式之间提供了外模式/模式和模式/内模式两级映像,当整个系统要求改变模式(增加记录类型、增加数据项)时,由DBMS对各个外模式/模式的映像作相应改变,可以使外模式保持不变,应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据的逻辑独立性。
当数据的存储结构改变时,由DBMS对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据的物理独立性。
练习题2参考答案
1.单项选择题
(1)D
(2)D(3)A(4)A(5)D
(6)D(7)C(8)B(9)B(10)B
(11)A(12)C(13)A(14)B
2.简答题
(1)答:
关系是一张二维表,即元组的集合。
关系框架是一个关系的属性名表。
形式化表示为:
R(A1,A2,…,An),其中,R是关系名,Ai是关系的属性名。
关系之间实现联系的手段是通过关系之间的公共属性来实现联系的。
关系数据库是指对应于一个关系模式的所有的关系的集合。
(2)本题的E-R图如下所示
(3)答:
该学校的教学管理E-R图有以下实体:
系、教师、学生、项目、课程。
各实体属性如下:
系(系编号,系名,系主任)
学生(学号,姓名,性别,班号)
教师(教师编号,教师姓名,职称)
项目(项目编号,名字,负责人)
课程(课程编号,课程名,学分)
各实体之间的联系如下:
教师担任课程的1:
n“任课”联系
教师参加项目的1:
n“参加”联系
学生选修课程的n:
m“选课”联系
系、教师和学生之间的所属关系的1:
n:
m“领导”联系
对应的E-R模型如图所示:
练习题3参考答案
1.单项选择题
(1)C
(2)A(3)D(4)A(5)C
(6)A(7)B(8)B(9)D(10)B
(11)B(12)B(13)B(14)C(15)C
(17)C
2.简答题
(1)
答:
等值连接与自然连接的区别是:
自然连接一定是等值连接,但等值连接不一定是自然连接,因为自然连接要求相等的分量必须是公共属性,而等值连接要求相等的分量不一定是公共属性;等值连接不把重复属性去掉,而自然连接要把等值属性去掉。
(2)答:
R1
R2
R3
R4
A
B
C
A
B
C
A
B
C
R.A
R.B
R.C
S.A
S.B
S.C
a
b
c
a
b
c
b
a
f
a
b
c
b
a
c
b
d
b
a
f
a
b
c
d
a
c
b
d
b
a
f
b
a
d
a
f
b
a
f
d
a
c
b
d
b
a
c
b
d
d
a
(3)答:
因为关系模式最少是1NF,即不包含重复组且不存在嵌套结构,给出的数据集显然不可直接作为关系数据库中的关系,改造为1NF的关系如下:
系名
课程名
教师名
电力系
电路
李军
电力系
电路
刘强
动力系
传热学
金山
动力系
传热学
宋宁
机械系
材料力学
王华
计算机系
数据库
陈凯
计算机系
数据库
曾静
练习题4参考答案
1.单项选择题
(1)A
(2)A(3)A(4)B(5)B
(6)B(7)B(8)B(9)A(10)D
(11)D(12)D(13)D(14)D
2.简答题
(1)答:
它为1NF。
因为该关系的候选关键字为:
(工程号,材料号),而非主属性开工日期和完工日期都部分依赖与候选关键字的子集工程号,所以它不是2NF。
它存在着操作异常,如果工程项目确定后,若暂时未用到材料,则该工程因缺少关键字的一部分材料号而不能进入数据库中,出现插入异常。
若某工程下马,则删去该工程的操作也可能丢失材料方面的信息。
将其中的部分函数依赖分解为一个独立的关系,则产生两个如下关系的2NF关系子模式。
R1
R2
工程号
材料号
数量
价格
工程号
开工日期
完工日期
P1
I1
4
250
P1
P1
I2
6
300
P2
P1
I3
15
180
P2
I1
6
250
P2
I4
18
350
分解后,当新工程确定之后,尽管还未用到材料,该工程数据可以在关系R2中插入。
某工程数据删除时,仅对关系R2操作,也不会丢失材料方面的信息。
(2)答:
①它是2NF。
因为R的候选关键字为课程名,而“课程名→教师名”,“教师名→课程名”不成立,教师名→教师地址,所以课程名
教师地址,即存在非主属性教师地址对候选关键字课程名的传递函数依赖,因此R不是3NF。
又因为不存在非主属性对候选关键字的部分函数依赖,所以R是2NF。
②存在删除操作异常。
当删除某门课程时会删除不该删除的教师的有关信息。
③分解为高一级的范式如下:
R1
R2
课程名
教师名
教师名
教师地址
C1
马东
马东
D1
C2
于是之
于是之
D1
C3
刘杰
刘杰
D2
C4
于是之
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。
(3)答:
①R的候选关键字为A和DE。
②R中的函数依赖有:
A→DE,DE→A。
③R是BCNF
(4)答:
令X=D,X(0)=D.
在F中找出左边是D子集的函数依赖,其结果是D→HG,所以X
(1)=X(0)HG,显然有X
(1)≠X(0)。
在F中找出左边是DHG子集的函数依赖,未找到,则X
(2)=DHG。
由于X
(2)=X
(1),则
=DGH。
(5)答:
ρ的无损连接性判断表如下,由此判断不具有无损连接性。
Ri
A
B
C
D
E
AD
a1
AB
a1
a2
BE
a2
a5
CDE
a3
a4
a5
AEa1
a1
a5
练习题5参考答案
1.单项选择题
(1)D
(2)B(3)B(4)D(5)C
(6)C(7)B(8)A(9)D(10)B
2.简答题
(1)
数据库设计是指对于一个给定的应用环境,提供一个确定的最优数据模型与处理模式的逻辑设计,以及一个确定的数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库的过程。
(2)答:
采用E-R方法进行数据库概念设计,可以分成3步进行:
首先设计局部E-R模式,局部E-R模式综合成一个全局E-R模式,最后对全局E-R模式进行优化,得到最终的E-R模式,即概念模式。
(3)答:
本题对应的E-R图如:
B.3所示。
(4)答:
汇总后的E-R图如图B4所示。
各类实体的属性为:
部门:
部门号,部门名,电话,地址
职员:
职员号,职员名,职务,年龄,性别
设备:
设备号,名字,规格,价格
零件:
零件号,名字,规格,价格
练习题9参考答案
第1题
(1)selectcno,cxqfromkcwherecname='大学英语'
(2)select*fromxswheressex='男'andsheight>175
(3)select*fromxswheresnamelike'李%'
(4)selectsname,ssex,sdeptfromxswheresnoin
(selectsnofromxs_kcgroupbysnohavingavg(score)>75)
(5)select*fromxsorderbysheightdesc
(6)selectsnofromxs_kcgroupbysnohavingcount(*)>1
(7)检索同时选修“C01”和“C04”这两门课的学生学号
selectdistinctsnofromxs_kcwhere
snoin(selectsnofromxs_kcwherecno='c01')and
snoin(selectsnofromxs_kcwherecno='c04')
或者:
selectdistinctsnofromxs_kcx
wherenotexists(
select*fromxs_kcywhere(cno='c01'orcno='c04')and
notexists(
select*fromxs_kcz
wheresno=x.snoandcno=o
)
)
(8)selecta.sno,a.sname,o,d.zgffromxsa,
(selectb.sno,o,c.zgffromxs_kcb,(selectmax(score)zgf,cnofromxs_kcgroupbycno)c
whereb.score=c.zgfando=o)d
wherea.sno=d.sno
(9)selectsnofromxs
wherenotexists(select*from(selectcnofromxs_kcwheresno='001')kc
wherenotexists(select*fromxs_kcwheresno=xs.snoandcno=o))
(10)selecta.*fromxsa,
(selectavg(score)pjf,snofromxs_kcgroupbysno)b
wherea.sno=b.snoandb.pjf>=90
创建视图如下:
createviewAVG90
as
selecta.*fromxsa,
(selectavg(score)pjf,snofromxs_kcgroupbysno)b
wherea.sno=b.snoandb.pjf>=90
第2题
(1)select*from职员表
(2)select手机号码,工龄from职员表
(3)select手机号码,工龄from职员表where员工号='001'
(4)select手机号码phoneNO,出生日期birth_datefrom职员表where性别='女'
(5)select部门号from职员表where姓名like'王%'
(6)select员工号from工资表where应发工资between2000and3000
(7)select*from职员表where部门号='01'
(8)select姓名from职员表where部门号='01'and(year(getdate())-year(出生日期)>=
all(selectdatediff(year,出生日期,getdate())from职员表where部门号='02'))
或者:
select姓名from职员表
where部门号='01'and(datepart(year,getdate())-datepart(year,出生日期)>=
all(selectdatediff(year,出生日期,getdate())from职员表where部门号='02'))
(9)select姓名from职员表Ajoin工资表BonA.员工号=B.员工号where实发工资>
all(select实发工资from职员表Ajoin工资表BonA.员工号=B.员工号where部门号='01')
或者:
select姓名from职员表Ajoin工资表BonA.员工号=B.员工号where实发工资>
(selectmax(实发工资)from职员表Ajoin工资表BonA.员工号=B.员工号where部门号='01')
(10)select部门名='销售部',AVG(实发工资)平均实际收入from
职员表Ajoin工资表BonA.员工号=B.员工号groupbyA.部门号havingA.部门号='01'
或者:
selectA.部门号,AVG(实发工资)平均实际收入from
职员表Ajoin工资表BonA.员工号=B.员工号groupbyA.部门号havingA.部门号='01'
(11)selectA.部门名,count(*)总人数from部门表Ajoin职员表BonA.部门号=B.部门号groupbyA.部门名havingA.部门名='销售部'
(12)selectA.部门名,count(*)总人数from
部门表Ajoin职员表BonA.部门号=B.部门号groupbyA.部门名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理及应用 课后部分习题答案 数据库 原理 应用 课后 部分 习题 答案