1、2007年下半年软件水平考试(中级)数据库系统工程师下午(应用技术)试题真题试卷及答案与解析 一、试题一( 15分) 1 阅读以下说明和图,回答问题 1至问题 4。 【说明】 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下: 1每门课程都有 3到 6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。 2学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系 统。 3在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门
2、课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。 4对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。 5若一门课程的所 有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。 6在生成成绩列表之前,系统会生成一份成绩
3、报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。 7根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。 采用结构化方法对这个系统进行分析与设计,得到如图 l-1所示的顶层数据流图和图 1-2所示的 0层数据流图。 1 使用说明中的词语,给出图 1-1中的外部实体 E1 E4的名称。2 使用说明中的词语,给出图 1-2中的数据存储 D1 D5的名称。3 数据流图 1-2缺少了三条数据流,根据说明及数据流图 1-1提供的信
4、息,分别指出这三条数据流的起点和终点。4 数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图形化工具,程序流程图也是软件开发过程中比较常用的图形化工具。简要说明程序流程图的适用场合与作用。 二、试题二( 15分) 5 阅读以下说明,回答问题 1至问题 4。【说明】 某商场客户 -商品数据库中各关系模式如下: 客户 (客户号,姓名,性别,年龄 ) 商品 (商品号,名称,型号,品牌,单价,库存 ) 销售 (流水号, ,数量,日期 ) 采购 (商品号,数量 ) 其中: 1)一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于 0约束: 2)销售表记录每一笔销售,每销售一件商品,其
5、库存都要做相应的修改。 现假定已经建立了该数据库及上述四个基本表。 5 (1)客户关系中的年龄取值在 15岁到 60岁 之间 (包含 15岁和 60岁 ),增加该约束的 SQL语句如下,请将空缺部分补充完整。 ALTER TABLE 客户 ADD CONSTRAINT CONSTRAINT con_ age CHECK (a) (2)如下用 SQL语句创建的畅销商品视图包含商品号、商品名称、型号、品牌和销售量,该视图中商品的销售量大于等于 1000件。请将空缺部分补充完整。 CREATE VIEW 畅销商品 (b) AS SELECT 商品商品号,名称,型号,品牌,销售量 FROM 商品, (
6、SELECT 商品号, (c) As 销售量 FROM 销售 GROUP BY 商品号 HAVING SUM (数量 ) =1000) AS 商品销售量 WHERE (d); (3)将视图畅销商品的查询权限赋予销售经理李华,请将空缺部分补充完整。 GRANT (e) ON TABLE 畅销商品 TO 李华; 6 查询购买 “新飞 ”品牌的任 -型号 “冰箱 ”的客户姓名及购买日期。实现该查询的SQL语句 如下,请将空缺部分补充完整。 SELECT 姓名,日期 FROM (f) WHERE (g) AND 商品号 (h) ( SELECT 商品号 FROM 商品 WHERE 品牌 =新飞 AND
7、 名称 = 冰箱 ) 7 实现销售业务的嵌入式 SQL代码段 (嵌入 C语言 )如下,假设销售表的流水号由系统自动生成。请将空缺部分补充完箍。 EXEC SQL BEGIN DECLARE SECTION; /* 销售:商品号,客户号,数量,日期 */ char pno6; char cno 6; int quantity; char date 10; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO DEFAULT; EXEC SQL SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; EXEC SQL
8、 INSERT INTO 销售 (商品号,客户号,数量,日期 ) VALUES( (i) ); EXEC SQL UPDATE 商 品 SET 库存 = (i) WHERE 商品号 =: pno; if(SQLCA SQLCODE !=0) printf (“商品 %s库存不满足本次购买数量,交易失败 !“, pno); EXEC SQL ROLLBACK WORK; else EXEC SQL (k); EXEC SQL DISCONNECT CURRENT; 8 对商品表增加最小库存属性;若修改某商品的库存时,使得库存值小于或等于其最小库存值,则向采购表插入一条记录 ,要求采购的数量是该商
9、品最小库存值的两倍再加上 10。下面是完成该功能的 SQL语句,请将空缺部分补充完整。 ALTER TABLE 商品 (1) ; CREATE TRIGGER 采购 -trigger AFTER (m) REFERENCING NEW ROW AS nrow FOR EACH ROW WHEN (n) BEGIN INSERT INTO 采购 VALUES(o) END 三、试题三( 15分) 9 阅读下列说明,回答问题 1至问题 3。【说明】 某汽车维修站拟 开发一套小型汽车维修管理系统,对车辆的维修情况进行管理。【需求分析】 1对于前来维修的车辆,汽车维修管理系统首先登记客户信息,包括;客
10、户编号、客户名称、客户性质 (个人、单位 )、折扣率、联系人、联系电话等信息:还要记录客户的车辆信息,包括:车牌号、车型、颜色等信息。一个客户至少有一台车。客户及车辆信息如表3-1所示。2维修站的业务员对车辆进行检查和故障分析后,与客户磋商,确定车辆的故障现象及维修范围,填写维修委托书,包括:维修类型 (普通、加急 )、作业分类 (大、中、小修 )、结算方式 (自付、三包、索赔 )等信 息。维修委托书如表 3-2所示。3维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择一个或多个具体的维修项目,安排相关的维修工及工时,生成维修派工单。维修派工单如表3-3所示。4客户车辆修理完毕后,
11、根据维修项目单价和维修派工单中的工时计算车辆此次维修的总费用,记录在委托书中。【概念模型设计】 根据需求阶段收集的信息,设计的实体联系图 (不完整 )如图 3-1所示。图 3-1中业务员和维修工是员工的子实体。 【逻辑结构设计】根据概念模型设计阶段完成的实体联系图,得出如下关系模式 (不完整 );客户 (1),折扣率,联系人,联系电话 )车辆 (2),车型,颜色,车辆类别 )委托书(3),维修类型,作业分类,结算方式,进厂时间,预计完工时间,登记日期,故障描述,总费用 )维修项目 (维修项目编号,维修项目,单价 )派工单 (4),工时 )员工(5),工种,员工类型,级别 ) 9 补充图 3-1
12、中的联系和联系的类型。 10 根据图 3-1,将逻辑结构设计阶段生成的关系模式中的空 (1) (5)补充完整。对所有关系模式,用下划线指出各关系模式的主键。 11 若车辆可购买多种不同的保险,则对应有多个保险单。如果考虑需要 理赔的情况,则在结算车辆维修费用时,需要用户指定此次委托维修的车辆的不同保险单所负担的总维修费用的比例。请对增加了 “保险单 ”实体的图 3-1进行修改,画出修改后的实体间联系和联系的类型。 四、试题四( 15分) 12 阅读下列说明,回答问题 1至问题 3。【说明】 某科研项目管理机构拟开发科研管理系统,以便管理科研项目信息。设计了科研信息数据库,其关系模式如图4-1所
13、示。 关系模式的主要属性、含义及约束如表 4-1所示。一个科研项目 (课题 )由一位科研专家作为负责人。一个科研项目可以由多个单位参与,这些单位可以 作为承担单位或者合作单位来参与科研项目。一个科研项目可以有多个拨款单位,每个单位按合同经费的一定百分比拨款。科研专家是具有科研项目申请资格的科研人员。一位科研专家可以参与不同的科研项目。参与科研项目的每个单位可以有多个除科研专家外的单位员工参与项目的研发。 属性间的函数依赖关系如下。 对于 “项目信息 ”关系模式: 课题编号,单位名称,拨款单位 课题名称,负责人,单位类别,单位排名,合同经费,拨款百分比 课题编号,单位名称 课题名称,负责人,课题
14、类别,单位排名,合同经费 课题编号,拨款单位 课题名称,负责人,合 同经费,拨款百分比 课题编号 课题名称,负责人,合同经费 课题编号 拨款单位,拨款百分比 课题编号 单位名称,单位类别,单位排名 对于 “科研专家 ”关系模式: 人员编号 姓名,性别,出生年月,身份证号,最高学位,职称,研究方向,所在单位,单位地址 所在单位 单位地址 身份证号 人员编号 对于 “项目研发人员 ”关系模式; 课题编号,所在单位,职工号 姓名,年龄,学历,职称,分工,排名,参加月数所在单位,职工号 姓名,年龄,学历,职称 12 对关系 “科研专家 ”,请回答以下问题: (1)列举出所有不屈于任何 候选键的属性 (
15、非键属性 )。 (2)关系 “科研专家 ”可达到第几范式,用 60字以内文字简要叙述理由。 13 对关系 “项目研发人员 ”,请回答以下问题: (1)针对 “项目研发人员 ”关系,用 100字以内文字简要说明会产生什么问题。 (2)把 “项目研发人员 ”分解为第三范式,分解后的关系名依次为:项目研发人员1,项目研发人员 2, (3)列出修正后的各关系模式的主键。 14 对关系 “项目信息 ”,请回答以下问题: (1)关系 “项目信息 ”是不是第四范式,用 100字以内文字叙述理由。 (2)把 “项目信息 ”分解为第四范式,分解后的关系名依次为:项目信息 1,项目信息 2, 五、试题五( 15分
16、) 15 阅读下列说明,回答问题 1至问题 3。 【说明】 某银行的存款业务分为如下三个过程: (1)读取当前账尸余额,记为 R(b): (2)当前余额 b加上新存入的金额 x作为新的余额 b,即 b=b+ x; (3)将新余额 b写入当前账户,记为 W(b)。 存款业务分布于该银行各营业厅,并允许多个客户同时向同一账户存款,针对这一需求,完成下述问题。 15 假设同时有两个客户向 同一账号发出存款请求,该程序会出现什么问题 ? (100字以内 ) 16 存款业务的伪代码程序为 R(b), b=b +x, W(b)。现引入共享锁指令 SLock (b)和独占锁指令 XLock (b)对数据 b
17、进行加锁,解锁指令 Unlock (b)对数据 b进行解锁。 请补充上述存款业务的伪代码程序,使其满足 2PL协议。 17 若用 SQL语句编写的存款业务事务程序如下: START TRANSACTION; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED UPDATE Accounts SET CurrentBalance = CurrentBalance + Amount WHERE AccountID = AccountNo; COMMIT; 其中: Accounts 为账户表, CurrentBalance 为当前余额, Amount为新
18、存入的金额, AccountNo为外部输入的账户编码。 该事务程序能否正确实现并发的存款业务 ?如果不能,请说明原因,应做怎样的修改 ? (100字以内 ) 2007年下半年软件水平考试(中级)数据库系统 工程师下午(应用技术)试题真题试卷答案与解析 一、试题一( 15分) 1 【正确答案】 E1:考试委员会: E2:主讲教师; E3:学生或选课学生; EA:教务处 2 【正确答案】 D1:学生信息文件; D2:课程单元信息文件; D3课程信息文件; D4:课程成绩文件: D5:无效成绩文件。注: D2和 D3的答案可以互换。 3 【正确答案】 4 【正确答案】 程序流程图通常在进行详细设计时
19、使用,用来描述程序的逻辑结构。 【试题解析】 本题考查的是 DFD的应用,属于比较传统的题目,考查点也与往年类似。 问题 1考查的是顶层 DFD。顶层 DFD通常用来确定系统边界,其中只包含一个唯一的加工 (即待开发的系统 )、外部实体以及外部实体与系统之间的输入输出数据流。题目要求填充的正是外部实体。 从顶层 DFD可以看出,数据流是完整的。所以只要根据数据流从题目说明的上下文中,找出 E1 E4所对应的外部实体,分别为考试委员会、主讲教师、学生和教务处。 0层 DFD中缺少的东西比较多,要求填写数据存储及缺失的数据流。先来确定数据存储。首先,从说明中找出可能是数据存储的元素来。很明显,学生
20、信息文件、课程信息文件、 课程单元信息文件、课程成绩文件和无效成绩文件应该是数据存储。下面的工作就是对号入座。 从 0层 DFD上可以看到,加工 3到 D5有一条数据流:而加工 3所完成的操作是“记录无效成绩 ”。从说明中可知, “对于无效成绩,系统会单独将其保存在无效成绩文件中 ”,所以 D5应该是数据存储 “无效成绩文件 ”。类似地,从加工 2“记录有效成绩 ”到 D4有一条数据流,这说明 D4就是数据存储 “课程成绩文件 ”。 D1有输出两条数据流,分别流向加工厂验证学生信息 ”和加工 4“生成成绩列表 ”。由说明的 “根据学生信息文件来确认该学生是否选修 这门课程 ”可知,验证学生信息
21、时,需要根据学生信息文件来进行:而生成成绩列表及成绩单时,学生信息都是必要的。所以 D1应该是 “学生信息文件 ”。 这样的话, D2和 D3就应该分别与 “课程单元信息文件 ”和 “课程信息文件 ”对应。由于 D2和 D3都只与加工 1有关,所以它们的对应关系就是随意的了。这样 5个数据存储就填充完整了。下面要补充缺失的数据流。 首先,从说明的第 5条可知,生成成绩列表时,使需要从课程成绩文件中获取信息的, “课程成绩文件 ”实际上是就是图中的 D4。而 D4和加工 4之间并没有数据流,因此这就是一条缺失的数据流了。 另外,前面在确定 D1所对应的数据存储时提到过,生成成绩单时是需要学生信息
22、的。所以,加工 5应该从 D1中获取相应的信息,这样就找了第二条数据流。 第三条数据流也比较容易找。说明的第 7条告诉我们,只有 “对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生 ”。也就是说,从成绩列表到成绩单的生成是有条件的。 这意味着,在加工 4和加工 5之间应该存在一条数据流,这就是第 3条数据流。 问题 4实际上是为了考查大家对 DFD的进一步理解,明确 DFD在软件开发中用于描述功能需求。 二、试题二( 15分) 5 【正确答案】 (1)(a) 年龄 =15 AND 年龄 =60 或 年龄 BETWEEN 15 AND 60 (2)(b) (商品号,商品名称,
23、型号,品牌,销售量 ) (c)SUM(数量 ) (d)商品 .商品号 =商品销售量 .商品号 (3)(e) SELECT 【试题解析】 考查 SQL中的数据定 义语言 DDL和数据控制语言 DCL。 (1)定义列级上的用户定义完整性约束,要求客户的年龄在 15岁 60岁之间,包含 15岁和 60岁,因此空缺处 (a)年龄 =15 AND年龄 =60,在标准 SQL中,表示在某范围内取值还可以用关键字 BETWEENAND ,因此该空缺处也可以填写 BETWEEN 15 AND 60。注意在 SQL中没有 15 =年龄 =60这样的表达方式。 (2)创建视图。定义视图时,视图的属性列或者全部省略
24、或者全部指定。若全部省略,则表示该视图由子查询中 SELECT子旬目标列中的诸字段 构成,这时要求这些字段是简单的属性名。本题中 SELECT子句后的商品商品号不是简单的属性名,且视图的第二个属性商品名称与 SELECT子句后的名称不同,故 (b)需要全部指定属性名。 (c)处应填写集函数 SUM(数量 )。 (d)处考核连接查询的查询条件,视图应仅包含销售量大于等于 1000件的商品信息,故有等值连接条件商品 .商品号=商品销售量商品号。 (3)数据控制语言中的授权语句。 GRANT后跟着的授予的操作权限,故此处填SELECT。 6 【正确答案】 (f)客户,销售 (注:加商品表错误 !)
25、(g)客户 .客户号 =销售 .客户号 (h)IN (注:用 =错误 !) 【试题解析】 考查 SQL中的数据操作语言 DML。该查询涉及到客户、商品和销售三个表的信息,但由于商品表的查询嵌套在外层查询内,故外层查询只连接查询客户和销售两个表, WHERE 后是连接查询条件。谓词 m用来查找属于指定集合的元组,此处不能用来表示。 7 【正确答案】 (i): pno, :CLIO, :quantity, :date (j)库存 -: quantiy (k)COMMIT WORK 或 COMMIT 【试题解析】 考查嵌入 式 SQL。空缺处 (i)和 (j)考查嵌入式 SQL程序中主变量的应用。每
26、执行完一个 SQL语句, SQLCA中的 SQLCODE给出该语句执行的结果情况。根据程序流程, else表示 SQL语句能成功执行的分支, (k) 处应填COMMIT WORK 或 COMMIT。 8 【正确答案】 (1)ADD 最小库存 INT (注: INT 处可为 INTEGER) (m)UPDATE OF 库存 ON 商品 或 UPDATE ON 商品 (n)nrow.数量 =nrow.最小库存 (o)nrow.商品号, nrow.最小库存 *2+10 【试题解析】 考查 SQL中的数据定义语言 DDL。 (1)对商品表增加最小库存属性,此时要修改商品表结构,增加一个属性。新增列的语
27、法为 ADD新列名数据类型 完整性约束 。此处新列名为最小库存,类型为整数类型 INTEGER或 INT,题目并未要求定义完整性约束。 (2)当有商品销售时,商品的库存减少。当商品库存小于等于其最小库存时,采购相应的商品,数量为最小库存的两倍加上 10。可以通过建立触发器来完成此需求。 (m)处填写触发事件,即商品表上或者商品表的库存信 息更新时,若满足触发条件,即商品库存小于等于其最小库存,则执行触发动作,即插入采购信息。 三、试题三( 15分) 9 【正确答案】 【试题解析】 考查数据库的概念结构设计,题目要求补充完整实体联系图中的联系和联系的类型。 根据题目的需求描述和表 3-1中的数据
28、可知,一个客户至少拥有一台车,每台车辆有一个对应的客户。所以,客户实体和车辆实体之间存在联系 “拥有 ”,联系的类型为一对多 (1:*)。 根据题目的需求描述和表 3-2中的数据可知,一份委托书由一个业务员负责接受委托,一个业务员可以 负责多份委托书。所以,业务员实体和委托书实体之间存在联系 “委托 ”,联系的类型为一对多 (1:*)。 根据题目的需求描述和表 3-3中的数据可知,一份委托书可以对应多个维修项目和维修员工,一个维修项目可能涉及多个维修工,一个维修工可以参与多个维修项目。因此,维修派工单的信息涉及三个实体,是由三个实体相互联系而形成的。所以,委托书实体和维修工实体之间存在联系 “
29、派工 ”,联系的类型为一对多 (1:*),维修项目实体和维修工实体之间存在联系 “派工 ”,联系的类型为多对多 (*:*)。 10 【正确答案】 (1)客户编号,客户名称,客户性质 (2)车牌号,客户编号 (3)委托书编号,车牌号,业务员编号 或委托书编号,车牌号,客户编号,业务员编号 (4)委托书编号,维修项目编号,维修员编号 (5)员工编号,员工姓名 【试题解析】 考查数据库的逻辑结构设计,题目要求补充完整各关系模式,并给出各关系模式的主键。 根据实体联系图和表 3-1的数据,对于 “客户 ”关系模式需补充属性:客户编号,客户名称,客户性质。 根据实体联系图和表 3-1的数据,对于 “车辆
30、 ”关系模式,由于车辆实体与客户实体有 联系,需记录对应的客户信息,并且车辆有自己的属性 车牌号,因此,“车辆 ”关系模式需补充属性:车牌号,客户编号。 根据实体联系图和表 3-2的数据,对于 “委托书 ”关系模式,由于车辆实体与委托书实体和业务员实体都有联系,需记录对应的车辆和业务员信息,并且委托书有自己的属性 委托书编号,因此, “委托书 ”关系模式需补充属性:委托书编号,车牌号,业务员编号。 根据实体联系图和表 3-3的数据, “派工单 ”关系模式记录的是委托书、维修项目和维修工三个实体之间的联系,因此, “派工单 ”关系模式需补充属性:委托书编号,维修项目编号,维修员编号。 根据实体联
31、系图和表 3-1的数据,对于 “员工 ”关系模式需补充属性:员工编号,员工姓名。 客户关系模式的主键:客户编号 车辆关系模式的主键:车牌号 委托书关系模式的主键:委托书编号 派工单关系模式的主键:委托书编号,维修项目编号 ,维修号编号 员工关系模式的主键:员工编号 11 【正确答案】 【试题解析】 考查数据库的概念结构设计,根据新增的需求新增实体联系图中的实体的联系和联系的类型。 根据问题描述,新增加了一种实体 “保险单 ”,记录车辆所购买的不同保险信息,包括:保险公司、保险项目、赔付标准等信息。一辆车可以购买多份保险,委托书中指明对应不同保险单所负担的总维修费用的比例。保险单实体与车辆实体之
32、间的存在 “购买 ”联系,联系的类型是一对多 (1:*)。保险单实体与委托书实体之间存在 “结算 ”联系,联系的类型是多对多 (*:*)。 四、试题四( 15分) 12 【正确答案】 (1)姓名,性别,出生年月,最高学位,职称,研究方向,所在单位,单位地址。 (2) “科研专家 ”关系模式可以达到第二范式,不满足第三范式。 由于 “科研专家 ”关系模式的主键是 “人员编号 ”,但又包含函数依赖: “所在单位 单位地址 ”,不满足第三范式的要求,即:存在非主属性对码的传递依赖。 【试题解析】 考查非主属性和第三范式。 根据 “科研专家 ”关系的函数依赖可知,不属于任何候选键的属性 (非键属性 )
33、为:姓名,性别,出生年月,最高学位,职称,研究方向,所在单位,单位地址。 根据第三范式的要求:每一个非主属性既不部分依赖于码也不传递依赖于码。 而根据 “科研专家 ”关系的函数依赖: 人员编号 所在单位 所在单位 单位地址 所以 , “科研专家 ”关系模式可以达到第二范式,但不满足第三范式。 13 【正确答案】 (1)“项目研发人员 ”关系不满足第二范式,即:非主属性不完全依赖于码。 (2)会造成:插入异常、删除异常和修改复杂 (或修改异常 )。 (3)分解后的关系模式如下: 项目研发人员 1 (所在单位,职工号,姓名,年龄,学历,职称 ) 项目研发人员 2 (课题编号,所在单位,职工号,分工
34、,排名,参加月数 ) 修正后的主键如下: 项目研发人员 1 (所在单位,职工号,姓名,年龄,学历,职称 ) 项目研发人员 2 (课题编号 ,所在单位,职工号,分工,排名,参加月数 ) 【试题解析】 考查第二范式和第三范式。 根据第三范式的要求:非主属性不完全依赖于码。 而根据 “项目研发人员 ”关系的函数依赖可知, “项目研发人员 ”的码为 (课题编号,所在单位,职工号 ),而又存在部分函数依赖: 所在单位,职工号 姓名,年龄,学历,职称。 所以,项目研发人员 ” 关系不满足第二范式,会造成:插入异常、删除异常和修改复杂 (或修改异常 )。 因为存在部分函数依赖,因此对 “项目研发人员 ”进行
35、分解,分解后的关系模式如下: 项目研发人员 1 (所在单位,职工号,姓名,年龄,学历,职称 ) 项目研发人员 2 (课题编号,所在单位,职工号,分工,排名,参加月数 ) 其中, “项目研发人员 1”关系的函数依赖为: 所在单位,职工号 姓名,年龄,学历,职称 “项目研发人员 2”关系的函数依赖为: 所在单位,职工号 姓名,年龄,学历,职称 课题编号,所在单位,职工号 分工,排名,参加月数 这两个关系中的每一个非主属性既不部分依赖于码也不传递依赖于码,因此满足第三范式的要求。 14 【正确 答案】 (1) “项目信息 ”关系模式,不满足第四范式。 因为,课题编号 课题名称,负责人,合同经费 或答
36、:课题编号 拨款单位,拨款百分比 课题编号 单位名称,单位类别,单位排名 (2)分解后的关系模式如下: 项目信息 1 (课题编号,课题名称,负责人,合同经费 ) 项目信息 2 (课题编号,单位名称,单位类别,单位排名 ) 项目信息 3 (课题编号,拨款单位,拨款百分比 ) 【试题解析】 考查第四范式。 根据 “项目信息 ”关系模式的函数依赖,其码为:课题编号,单位名称 ,拨款单位。而又存在部分函数依赖: 课题编号,单位名称 课题名称,负责人,课题类别,单位排名,合同经费 课题编号,拨款单位 课题名称,负责人,合同经费,拨款百分比 课题编号 课题名称,负责人,合同经费 所以, “项目信息 ”关系
37、模式不满足第二范式。 同时,可以根据第四范式的要求:不允许有非平凡且非函数依赖的多值依赖。 而在 “项目信息 ”关系模式存在多值依赖: 课题编号 拨款单位,拨款百分比 课题编号 举位名称,单位类别,单位排名 因此, “项目信息 ”关系模式不满 足第二范式。 因为存在部分函数依赖和多值依赖,因此对 “项目信息 ”进行分解,分解后的关系模式如下: 项目信息 1 (课题编号,课题名称,负责人,合同经费 ) 项目信息 2 (课题编号,单位名称,单位类别,单位排名 ) 项目信息 3 (课题编号,拨款单位,拨款百分比 ) 其中, “项目信息 1”关系的函数依赖为: 课题编号 课题名称,负责人,合同经费 “
38、项目信息 2”关系的函数依赖为: 课题编号,单位名称 单位类别,单位排名 “项目信息 3”关系的函数依赖为: 课题编号,拨款单位 拨款百分比 这三个关系既不存在部分函数依赖和传递依赖,也不存在多值依赖,因此满足第四范式的要求。 五、试题五( 15分) 15 【正确答案】 出现问题:有一个存款值会丢失,造成数据不一致。 【试题解析】 假设同时有 A、 B两个客户向同一账号发出存款请求,若 A客户将当前余额 b=2000加上新存入的金额 x=1000存入余额 b=3000若 B客户将当前余额b=2000加上新存入的金额 x=2000存入余额 b=4000使得丢失了 A客户存入的1000,造成数据不
39、一致。 16 【正 确答案】 伪代码程序: Xlock (b), R (b), b=b+x, W(b), Unlock(b) 【试题解析】 由于客户要执行的是存款业务,需要在存款业务的伪代码程序“R(b), b=b+x, W(b)”之前加独占锁指令 “XLock(b)”,存款业务结束后加解锁指令 Unlock(b)。 因此,完整的伪代码程序如下: Xlock (b) R (b) b=b + x W (b) Unlock (b) 17 【正确答案】 不能实现,因为程序中的隔离级别设置为 READ UNCOMMITTED,未实现加锁控制, 不能达到串行化调度。 修改方法: 将程序中的 SET TR
40、ANSACTION ISOLATION LEVEL READ UNCOMMITTED 改为 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE。 【试题解析】 隔离级别定义了事务与事务之间的隔离程度。隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。 ANSI/ISO SQL92 标准定义了一些数据库操作的隔离级别: 未提交读 (READ UNCOMMITTED) 提交读 (READ COMMITTED) 重复读 (REPEATABLE READ) 序列化 (SERIALIZABLE) 问题 3事务程序不能正确实现并发的存款业务其原因是语句 SET TRANSACTION ISOLATION LEVEL的隔离级别设置的是 READ UNCOMMITTED,没有实现加锁控制,为此应该将隔离级别设置为SERIALIZABLE。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1