数据库系统原理04735课后习题答案.docx
《数据库系统原理04735课后习题答案.docx》由会员分享,可在线阅读,更多相关《数据库系统原理04735课后习题答案.docx(26页珍藏版)》请在冰豆网上搜索。
数据库系统原理04735课后习题答案
数据库系统原理04735课后习题答
第一章.数据库系统基本概念
1.1.名词解释(省略)
1.2.人工管理阶段的数据管理有哪些特点?
1)数据不保存在计算机里
2)没有专门的软件进行对数据库管理
3)只有程序概念,没有文件概念
4)数据面向程序
1.3.文件系统阶段的数据管理有哪些特点?
1)数据以文件形式长期存储在外部存储器的磁盘上
2)数据的逻辑结构和物理结构有了区别,但比较简单
3)文件组织多样化,有了索引文件、链接文件和直接存取文件等
4)数据不再属于某个特定程序,可重复使用,即数据面向应用
5)对数据的操作以记录为单位
1.4.文件系统阶段的数据管理有哪些缺陷?
请举例说明?
1)数据冗余、数据不一致、数据联系弱
2)比如建立了职工档案、职工工资和职工保健三个文件,职工的电话在三个文件中重复出现,即数据冗余。
1.5.数据管理的数据库阶段产生的标志是哪三件事情?
1)1968年IBM公司推出层次模型IMS系统
2)1969年美国CODASYL组织发布了DBTG报告
3)1970年IBM公司的E.F.Codd连续发表论文,提出关系模型
1.6.数据库阶段的数据管理有哪些特色?
1)采用了数据模型表示复杂的数据结构
2)有较高的数据独立性
3)数据库系统提供了方便的用户接口
4)数据库系统提供了四个方面的数据控制功能:
数据库的恢复、数据的并发控制、数据的完整性、数据完全性。
5)增加了系统的灵活性:
对数据的操作不一定以记录为单位,可以以数据项为单位。
1.7.高级数据库阶段有哪些技术?
面向对象的概念建模、开放数据库互联技术
1.8.逻辑记录与物理记录,逻辑文件与物理文件有哪些联系和区别?
数据描述有两种形式:
物理数据描述和逻辑物理描述。
物理数据描述是指数据在存储设备上的描述,物理数据是存储在物理设备上的数据,物理记录和物理文件都是用来描述存储数据的细节。
逻辑数据描述是用户或程序员以操作的数据形式的描述,逻辑记录和逻辑文件都是用户观点的数据描述。
1.9.数据抽象过程有哪些步骤?
1)根据用户的需求,设计数据的概念模型。
2)根据转换原则,把概念模式转换成逻辑模型。
3)根据用户的业务特点,设计不同的外部模型,供程序员使用。
4)根据逻辑模型设计内部模型,实现数据库。
1.10.概念模型、逻辑模型、外部模型、内部模型各具有哪些特点?
概念模型:
表达了数据的整体逻辑结构,它是系统用户对整个应用程序涉及数据的全面描述。
从用户的需求的观点,对数据建模。
独立于硬件和软件。
它是数据库设计人员和用户之间的交流工具。
逻辑模型:
表达了数据库的整体逻辑结构,它是设计人员对整个应用程序系统项目数据库的全面描述。
从数据库实现的观点,对数据建模。
独立于硬件,但依赖软件DBMS。
它是数据库设计人员和应用程序员的交流工具。
外部模型:
逻辑模型的一个逻辑子集,独立于硬件,但依赖软件,反映了用户使用数据库的观点。
内部模型:
是数据库最底层抽象,它描述数据在外存上存储方式、存储设备和存储方法。
与硬件和软件关系密切。
1.11.试叙述层次、网状和关系三种逻辑模型的区别
层次模型:
用树型结构表示,较复杂,表示1:
N,记录间联系用指针实现,过程性DML;
网状模型:
用向图结构表示,较复杂,表示1:
N/M:
N,记录间联系用指针实现,过程性DML;
关系模型:
用关系模式集合表示,较简单,表示1:
N/M:
N,记录间联系用关键码实现,非过程性DML;
1.12.外部模型使数据库系统有哪些优点?
简化了用户观点;
有助于数据库的安全保护;
外部模型是对概念模型的支持;
1.13.数据独立性和数据联系这两个概念有什么区别?
数据独立性是指应用程序和数据之间相互独立,不受影响。
数据联系是指同一记录内部各字段间的联系,以及和记录之间的联系。
1.14.试叙述用户、DB的三级模式结构、磁盘上的物理文件之间有些什么联系和不同?
在用户到数据库之间,DB的数据结构有三个层次:
外部模型、逻辑模型、内部模型。
这三个层次要用DB的数据定义语言定义后的内容是外模式、逻辑模式、内模式。
用户使用DB的数据操纵语句实际上是对外模式的外部记录进行操作,而不是数据库的内部记录值;逻辑模式提供了连接内外模式的中间观点,使得两级中任何一级的改变都不受另一级的牵制,逻辑模式不涉及到存储结构、访问技术等细节。
内模式并不涉及物理设备的约束,那一部分由操作系统完成。
如磁盘读写数据的操作。
1.15.试述DBMS的工作模式和主要功能。
DBMS的工作模式:
1)接受应用程序的数据请求和处理请求
2)将用户的数据请求转换成复杂的机器代码
3)实现对数据库的操作
4)从对数据库的操作中接受查询结果
5)对查询结果进行处理
6)将处理结果返回用户
DBMS主要功能:
数据库的定义功能
数据库的操纵功能
数据库的保护功能
数据库的维护功能
数据字典
1.16.什么是DB的系统缓冲区?
其作用是什么?
DBMS为应用程序在内存中开辟的一个DB的系统缓冲区。
用于数据的传输和格式的转换。
1.17.DBS由哪几部分组成?
它有哪些系统软件?
其中DD有什么作用?
DBS由DB、硬件、软件、DBA组成
它有DBM、OS、各种主语言和应用开发软件等系统软件
DD是用来存放三级数据结构定义的数据库,用来存储数据运行时的统计信息。
1.18.什么是DBA?
DBA应具有什么素质?
DBA的职责是什么?
DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。
DBA需具有下来素质:
熟悉全部数据的性质和用途、对所有用户需求的了解、对系统性能的熟悉度、兼有系统分析员和运筹学专家的知识和品质。
DBA的职责:
定义模式、定义内模式、与用户的联络、定义安全性规则,对用户访问数据库授权、定义完整性规则,监督数据库的运行、数据库的转储和恢复工作。
1.19.试对DBS的全局结构作详细解释。
用户、DBMS(查询处理器、存储管理器)、磁盘存储器
1.20.从模块结构观察,DBMS由哪些部分组成?
查询处理器、存储管理器
1.21.使用DBS的用户有哪几类?
DBA、专业用户、程序员、终端用户
1.22.DBMS的查询处理器和存储管理器分别由哪几部分组成?
查询处理器:
DDL解释器、DML编译器、嵌入式DML预编译器、查询求值引擎
存储管理器:
权限和完整性管理器、事务管理器、文件管理器、缓冲区管理器
1.23.磁盘存储器中有哪五类主要的数据结构?
1)数据文件:
存储数据库管理的用户数据自身。
2)数据字典:
存储三级结构的描述。
3)索引:
为提高查询速度而设置的逻辑排序手段。
4)统计数据:
存储DBS运行时统计分析的数据。
5)日志:
存储DBS运行时对DB的操作情况。
1.24.DBS能产生哪些效益?
灵活性、简易性、面向用户、加快应用程序的开发速度、维护方便、标准化
第二章.数据库设计和ER模型
2.1名词解释(省略)
2.2数据库设计的规划阶段应做哪些事情?
1)系统调查。
画出应用单位组织结构图。
2)可行性分析。
从技术、经济、效益、法律等各方面可行性进行分析,写出可行性分析报告,组织专家讨论。
3)确定数据库系统的总目标,对应用单位的工作流程进行优化,制订项目开发计划。
获得决策部门批准后,正式进入数据库系统开发。
2.3数据库设计的需求分析阶段工作主要由哪四步组成?
1)分析用户活动,产生业务流程图
2)确定系统范围,产生系统关联图
3)分析业务活动所涉及的数据,产生数据流图
4)分析系统数据,产生数据字典
2.4在数据库设计中,为什么要有概念设计这一阶段?
使设计人员从用户的观点看待数据和处理需求、约束,产生反映用户观点的概念模型。
将概念模设计从设计过程中独立开来,可以使数据库设计各阶段任务单一化,减少复杂度,便于组织管理,能较好地适应各种变化,转换成关系模式。
2.5试述概念设计的主要步骤?
1)进行数据抽象(聚集和概括方法),设计局部概念模型
2)将局部概念模型综合成全局概念模型(消除冲突)
3)评审(用户、DBA和开发人员评审)
2.6逻辑设计的目的是什么?
试述逻辑设计阶段主要步骤及内容
逻辑设计的目的是将概念模型转换成与所选用的具体机器上所支持的数据模型相符合的逻辑模型。
逻辑设计阶段主要步骤:
1)将概念模型转换成逻辑模型
2)设计外模式
3)设计应用程序和数据库接口
4)评价模型(定量分析:
处理频率、数据容量、性能测量)
5)修正模型
2.7什么是数据库结构的物理设计?
试述其具体步骤。
物理设计是对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程。
数据库的物理结构主要指数据库存储记录格式、存储记录安排、存取方法。
具体步骤:
1)存储记录结构设计:
包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。
2)确定数据存放位置:
可以把经常同时访问的数据组合在一起。
3)存取方法设计:
存取路径分为主存取路径与辅存取路径,前者用于主键检索,后者用于辅助键检索。
4)安全性和完整性考虑。
5)程序设计。
2.8数据库实现阶段主要有哪几件事情?
1)定义数据结构
2)数据装载:
人工(刷选数据、转换数据格式、输入数据、校验数据)和计算机装载(筛选数据、输入数据、效验数据、转换数据、综合数据)
3)编制和调试应用程序
4)数据库试运行。
2.9数据库系统投入运行后,有哪些维护工作?
1)数据库的转储和恢复。
2)数据库的安全性、完整性控制。
3)数据库性能的监督、分析、改进。
4)数据库的重组织和重构造。
2.10在概念设计中,如何把多值属性变换成系统容易实现的形式?
将原来的多值属性用几个新的单值属性表示。
将原来的多值属性用一个新的实体类型表示。
2.11对联系类型有哪两种约束?
试详细解释?
联系类型的约束限制了参与联系的实体数目,有技术约束和参数约束。
技术约束表示了一个联系的实体的个数约束,通过映射基数来表达,有1:
1,1:
N,M:
N,M:
1四种。
参与约束表示了实体集中是部分实体还是全部实体参与联系集中的联系。
有部分参与和完全参与两种。
2.12采用ER模型的数据库概念设计有哪些主要的步骤?
1)设计局部ER模型(确定局部结构范围、定义实体、定义联系、分配属性)
2)设计全局ER模型(确定公共实体类型、合并局部ER模型、消除冲突)
3)全局ER模型优化(合并实体类型、消除冗余属性、消除冗余联系)
2.13在关系模型中,关系具有哪些性质
1)关系中的每个属性值都是不可分解的。
2)关系中不允许出现重复组。
3)由于关系是一个集合,因此不考虑元祖间的顺序,即没有行序。
4)元祖的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。
2.14为什么关系中的元组没有先后顺序?
且不允许有重复的元组?
因为关系是一个元祖的集合,而元祖在集合中的顺序无关紧要,即没有行序。
集合中的元素不允许重复出现,因此关系中的元组不能重复,可以用键来标识唯一的元组。
2.15参照完整性规则使用时,有哪些变通?
试举例说明。
1)外键和相应的主键可以不同名,只要定义在相同的值域上即可。
2)R1和R2可以是同一个关系模式,此时表示同一个关系中不同元组间的联系。
3)外键值是否允许为空,视具体情况而定。
2.16
商店
商品
职工
商店(商店编号,店名,地址)
商品(商品编号,商品名,规格,价格)
职工(职工号,职工名,性别,业绩,商店编号)
销售(销售单号,商店编号1,商品编号)
2.17略
2.18略
2.19ER图转换成关系模式集的具体思想是什么?
1)实体类型的转换:
将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标示符即为关系模式的键。
2)联系类型的转换:
二元联系类型的转换:
a)如果实体间联系是1:
1:
1,在任意一个实体模型中加入另两个实体的主键作为外键。
b)如果实体间联系是1:
1:
N,在多方实体模式中加入两个1方的主键作为外键。
c)如果实体间联系是1:
M:
N,把联系类型转换为关系模式,其属性为M和N方实体类型的键(作为外键)加上联系类型的属性,而主键为M和N方主键的组合。
d)如果实体间联系是M:
N:
P,其属性为三方实体类型的键(作为外键)加上联系类型的属性,而主键为三方主键的组合。
2.20采用ER模型的数据库逻辑设计有哪些步骤?
导出初始化关系模式集、规范化处理、模式评价、模式修正、设计子模式。
2.21略
2.22图略
仓库(仓库号,仓库名,地址,负责人)
业务员(业务员编号,姓名,性别)
商店(店号,店面,地址)
商品(品号,品名,价格,规格)
收银员(工号,姓名,性别,年龄,店号)
经理(经理编号,姓名,性别,店号,工号)
供应(供应单号,仓库号,店号,经手人)
销售(销售单号,商品号,店号,经手人)
进货(进货单号,商品号,业务员编号)
2.23略
2.24图略
行车人员(驾驶执照号,姓名,地址,电话,邮编)
车辆(机动车牌照号,型号,生产日期,制造厂)
处罚方法(处罚编号,警告,处罚,暂扣驾驶执照)
违章(违章编号,驾驶执照号,机动车牌照号,处罚编号)
第三章.关系模式设计理论
3.1.略
3.2.试解释下面两个“数据冗余”的概念:
文件系统中不可避免的“数据冗余”
关系数据库设计中应尽量避免的“数据冗余”
文件系统中的“数据冗余”:
由于在文件之间缺乏联系,造成每个应用程序都有相应的文件,有可能同样的数据在不同文件中重复存储。
关系数据库设计中的“数据冗余”:
数据库某一关系中多个元组大量重复存储同样的属性。
3.3.关系模式的非形式化设计准则有哪几条?
这些准则对数据库设计有什么帮助?
1)尽可能指包含直接联系的属性,不要包含间接联系的属性。
2)尽可能使得相应关系中不出现插入、删除、修改异常现象。
3)尽可能使得相应关系中避免放置经常为空值的属性。
4)尽可能使得关系的等值连接在主键和外键的属性上进行,并保证以后不会产生额外的元组。
3.4.对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么?
1)一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]必有t1[φ]=t2[φ]。
即X→φ表示空属性函数依赖于X。
这是任何关系中都存在的。
2))φ→Y表示Y函数依赖于空属性。
由此可知该关系中所有元组中Y属性的值均相同。
3)φ→φ表示空属性函数依赖于空属性。
这也是任何关系中都存在的。
3.5.略
3.6.略
3.7.已知关系模式R(ABC),F={A→B,B→C},求F+。
(有43个FD)
F+={φ→φ,A→φ,B→φ,C→φ,A→B,B→C,A→C,AB→φ,AB→A,AB→B,AB→C,AB→BC,AB→AB,AB→ABC,BC→φ,BC→C,BC→B,BC→BC,AC→φ,AC→C,AC→A,AC→AC,ABC→φ,ABC→A,ABC→B,ABC→C,ABC→BC,ABC→AB,ABC→ABC}
3.8.略
3.9.略
3.10.略
3.11.略
3.12.略
3.13.略
3.14.略
3.15.略
3.16.什么是寄生元组?
什么是悬挂元组?
各是怎么产生的?
在泛关系模式分解成数据库模式时,泛关系r在数据库模式中的每一个模式上投影再连接起来,比原关系r多出来的元组是寄生元组。
在无泛关系模式下,对两个关系进行自然连接中被丢失的元组,被称为悬挂元组。
3.17.
3.18.试解释数据库“丢失信息”与“未丢失信息”两个概念。
有什么区别?
分解后是否表示一样的信息,如不一样就是丢失信息,否则就是未丢失信息。
后面题目省略
第四章.关系运算
这章没怎么看懂!
答案较简单
4.1.略
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.
4.9.
4.10.
教师关系T(T#,TNAME,TITLE)
课程关系C(C#,CNAME,T#)
学生关系S(S#,SNAME,AGE,SEX)
选课关系SC(S#,C#,SCORE)
1)检索年龄小于17岁的女学生的学号和姓名。
πS#,SNAME(σage<17∧sex=’女’(S))
2)检索男学生所学课程的课程号和成绩
πC#,score(σsex=’男’∧σS.S#=SC.S#(SC
C))
3)检索男学生所学课程的任课教师的工号和姓名
πt#,tname(σsex=’男’(S
SC
C
T))
4)检索至少选修两门课的学生学号
π1(σ1=4∧2!
=5(SC×SC))
5)检索至少有学号为S2和S4学生选修的课程的课程号
Π2(σ2!
=5∧1=’’S2∧4=’S4’(SC×SC))
6)检索wang同学不学的课程号
Πc#(C)-Πc#(σsname=’wang’(S
SC))
7)检索全部学生都选修的课程的课程号和课程名
Πc#,cname(C
(Πc#,s#(SC)÷Πs#(S)))
8)检索选修课程包含liu老师所授全部课程的学生学号
Πs#(σtname=’liu’(SC
C
T))
4.11.略
4.12.略
4.13.为什么要对关系代数表达式进行优化?
对于等价的关系表达式,因表达式中安排选择、投影、连接的顺序不同而执行效率也不一样。
4.14.有哪三条启发式规则?
对优化起什么作用
尽可能早地执行选择操作
尽可能早地执行投影操作
避免直接做笛卡尔积
作用:
合理安排操作顺序,节省时间和空间
4.15.略
第五章.SQL语言
5.1.略
5.2.略
5.3.
设教学数据库中有四个关系:
教师关系T(t#,tname,title)
课程关系C(c#,cname,t#)
学生关系S(s#,sname,age,sex)
选课关系SC(s#,c#,score)
试用SQL的查询语句表示下列查询:
(1)检索年龄小于17岁的女学生的学号和姓名。
selects#,snamefromSwhereage<17andsex=’女’
(2)检索男学生所学课程的课程号和成绩。
selectc#,scorefromS,SCwhereS.s#=SC.s#
andsex=’男’
(3)检索男学生所学课程的任课教师的工号和姓名。
selectt#,tnamefromS,SC,C,TwhereS.s#=SC.s#
andSC.c#=C.c#andC.t#=T.t#andsex=’男’
(4)检索至少选修两门课的学生学号。
selects#fromSCgroupbys#havingcount(*)>2
(5)检索至少有学号为S2和S4学生选修的课程的课程号。
selectc#fromSC,SwhereS.s#=SC.s#
andS.s#=’S2’orS.s#=’S4’
(6)检索wang同学不学的课程号。
(7)检索全部学生都选修的课程的课程号和课程名。
(8)检索选修课程包含liu老师所授全部课程的学生学号。
5.4.
设教学数据库中有四个关系:
教师关系T(t#,tname,title)
课程关系C(c#,cname,t#)
学生关系S(s#,sname,age,sex)
选课关系SC(s#,c#,score)
试用SQL的查询语句表示下列查询:
(1)统计有学生选修的课程门数。
SELECTCOUNT(DISTINCTC#)
FROMSC
(2)求选修C4课程的女学生的平均年龄。
SELECTAVG(AGE)
FROMS,SC
WHERES.S#=SC.S#ANDC#='004'ANDSEX=’F’;
或者,SELECTAVG(AGE)
FROMS
WHERESEX=’F’ANDS#IN
(SELECTS#
FROMSC
WHEREC#='C4');
(3)求LIU老师所授课程的每门课程的学生平均成绩。
SELECTCNAME,AVG(SCORE)
FROMT,C,SC
WHERET.T#=C.T#ANDSC.C#=C.C#ANDTNAME='LIU'
GROUPBYC#;
(4)统计每门课程的学生选修人数(超过10人的课程才统计)。
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
SELECTDISTINCTC#,COUNT(S#)
FROMSC
GROUPBYC#
HAVINGCOUNT(S#)>10
ORDERBY2DESC,C#ASC
(5)检索学号比WANG同学大,而年龄比他小的学生姓名。
SELECTX.SNAME
FROMSASX,SASY
WHEREY.SNAME='WANG'ANDX.S#>Y.S#ANDX.AGE(6)在表SC中检索成绩为空值的学生学号和课程号。
SELECTS#,C#
FROMSC
WHERESCOREISNULL
(6)检索姓名以WANG打头的所有学生的姓名和年龄。
SELECTSNAME,AGE
FROMS
WHERESNAMELIKE'WANG%'
(8)年龄大于女同学平均年龄的男学生姓名和年龄。
SELECTSNAME,AGE
FROMSASX
WHERE X.SEX='男'ANDX.AGE>(SELECTAVG(AGE)
FROMSASY
WHEREY.SEX='女');
(9)求年龄大于所有女同学年龄的男学生姓名和年龄。
SELECTSNAME,AGE
FROMSASX
WHEREX.SEX='男'ANDX.AGE>ALL(SELECTAGE
FROMSASY
WHEREY.SEX='女')
5.5.
5.6.
5.7.预处理方式对于嵌入式SQL的实现有什么重要意义?
识别出SQL语句,并处理成函数调用形式
5.8.主语言的程序中使用SQL语句有哪些规定?
在程序中要区分SQL语句与主语言语句
允许嵌入的SQL语句引用主语言的程序变量
SQL的集合处理方式与主语言的单记录处理方式之间的协调
5.9.SQL的集合处理