数据库系统概论课后题答案

数据库系统概论课后题答案,第1张

9.答:(1)首先画出一些重的函数依赖,所有这些函数依赖都是根据习题的文字说明和语义假设导出。 语义假设如下:

1)一个职工不能同时成为多个部门的领导人; 2)一个职工不能同在在多个部门就职; 3) 一个职工不能同时参加多个生产项目;

4) 一个职工不能同时在两个不同的办公室办公; 5) 一个职工不能同时拥有两部或两部以上的电话;

AREA

DBUDGET

OFF#DEPT#MGR_EMP#

PHONE#EMP#PROJ#PBUDGET#

JOBTITLE

DATE

SALARY

6)一个生产项目不能同时分配给多个部门; 7)一个办公室不能同时分配给多个部门;

8)部门号、职工号、项目号、办公室号及电话号码是全局惟一的。 (2)先按照图5。12设计一组关系模式,它们都是属于INF的。 DEPT(DEPT#,DBUDGET,MGR_EMP#) PRIMARY KEY(DEPT#)

DEPT#和MGR_EMP#都是候选码,把DEPT#作为主码。

F={DEPT#→DBUDGET,DEPT#→MGR_EMP#,MGR_EMP#→DEPT#} EMPI(EMP#,DEPT#,PROJ#,OFF#,PHONE# PRIMARY KEY (EMP#)

F={EMP#→DEPT#,EMP#→PROJ#,EMP#→OFF#,EMP#→PHONE#,PHONE#→OFF#,OFF#→DEPT#,PROJ#→DEPT#} JOB(EMP#,JOBTITLE)

PRIMARY KEY(EMP#,JOBTITLE)

F={EMP#,JOBTITLE→EMP#,EMP#,JOBTITLE→JOBTITLE} SALHIST(EMP#,JOBTITLE,DATE,SALARY) PRIMARY KEY (EMP#,DATE)

F={EMP#,DATE→JOBTITLE,EMP#,DATE→SALARY} PROJ(PROJ#,DEPT#,PBUDGET) PRIMARY KEY (PROJ#)

F={PROJ#→DEPT#,PROJ#→PBUDGET} OFFICE(OFF#,DEPT#,AREA) PRIMARY KEY (OFF#)

F={OFF#→DEPT#,OFF#→AREA} PHONE(PHONE#,OFF#) PRIMARY KEY (PHONE#)

F={PHQNE#→OFF#}

(3)现在来分析一下这7个关系模式,发现:SALHIST(EMP#,DATE,JOBTITLE,SALARY)的属性包含了JOB(EMP#,JOBTLTLE)的属性,所以JOB(EMP#,JOBTITLE)可以消去。

EMP1中OFF#和DEPT#都传递函数依赖于主码(EMP#)。OFF#通过PHONE#,DEPT#通过PROJ#或OFF#(然后通过PHONE#)传递依赖于{EMP#},所以可以把EMP1(EMP#,DEPT#,PROJ#,OFF#,PHONE#)分解成下面4个3NF的关系模式: EMP(EMP#,PROJ#,PHONE#) PRIMARY KEY (EMP#)X(PHONE#,OFF#)

PRIMARY KEY(PHONE#)Y(PROJ#,DEPT#)

PRIMARY KEY(PROJ#)Z(OFF#,DEPT#) PRIMARY KEY(OFF#)

然而,X就是PHONE,Y是PROJ的投影,Z是OFFICE的投影,所以X、Y、Z都可以消去。

最后可以得到下面6个关系模式,所有这些关系模式都是属于3NF的,进一步发现他们也是BCNF的。

DEPT(DEPT#,DBUDGET,MGR_EMP#) PRIMARY KEY(MGR_EMP#) EMP(EMP#,PROJ#,PHONE#) PRIMARY KEY(EMP#)

SALHIST(EMP#,DATE,JOBTITLE,SALARY) PRIMARY KEY (EMR#)

PROJ(PROJ#,DEPT#,PBUDGET) PRIMARY KEY(PROJ#)

OFFICE(OFF#,DEPT#,AREA) PRIMARY KEY(OFF#) PHONE(PHONE#,OFF#)

PRIMARY KEY(PHONE#)

10.答:其语义假设如下:

(1)任何两个顾客的收货地址都不相同; (2)每一个订单都有一个惟一的订单号码。

(3)每个订单的订单细则在这个订单里有一个惟一的编号。 函数依赖图如下:

ADDRESSADDRESS

QTYORD

ORD#

DISCOUNT

CREDLIM

BAL

CUST#

QTYOUTDANGER

PLANT#QTYOH

ITEM#DESCNLINE#

相应的BCNF关系模式如下:

CUST(CUST#,BAL,CREDLIM,DISCOUNT) PRIMARY KEY(CUST#) SHIPTO(ADDRESS,CUST#) PRIMARY KEY(ADDRESS)

ORDHEAD(ORD#,ADDRESS,DATE) PRIMARY KEY(ORD#)

ORDLINE(ORD#,LINE#,ITEM#,QTYORD,QTYOUT) PRIMARY KEY (ORD#,LINE#) ITEM(ITEM#,DESCN)

PRIMARY KEY(ITEM#)

IP(ITEM#,PLANT#,QTYOH,DANGER) PRIMARY KEY (ITEM#,PLANT#)

---

1: D.模式

2: A.表中任意两行的之不能相同

3: C.并发控制

4: C.3NF

5: D.数据的管理

6: C.概念

7: B.数据结构、数据 *** 作、完整性约束条件

8: B.应用程序

9: C.主码

10: B.连接

11: C.select

12: C.保留少部分冗余数据可提高查询速度

1.在软件生存周期中,时间最长的阶段是( )D.维护

2.以下最适合于面向对象的软件开发的软件生存周期模型是( )D.喷泉模型

3.以下几种模块内聚类型中,内聚性最低的是( ) B.逻辑内聚

4.数据流图中的每个加工至少有( )D.一个输入流和一个输出流

5.结构化软件设计是()C.面向数据流的

6.瀑布模型本质是一种( )B.线性顺序模型

1、什么是软件工程?它的目标和内容是什么?6

软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程内容:研究内容包括开发技术和开发管理两个方面。

开发技术主要研究:软件开发方法,开发过程,开发工具和环境。

开发管理主要研究:软件管理学,软件经济学,软件心理学。

2在划分软件生存周期阶段时,应遵循的基本原则是什么?

软件生存周期的各个阶段有不同的划分。软件规模、种类、开发方式、开发环境以及开发使用方法都影响软件生存周期的划分。在划分软件生存周期阶段时,应遵循的一条基本原则是各阶段的任务应尽可能相对独立,同一阶段各项目任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件项目开发的组织管理。

3 可行性研究的任务是什么?

可行研究的任务:首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性。

主要从三个方面考虑:

⑴.技术可行性:一般要考虑的情况包括 开发的风险即设计出的系统能否达到要求的功能和性能资源的有效性相关技术的发展是否支持

⑵.经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资。

⑶.社会可行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度、人员素质、 *** 作方式是否可行。

4、什么是数据字典?其作用是什么?它有哪些条目?

数据字典(简称DD)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。

5 什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?

模块的影响范围:受该模块内的一个判定影响的所有模块的集合。

模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。

一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近

6. 什么是软件危机?

在软件工程概念出现之前,软件的开发主要依赖于开发人员的个人技能,没有可以遵循的开发方法指导,开发过程也缺乏有效的管理。20世纪60年代初出现了“软件”一词,引起人们对文档的重视,但尚未形成文档的规范。随着计算机在各个领域的广泛应用,软件的需求量越来越大,软件的复杂度也越来越高,导致软件的开发远远满足不了社会发展的需要,超出预算的经费、超过预期的交付时间的事情经常发生。由于缺乏文档以及没有好的开发方法指导,使得大量已有的软件难以维护。到20世纪60年代中期出现了人们难以控制的局面,即“软件危机”

落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。

概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。鉴于软件危机的长期性和症状不明显的特征,近年来有人建议把软件危机更名为“软件萧(depression)”或“软件困扰(affliction)”。不过“软件危机”这个词强调了问题的严重性,而且也已为绝大多数软件工作者所熟悉,所以本书仍将沿用它。

7 软件质量保证应做好哪几方面的工作?380

软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下几个方面的工作:<1>采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。<2>组织正式技术评审,在软件开发的第一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。<3>加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件可发现软件中大多数潜在错误。<4>推选软件工程规范(标准)。用户可以自己指定软件工程规范(标准),但标准一旦确认就应贯彻执行。<5>对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。<6>对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。

8 软件生产经历了几个阶段?各有何特征?

软件生产至今已经历了三个阶段:一程序设计时代(1946-1956):这个阶段的生产方式是个体手工劳动,使用的工具实际其语言、汇编语言。开发方法是追求编程技巧,追求程序运行效率。硬件特征是价格贵、存储容量小,运行可靠性差。软件特征是只有程序、程序设计概念,不重视程序设计方法。二程序系统时代(1956-1968):这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法仍就靠个人技巧,但开始提出结构化方法。硬件特征是速度、容量、工作可靠性有明显提高。软件特征是程序员数量猛增,但开发技术没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件开发,导致软件危机的产生。三软件工程时代(1968至今):这个阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。硬件特征是向超高速、大容量、微型化以及网络化方向发展。软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6688568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存