《数据库原理及应用 课后部分习题答案.doc》由会员分享,可在线阅读,更多相关《数据库原理及应用 课后部分习题答案.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、练习题参考答案练习题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视图;内模式体现了数据库的存储观,称为系统程序员视图;外模式
2、体现了数据库的用户观,称为用户视图。用户视图有多个,而其它视图只有一个。(3)答:数据独立性是指应用程序和数据之间相对独立、不受影响,及数据结构的修改不引起应用程序修改的特性。数据独立性包括物理数据独立性和逻辑数据独立性。物理数据独立性是指数据库物理结构改变时不必修改现有的应用程序。逻辑数据独立性是指数据库逻辑结构改变时应用程序不用修改。数据独立性是由DBMS的二级映像功能来保证的。数据库系统通常采用外模式、模式、内模式三级结构,数据库管理系统在这三级模式之间提供了外模式/模式和模式/内模式两级映像,当整个系统要求改变模式(增加记录类型、增加数据项)时,由DBMS对各个外模式/模式的映像作相应
3、改变,可以使外模式保持不变,应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据的逻辑独立性。当数据的存储结构改变时,由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)B2简答题(1)答:关系是一张二维表,即元组的集合。关系框架是一个关系的属性名表。形式化表示为:R(A1,A2,An),其中,R是关系名,Ai是关系的属性名。关系之间实现联系的手段是通过关系之间的公共属性来实现联
4、系的。关系数据库是指对应于一个关系模式的所有的关系的集合。(2)本题的E-R图如下所示病历号n科名病房号床位号病房病人医生从属诊治n姓名性别工作证号E-R图姓名职称年龄科室科电话科地址入住组成n11n11(3)答:该学校的教学管理E-R图有以下实体:系、教师、学生、项目、课程。各实体属性如下:系(系编号,系名,系主任)学生(学号,姓名,性别,班号)教师(教师编号,教师姓名,职称)项目(项目编号,名字,负责人)课程(课程编号,课程名,学分)各实体之间的联系如下:教师担任课程的1:n“任课”联系教师参加项目的1:n“参加”联系学生选修课程的n:m“选课”联系系、教师和学生之间的所属关系的1:n:m
5、“领导”联系对应的E-R模型如图所示:教师编号n学号系编号系名系教师课程选修任课n教师名职称课程编号E-R图课程名学分学生姓名性别领导参加n1m1m系主任班号成绩项目项目编号名称负责人mn练习题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
6、)答:R1R2R3R4ABCABCABCR.AR.BR.CS.AS.BS.Cabcabcbafabcbacbdbafabcdacbdbafbadafbafdacbdbacbdda(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)D2
7、简答题 (1)答:它为1NF。因为该关系的候选关键字为:(工程号,材料号),而非主属性开工日期和完工日期都部分依赖与候选关键字的子集工程号,所以它不是2NF。它存在着操作异常,如果工程项目确定后,若暂时未用到材料,则该工程因缺少关键字的一部分材料号而不能进入数据库中,出现插入异常。若某工程下马,则删去该工程的操作也可能丢失材料方面的信息。将其中的部分函数依赖分解为一个独立的关系,则产生两个如下关系的2NF关系子模式。R1R2工程号材料号数量价格工程号开工日期完工日期P1I14250P1P1I26300P2P1I315180P2I16250P2I418350分解后,当新工程确定之后,尽管还未用到
8、材料,该工程数据可以在关系R2中插入。某工程数据删除时,仅对关系R2操作,也不会丢失材料方面的信息。(2)答:它是2NF。因为R的候选关键字为课程名,而“课程名教师名”,“教师名课程名”不成立,教师名教师地址,所以课程名教师地址,即存在非主属性教师地址对候选关键字课程名的传递函数依赖,因此R不是3NF。又因为不存在非主属性对候选关键字的部分函数依赖,所以R是2NF。存在删除操作异常。当删除某门课程时会删除不该删除的教师的有关信息。分解为高一级的范式如下:R1R2课程名教师名教师名教师地址C1马东马东D1C2于是之于是之D1C3刘杰刘杰D2C4于是之分解后,若删除课程数据时,仅对关系R1操作,教
9、师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。(3)答:R的候选关键字为A和DE。R中的函数依赖有:ADE,DEA。R是BCNF(4)答:令X=D,X(0)=D.在F中找出左边是D子集的函数依赖,其结果是DHG,所以X(1)= X(0)HG,显然有X(1)X(0)。在F中找出左边是DHG子集的函数依赖,未找到,则X(2)=DHG。由于X(2) = X(1),则=DGH。(5)答:的无损连接性判断表如下,由此判断不具有无损连接性。RiABCDEADa1ABa1a2BEa2a5CDEa3a4a5AEa1a1a5练习题5参考答案1单项选择题(1)D(2)B(3)B(4)D(5)C(6)C(
10、7)B(8)A(9)D(10)B2简答题(1)数据库设计是指对于一个给定的应用环境,提供一个确定的最优数据模型与处理模式的逻辑设计,以及一个确定的数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库的过程。(2)答:采用E-R方法进行数据库概念设计,可以分成3步进行:首先设计局部E-R模式,局部E-R模式综合成一个全局E-R模式,最后对全局E-R模式进行优化,得到最终的E-R模式,即概念模式。(3)答:本题对应的E-R图如:B.3所示。部门名n职工号职工部门制造商销售m经
11、理名称图B.3一个E-R图地址属于1地址姓名产品产品名产品内部编号价格型号n生产mm(4)答:汇总后的E-R图如图B4所示。各类实体的属性为:部门:部门号,部门名,电话,地址职员:职员号,职员名,职务,年龄,性别设备:设备号,名字,规格,价格零件:零件号,名字,规格,价格n职员部门零件管理m图B.4汇总后的E-R图1产品n装配mm工作生产1m练习题9参考答案第1题(1)select cno,cxq from kc where cname=大学英语(2)select * from xs where ssex=男 and sheight175(3)select * from xs where sn
12、ame like 李%(4)select sname,ssex,sdept from xs where sno in (select sno from xs_kc group by sno having avg(score)75)(5)select * from xs order by sheight desc(6)select sno from xs_kc group by sno having count(*)1(7)检索同时选修“C01”和“C04”这两门课的学生学号select distinct sno from xs_kc where sno in (select sno from
13、xs_kc where cno=c01) andsno in (select sno from xs_kc where cno=c04)或者:select distinct sno from xs_kc xwhere not exists (select * from xs_kc y where (cno=c01 or cno=c04 ) andnot exists (select * from xs_kc z where sno=x.sno and cno=o)(8)select a.sno,a.sname,o,d.zgf from xs a,(select b.sno,o,c.zgf fr
14、om xs_kc b,(select max(score) zgf,cno from xs_kc group by cno) cwhere b.score=c.zgf and o=o) dwhere a.sno=d.sno(9)select sno from xs where not exists(select * from (select cno from xs_kc where sno=001) kcwhere not exists (select * from xs_kc where sno=xs.sno and cno=o)(10)select a.* from xs a,(selec
15、t avg(score) pjf,sno from xs_kc group by sno ) bwhere a.sno=b.sno and b.pjf=90创建视图如下:create view AVG90asselect a.* from xs a,(select avg(score) pjf,sno from xs_kc group by sno ) bwhere a.sno=b.sno and b.pjf=90第2题(1)select * from 职员表(2)select 手机号码 ,工龄 from 职员表(3)select 手机号码 ,工龄 from 职员表 where 员工号=001
16、(4)select 手机号码 phoneNO,出生日期 birth_date from 职员表 where 性别=女(5)select 部门号 from 职员表 where 姓名 like 王%(6)select 员工号 from 工资表 where 应发工资 between 2000 and 3000(7)select * from 职员表 where 部门号=01(8)select 姓名 from 职员表 where 部门号=01 and (year(getdate()-year(出生日期) =all(select datediff(year,出生日期,getdate() from 职员表
17、 where 部门号=02)或者:select 姓名 from 职员表 where 部门号=01 and (datepart(year,getdate()-datepart(year,出生日期) =all(select datediff(year,出生日期,getdate() from 职员表 where 部门号=02)(9)select 姓名 from 职员表 A join 工资表 B on A.员工号=B.员工号 where 实发工资 all(select 实发工资 from 职员表 A join 工资表 B on A.员工号=B.员工号 where 部门号=01)或者:select 姓名
18、 from 职员表 A join 工资表 B on A.员工号=B.员工号 where 实发工资 (select max(实发工资) from 职员表 A join 工资表 B on A.员工号=B.员工号 where 部门号=01)(10)select 部门名=销售部,AVG(实发工资) 平均实际收入 from 职员表 A join 工资表 B on A.员工号=B.员工号 group by A.部门号 having A.部门号=01或者:select A.部门号,AVG(实发工资) 平均实际收入 from 职员表 A join 工资表 B on A.员工号=B.员工号 group by A.部门号 having A.部门号=01(11)select A.部门名,count(*) 总人数 from 部门表 A join 职员表 B on A.部门号=B.部门号 group by A.部门名 having A.部门名=销售部(12)select A.部门名,count(*) 总人数 from 部门表 A join 职员表 B on A.部门号=B.部门号 group by A.部门名