中级数据库系统工程师下午试题模拟.pdf_第1页
中级数据库系统工程师下午试题模拟.pdf_第2页
中级数据库系统工程师下午试题模拟.pdf_第3页
中级数据库系统工程师下午试题模拟.pdf_第4页
中级数据库系统工程师下午试题模拟.pdf_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软考数据库系统工程师交流群:424778193 微信:educity_cn 中级数据库系统工程师下午试题模拟中级数据库系统工程师下午试题模拟15 试题一试题一 阅读以下说明和数据流图,根据要求回答下列问题。 说明 现准备为某银行开发一个信用卡管理系统CCMS,该系统的基本功能如下。 1信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信 息,提交CCMS。如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客 户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函。非信用卡客户收到确认 函后成为信用卡客户。 2信用卡激活。信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡。激活操作 结束后,CCMS将激活通知发送给客户,告知客户其信用卡是否被成功激活。 3信用卡客户信息管理。信用卡客户的个人信息可以在CCMS中进行在线管理。每位信用卡客户 可以在线查询和修改个人信息。 4交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在CCMS中。信用卡客户可 以通过CCMS查询并核实其交易信息(包括信用卡交易记录及交易额)。 图1和图2分别给出了该系统的项层数据流图和0层数据流图的初稿。 软考数据库系统工程师交流群:424778193 微信:educity_cn 1、根据说明,将图1中的E1E3填充完整。 2、图1中缺少3条数据流,根据说明,分别指出这3条数据流的起点和终点(注:数据流的起点和 终点均采用图中的符号和描述)。 3、图2中有两条数据流是错误的,请指出这两条数据流的名称,并改正(注:数据流的起点和终点均 采用图中的符号和描述)。 4、根据说明,将图2中P1P4的处理名称填充完整。 试题二试题二 阅读以下说明,根据要求回答下列问题。 说明 某商场客户一商品数据库中的各关系模式如下。 客户(客户号,姓名,性别,年龄) 商品(商品号,名称,型号,品牌,单价,库存) 销售(流水号,客户号,商品号,数量,日期) 采购(商品号,数量) 其中: 5一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于0的约束。 6销售表记录每一笔销售,每销售一件商品,其库存都要做相应的修改。 现假定已经建立了该数据库及上述4个基本表。 5、(1)客户关系中的年龄取值在1560岁之间(包含15岁和60岁),增加该约束的SQL语句如下, 请将空缺部分补充完整。 ALTER TABLE 客户 ADD CONSTRAINT 软考数据库系统工程师交流群:424778193 微信:educity_cn CONSTRAINT con_age CHECK (_) (2)如以下用SQL语句创建的畅销商品视图中包含商品号、商品名称、型号、品牌和销售量,该 视图中商品的销售量大于等于1000件,请将空缺部分补充完整。 CREATE VIEW 畅销商品 _ AS SELECT 商品.商品号,名称,型号,品牌,销售量 FROM 商品,(SELECT 商品号, _ AS 销售量 FROM 销售 GROUP BY 商品号 HAVING SUM(数量)=1000) AS 商品销售量 WHERE _; (3)将畅销商品的查询权限赋予销售经理李华,请将空缺部分补充完整。 GRANT _ ON TABLE 畅销商品 TO 李华; 6、查询购买“新飞”品牌的任一型号“冰箱”的客户姓名及购买日期。实现该查询的SQL语句如下,请 将空缺部分补充完整。 SELECT 姓名,日期 FROM _ WHERE _ AND 商品号 _ ( SELECT 商品号 FROM 商品 WHERE 品牌=新飞 AND 名称=冰箱) 7、实现销售业务的嵌入式SQL代码段(嵌入C语言)如下,假设销售表的流水号由系统自动生成。请 将空缺部分补充完整。 EXEC SQL BEGIN DECLARE SECTION; /*销售:商品号,客户号,数量,日期*/ char pno6; char cno6; int quantity; char date10; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO DEFAULT; EXEC SQL SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; EXEC SQL INSERT INTO 销售(商品号,客户号,数量,日期) VALUES (_); EXEC SQL UPDATE 商品 SET 库存=_ WHERE 商品号=:pno; if(SQLCA.SQLCODE!=0) printf(“商品%s库存不满足本次购买数量,交易失败!“,pno); EXEC SQL ROLLBACK WORK; else EXEC SQL _; EXEC SQL DI SCONNECT CURRENT; 8、对商品表增加最小库存属性。若修改某商品的库存时,使得库存值小于或等于其最小库存值,则 向采购表插入一条记录,要求采购的数量是该商品最小库存值的两倍再加上10。下面是完成该功能 的SQL语句,请将空缺部分补充完整。 ALTER TABLE 商品 _; CREATE TRIGGER 采购-trigger AFTER _ REFERENCING NEW ROW AS nrow 软考数据库系统工程师交流群:424778193 微信:educity_cn FOR EACH ROW WHEN _ BEGIN INSERT INTO 采购 VALUES(_) END 试题三试题三 阅读下列说明,根据要求回答下列问题。 说明 某医院的门诊管理系统实现了为患者提供挂号、处方药品收费的功能。具体的需求及设计如下。 9医院医师具有编号、姓名、科室、职称、出诊类型和出诊费用,其中出诊类型分为专家门诊和 普通门诊,与医师职称无关:各个医师可以具有不同的出诊费用,与职称和出诊类型无关。 10患者首先在门诊挂号处挂号,选择科室和医师,根据选择的医师缴纳挂号费(医师出诊费)。 收银员为患者生成挂号单,如表1所示,其中,就诊类型为医师的出诊类型。 表表1 医院门诊挂号单医院门诊挂号单 收银员:13011 时间:2007年2月1日08:58 就诊号 姓名 科室 医师 就诊类型 挂号费 200702050 15 叶萌 内科 杨玉明 专家门诊 15元 11患者在医师处就诊后,凭借挂号单和医师手写处方到门诊药房交费买药。收银员根据就诊号 和医师处方中开列的药品信息,查询药品库(见表2)并生成门诊处方单(见表3)。 表表2 药品库药品库 药品编码 药品名称 类型 库存 货架编号 单位 规格 单价 12007 牛蒡子 中药 51590 B140l G 炒 0.0340 11090 百部 中药 36950 B1523 G 片 0.0313 表表3 医院门诊处方单医院门诊处方单 时间:2007年2月1日10:31 就诊号 200702050 15 病人姓名 叶萌 医师姓名 杨玉明 金额总计 0.65 项目总计 2 收银员 21081 药品编码 药品名称 数量 单位 单价 金额(元) 12007 牛蒡子 10 G 0.0340 0.34 11090 百部 10 G 0.0313 0.31 12由于药品价格会发生变化,因此门诊管理系统必须记录处方单上药品的单价。 概念模型设计 根据需求阶段收集的信息,设计的实体联系图(不完整)如图所示。 软考数据库系统工程师交流群:424778193 微信:educity_cn 逻辑结构设计 根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)。 挂号单(就诊号,病患姓名,医师编号,时间,_) 收银员(编号,姓名,级别) 医师(编号,姓名,科室,职称,出诊类型,出诊费用) 门诊处方(_,收银员,时间) 处方明细(就诊号,_) 药品库(药品编码,药品名称,_) 9、根据问题描述,填写图实体联系图中联系的类型。 10、图中还缺少几个联系?请指出每个联系两端的实体名,格式为“实体1:实体2”。 例如,收银员与门诊处方之间存在联系,表示为“收银员:门珍处方”或“门诊处方:收银员”。 11、根据实体联系图,填写挂号单、门诊处方、处方明细和药品库关系模式中的空白处,并指出挂 号单、门诊处方和处方明细关系模式的主键。 试题四试题四 阅读下列说明,根据要求回答下列问题。 说明 某学校为实现无纸化、网络化的教材管理,拟开发一套教材管理系统。该系统主要负责统计全 校的教学用书的需求信息,以便进行教材的统一购买。 需求分析结果 12教学计划。各学院的教学计划是教材需求的来源,各学院的教学管理人员为本学院的各个专 业方向制订教学计划。教学计划主要描述每个专业方向不同学期所开设的课程信息,教学计划的示例 如表1所示。 表表1 “教学计划教学计划”示例示例 院系名称 专业名称 学期 课程编号 课程名 教材编号 计算机系 软件工程 4 C0101 软件开发 B001 计算机系 软件工程 4 C0103 数据库技术 B003 计算机系 网络通信 5 C0103 数据库技术 B003 电子工程系 网络通信 6 C020l 数据库技术 B005 软考数据库系统工程师交流群:424778193 微信:educity_cn 13课程信息。课程信息包括课程编号、课程名和教材编号,由课程编号唯一标识。如表1所示, 数据库技术课程因其使用的教材不同而分别编号。 14专业方向和班级。学校根据学院和专业方向将学生划分班级。一个学院可有多个专业方向, 不同学院可以有相同名称的专业方向。一个专业方向可有多个班级,班级包含入学年份和人数。 15教材信息。教材信息记录教材的基本信息,包括教材编号、教材名称、ISBN号、出版社名称、 作者和版本号。同一种教材版本不同,编号也不同,一种教材可以有多个作者。 16教材需求。根据各学院的教学计划和对应的班级人数,统计全校各系各专业各班级的教材需 求情况。教材需求量是根据现有的教学计划和班级人数计算得到的。 逻辑结构设计 根据需求阶段收集的信息,设计的关系模式如图所示。 关系模式的主要属性、含义及约束如表2所示。 表表2 主要属性含义及约束主要属性含义及约束 属性 含义及约束 属性 含义及约束 班级号 唯一标识每个班级 的编号 教材编号 唯一标识每本教材 的编号 院系名称 唯一标识每个院系 的名称 ISBN 教材图书的ISBN 号, 唯一标识一本图 书 专业名称 唯一标识某个院系 中某个专业方向的 名称 根据如图所示的关系模式,给出班级和教材的函数依赖(不完整)如下。 12班级关系函数依赖FD1。 班级号入学年份,人数,院系名称,专业名称 13教材关系函数依赖FD2。 教材编号教材名称,ISBN,出版社,版本号(不完整) 12、根据如图所示的关系模式,回答以下问题。 (1)分析“教材”关系,给出除FD2外其余的函数依赖和多值依赖。 (2)列出“教材”关系的所有候选键。 (3)分析“教材”关系的所属范式,并说明原因。 软考数据库系统工程师交流群:424778193 微信:educity_cn (4)对“教材”关系进行分解,使其达到4NF。分解后各关系模式分别命名为:教材1,教材2 13、分析以上各关系模式,请回答以下问题。 (1)“教学计划”关系是否存在冗余?请简要说明。 (2)根据现有关系模式,能否获得学校每学期各种教材的需求总量?请简要说明。 (3)考虑到任选课只有部分学生选修,需要增加或修改哪些关系模式?请给出修改结果并简要说 明。 试题五试题五 阅读以下技术说明,根据要求回答下列问题。 说明 某省会城市长途汽车售票系统负责所有本地长途汽车站各班次的汽车票销售,并在该省会城 市和全省主要地级市设有多个该长途汽车票销售网点,各售票网点使用相同的售票程序。假设售票程 序中用到的伪指令如表所示。 伪指令含义伪指令含义 伪指令 说明 R(A,x) 返回长途汽车班次A当前的剩余汽车票 数给变量x W(A,x) 将当前数据库中长途汽车班次A的剩余 汽车票数置为x 假设某售票网点一次售出n张长途汽车班次A的汽车票,则售票程序的伪指令序列为: R(A,x),W(A,xn) 根据上述业务及规则,完成下列问题。 14、若两个售票网点同时销售长途汽车班次A的汽车票,在数据库服务器端可能出现如下的调度。 A:R1(A,x),R2(A,x),W1(A,x-3),W2(A,x-2) B:R1(A,x),W1(A,x-3),R2(A,x),W2(A,x-2) C:R1(A,x),R2(A,x),W2(A,x-2),W1(A,x-3) 其中Ri(A,x),Wi(A,x)分别表示第i个销售网点的读写操作,其余类同。 假设当前长途汽车班次A剩余15张汽车票,分析上述3个调度各自执行完后的剩余票数,并指出 其中错误的调度,简要分析产生错误的主要原因。 15、(1)引入相应的加解锁指令,重写售票程序的伪指令序列,以保证正确的并发调度。 (2)封锁对象的大小称为封锁的粒度(Granularity)。结合你的数据库系统工程实践经验,简 要叙述选择封锁粒度时必须同时考虑哪些主要因素?并简述封锁粒度与这些主要因素之间的关系。 16、下面是用E-SQL实现可串行化调度的长途汽车票销售程序的一部分,请补全空缺处的代码。 EXEC SQL SET TRANSACTION ISOLATION LEVEL _ EXEC SQL SELECT balance INTO :x FROM tickets WHERE flight=A; printf(“长途汽车班次 A 当前剩余汽车票数为:%dn请输入购票数:“,x); scanf(“%d“,a); x=x-a; if (x0) EXEC SQL ROLLBACK WORK; printf(“票数不够,购票失败!“); else EXEC SQL UPDATE tickets SET _ WHERE_flight=A; if (SQLCA.sqlcodeSUCCESS) EXEC SQL _; 软考数据库系统工程师交流群:424778193 微信:educity_cn else EXEC SQL _; 答案: 试题一试题一 1、E1:非信用卡客户, E2:信用卡客户 E3:银行 由题干关键信息“(1)信用卡申请。非信用卡客户填写信用卡申请表CCMS将记录该客户的基本信 息,并发送确认函给该客户否则该客户将会收到一封拒绝函”,以及图1中数据流“确认函”、“拒 绝函”等信息可知,外部实体E1的名称是“非信用卡客户”。 由题干关键信息“(2)信用卡客户向CCMS提交激活请求CCMS将激活通知发送给客户”和图 1中数据流“激活通知”,题干信息“(3)每位信用卡客户可以在线查询和修改个人信息”和图1中数 据流“查询/修改个人信息”、“个人信息”,题干信息“(4)信用卡客户可以通过CCMS查询并核实其 交易信息”和图1中数据流“交易记录查询请求”可知,外部实体E2的名称是“信用卡客户”。 由题干说明中“(1)信用卡申请如果信用卡申请被银行接受”、图1中数据流“信用卡申请信 息”、“信用卡申请验证结果”和常识等关键信息可知,外部实体E3的名称是“银行”。 2、 起点 终点 名称 E1 P0 信用卡申请表 E2 P0 激活请求 P0或信用卡管理系统 CCMS E2 信用卡交易信息 将问题1的分析结果填写到图1中,由题干关键信息“(1)非信用卡客户填写信用卡申请表提 交CCMS”, 图1中数据流“确认函”、 “拒绝函”及其流向等综合信息可知, 外部实体E1“非信用卡客户” 有一条输出数据流“信用卡申请表”,流向加工P0“信用卡管理系统CCMS”。换而言之,图1中缺少了 1条名称为“信用卡申请表”的数据流,其起点是E1,终点为P0。 同理,由题干关键信息“(2)信用卡激活。信用卡客户向CCMS提交激活请求”和图1中数据流 “激活通知”及其流向等综合信息可知,外部实体E2“信用卡客户”有一条输出数据流“激活请求”,流 向加工P0“信用卡管理系统CCMS”。换而言之,图1中缺少了一条名称为“激活请求”的数据流,其起 点是E2,终点为P0。 由题干关键信息“(4)交易信息查询信用卡客户可以通过CCMS查询并核实其交易信息”、图1 中数据流“交易记录查询请求”及其流向和生活常识等综合信息可知, 加工P0“信用卡管理系统CCMS” 有一条输出数据流“信用卡交易信息”,流向外部实体E2“信用卡客户”。换而言之,图1中缺少了一 条名称为“信用卡交易信息”的数据流,其起点是P0,终点为E2。 3、错误的数据流名称:激活请求和信用卡申请表 改正后的数据流: 数据流名称 改正后数据流起点 改正后数据流终点 激活请求 E2 P3 信用卡申请表 E1 P4 软考数据库系统工程师交流群:424778193 微信:educity_cn 将问题1和问题2的分析结果填写到图1中。题干说明中“信用卡申请”、“信用卡激活”、“信用 卡客户信息管理”和“交易信息查询”是典型的加工名称。根据数据流图父图与子图数据平衡原则,对 照图2和信息填充后的图1可以直观地发现,图2中存在的一条错误数据流是“信用卡申请表”。数据流 “信用卡申请表”在图1中是从外部实体E1流向CCMS系统,而在图2中是从加工P4流向外部实体E1, 应予以更正。 根据题干说明中“(1)信用卡申请”描述信息,结合图2中与加工P4相关的“信用卡申请表”、“信 用卡申请信息”、“信用卡申请验证结果”等关键数据流信息可得,加工P4的名称是“信用卡申请”。 图2中数据流“信用卡申请表”的起点应改正为E1,终点应修改为P4。 同理,在图1中数据流“激活请求”从外部实体E2流向CCMS系统,而在图2中是从加工P4流向加 工P3, 应予以更正。 根据题干说明中“(2)信用卡激活”描述信息, 结合图2中加工P3的输出数据流“激 活通知”等信息可得,加工P3的名称是“信用卡激活”。图2中数据流“激活请求”的起点应改正为E2, 终点应修改为P3。 4、P1:交易信息查询 P2:(信用卡)客户信息管理 P3:信用卡激活 P4:信用卡申请 根据题干说明中“(3)信用卡客户信息管理”描述信息, 结合图2中与加工P2相关的“查询/修改个人信 息”、“个人信息”等关键数据流信息可得,加工P2的名称是“信用卡客户信息管理”。 根据题干说明中“(4)交易信息查询”描述信息,结合图2中与加工P1相关的“交易记录查询请 求”、“交易信息”等关键数据流信息可得,加工P1的名称是“交易信息查询”。 根据问题3的分析结果可知, 加工P3的名称是“信用卡激活”, 加工P4的名称是“信用卡申请”。 试题二试题二 5、(1)年龄=15 AND 年龄=60或年龄 BETWEEN 15 AND 60 (2)(商品号,商品名称,型号,品牌,销售量) SUM(数量) 商品.商品号=商品销售量.商品号 (3)SELECT 这是一道要求读者掌握SQL中的数据定义语言(DDL)和数据控制语言(DCL)的综合分析题,本题的解 答思路如下。 (1)定义列级上的用户定义完整性约束,要求客户的年龄在1560岁之间(包含15岁和60岁), 因此空缺处应填入“年龄=15 AND 年龄=60”。在标准SQL中,表示在某范围内取值还可以用关 键字BETWEENAND,因此该空缺处也可以填写BETWEEN 15 AND 60。注意,在SQL中没有类似“15 =年龄=60”这样的表达方式。 (2)创建视图。在定义视图时,视图的属性列或者全部省略或者全部指定。若全部省略,则表示 该视图由子查询中SELECT子句目标列中的各个字段构成,此时要求这些字段是简单的属性名。本题 中SELECT子句后的“商品.商品号”不是简单的属性名,且视图的第2个属性“商品名称”与SELECT子 句中的属性“名称”不同,故空缺处需要全部指定畅销商品视图的属性名,即应填入“(商品号,商品 名称,型号,品牌,销售量)”。空缺处应填写集合函数“SUM(数量)”。空缺处考核连接查询的查询 条件,视图应仅包含销售量大于等于1000件的商品信息,故该空缺处应填入等值连接条件“商品商 品号=商品销售量.商品号”。 (3)数据控制语言中的授权语句。GRANT之后紧跟的是所要授予的操作权限“查询”,因此空缺 处应填入“SELECT”。 6、客户,销售(注:加商品表错误) 客户.客户号=销售.客户号 IN (注:使用“=”错误) 软考数据库系统工程师交流群:424778193 微信:educity_cn 这是一道要求读者掌握SQL中的数据操作语言(DML)的综合应用题,本题的解答思路如下。 该SELECT查询涉及客户、商品和销售3个表的信息,但由于商品表的查询嵌套在外层查询内, 故外层查询只连接查询客户和销售两个表,即空缺处应填入“客户,销售”。 WHERE关键字之后是连接查询条件购买“新飞”品牌的任一型号“冰箱”的客户姓名及购买日 期,因此空缺处应填入“客户.客户号=销售.客户号”,空缺处应填入“IN”。 7、:pno,:cno,:quantity,:date 库存-:quantity COMMIT WORK或COMMIT 这是一道要求读者掌握嵌入式SQL的综合分析题,本题的解答思路如下。 空缺处考查嵌入式SQL程序中主变量的应用,处应填入“:pno,:cno,:quantity,:date”, 处应填入“库存-:quantity”。 每执行完一个SQL语句,SQLCA中的SQLCODE给出该语句执行的结果情况。根据嵌入C程序流程 可知,else表示SQL语句能成功执行的分支,因此空缺处应填入“COMMIT WORK(或COMMIT)”。 8、ADD 最小库存 INT(注:INT处可为INTEGER) UPDATEOF 库存 ON 商品或UPDATE ON 商品 nrow.数量=nrow.最小库存 nrow.商品号,nrow.最小库存*2+10 这是一道要求读者掌握SQL中的数据定义语言(DDL)的综合应用题,本题的解答思路如下。 对于“采购”关系模式,属性“商品号”和“数量”是其主键,属性“商品号”还是其外键。 对商品表增加最小库存属性,此时要修改商品表结构,增加一个属性。新增列的语法为ADD新 列名数据类型完整性约束。此处新列名为最小库存,类型为整数类型(INTEGER或INT)。 由于题目并未要求定义完整性约束,因此空缺处应填入“ADD 最小库存 INT”。 当有商品销售时,商品的库存随之逐步减少。当商品库存小于等于其最小库存时,则采购相应 的商品,数量为最小库存的两倍加上10。可以通过建立触发器来完成此应用需求,空缺处填写触发 事件, 即商品表上或者商品表的库存信息更新时, 若满足触发条件, 即商品库存小于等于其最小库存, 则执行触发动作,即插入一条采购信息记录。空缺处应填入“UPDATE OF 库存 ON 商品”;空缺处 应填入触发条件,即“nrow.数量=nrow.最小库存”;空缺处应填入触发器执行时应作的动作 “nrow.商品号,nrow.最小库存*2+10”。 试题三试题三 9、1 *,或n,或m *,或n,或m *,或n,或m 依题意,仔细分析该医院门诊处方单(见表3)中的数据及生活常识可知,一名医生可以开多张门诊处 方,一张门诊处方由一名医生开出,因此对于“医生”实体与“门诊处方”实体之间的联系“开处方”, 其联系的类型为一对多(1:n),即空缺处应填入1,空缺处应填入n。 同理,仔细分析该医院门诊处方单(见表3)和表2药品库中的数据,并结合生活常识可知,一张 门诊处方可以包含多种库存中的药品,一种库存中的药品也可以存在于多张不同的门诊处方中。因此 对于“门诊处方”实体与“药品库存”实体之间的联系“明细”,其联系的类型为多对多(m:n),即空缺 处应填入m,空缺处应填入n。 10、缺少的联系个数:3 挂号单:医师 挂号单:收银员 挂号单:门诊处方 依题意,在该门诊管理系统实体联系图(见图)中没有画出“挂号单”实体与其他实体之间的联系,因 此可从“挂号单”实体入手进行试题解答。由题干关键信息“患者首先在门诊挂号处挂号,选择科室和 软考数据库系统工程师交流群:424778193 微信:educity_cn 医师,根据选择的医师缴纳挂号费(医师出诊费)。收银员为患者生成挂号单”,并仔细分析该医院门 诊挂号单(见表1)中的数据,结合生活常识可知,病人患者挂某个医师的号,则需将挂号信息记录在 “挂号单”实体中,通常一张挂号单对应于一名医师,而一名医师可以存在于多张不同的挂号单中。 因此“挂号单”实体与“医师”实体之间存在联系“记录”,其联系的类型为多对一(n:1)。由于“收银 员为患者生成挂号单”, 通常一张挂号单由一名收银员生成, 而一名收银员可以开多张不同的挂号单, 因此“挂号单”实体与“收银员”实体之间存在联系“生成”,其联系的类型为多对一(n:1)。 由题干关键信息“收银员根据就诊号(见表1)和医师处方中开列的药品信息生成门诊处方单 (见表3)”,并结合生活常识可知,一张挂号单通常生成一张门诊处方(暂不考虑中药处方、西药处方 等情况;若考虑,则为多张门诊处方),一张门诊处方关联于一张挂号单,因此“挂号单”实体与“门 诊处方”实体之间存在联系“关联”,其联系的类型为一对一(1:1;若考虑中药处方、西药处方等情 况,则联系的类型为一对多)。 综合以上分析可知,图中还缺少3个联系,分别是“挂号单:医师”、“挂号单:收银员”、“挂号 单:门诊处方”。 11、收银员编号,或收银员 就诊号 药品编号,数量,单价 类型,库存,货架编号,单位,规格,单价 挂号单主键:就诊号 门诊处方主键:就诊号 处方明细主键:就诊号、药品编号 依题意,对于“挂号单”关系模式,根据表1的数据,并结合问题2的分析结果,由于“挂号单”实体 与“收银员”实体之间存在联系“生成”,在挂号单中需记录对应的收银员,因此,“挂号单”关系模式 需补充属性“收银员编号(或收银员)”。 挂号单的主键“就诊号”, 外键是“医师编号”和“收银员编号”。 同理,对于“门诊处方”关系模式,根据表3的数据,并结合问题2的分析结果,“挂号单”实体 与“门诊处方”实体之间存在联系“关联”,在门诊处方单中需记录挂号单中的就诊号,因此,“门诊处 方”关系模式需补充属性“就诊号”。由于“挂号单”实体与“门诊处方”实体之间存在一对一(1:1)的 联系,因此挂号单的主键“就诊号”可以作为门诊处方的主键,门诊处方的外键是“就诊号”和“收银员 编号(或收银员)”。 对于“药品库存”关系模式,其主要记录药品的详细信息和库存信息,根据表2的数据,“药品库 存”关系模式需补充的属性有“类型,库存,货架编号,单位,规格,单价”,其主键是“药品编号”。 由问题1的分析结果可知,一张门诊处方中包含多项药品信息,而一种药品也可以存在于多张 门诊处方中,因此通过“处方明细”关系模式来表示这种多对多(m:n)的联系,并且由于每种药品的 具体信息已经在“药品库存”关系模式中记录,在“处方明细”关系模式中主要记录的是门诊处方与药 品的对应关系, 以及处方所需药品的具体数量, 结合题干给出的关键信息“由于药品价格会发生变化, 因此门诊管理系统必须记录处方单上药品的单价”。因此,“处方明细”关系模式需补充的属性有“药 品编号,数量,单价”。其中,“就诊号”和“药品编号”既是“处方明细”关系模式的主键,也是它的 外键。 试题四试题四 12、(1)ISBN教材名称,教材编号,出版社,版本号 由于一本书可以有多个作者,因此作者存在多值依赖 教材编号作者 ISBN作者 (2)教材编号 和 ISBN (3)BCNF 软考数据库系统工程师交流群:424778193 微信:educity_cn 没有主属性对码的部分依赖和传递依赖;非主属性完全依赖于码;没有任何属性完全函数依赖 于非候选码的任何一组属性 (4)教材1(教材编号,ISBN,教材名称,出版社,版本号) 教材2(教材编号,作者)或者教材2(ISBN,作者) 这是一道要求读者掌握数据库关系模式规范化理论的综合分析题,本题解答思路如下。 根据图、表2和题干相关描述信息,可得到如下各关系模式的主键和外键。 班级(班级号,入学年份,人数,院系名称,专业名称) 课程(课程编号,课程名,教材编号) 教材(教材编号,教材名称,ISBN,出版社,作者,版本号) 教学计划(院系名称,专业名称,学期,课程编号,课程名,教材编号) (1)对于“教材”关系模式,教材的信息除了完全函数依赖于教材编号,也完全函数依赖于ISBN 号。因此还需补充函数依赖:ISBN教材名称,教材编号,出版社,版本号。 此外,根据题干中的关键信息“一种教材可以有多个作者”可知,对于“教材”关系模式中的作者 属性,存在多值依赖。 教材编号作者 ISBN号作者 (2)如果属性组Y完全函数依赖于候选键,则根据FD2和(1)中补充的函数依赖可知,“教材”关 系模式的候选键为:教材编号和ISBN。 (3)对于“教材”关系模式来说,没有主属性对码的部分依赖和传递函数依赖;非主属性完全依 赖于码; 没有任何属性完全函数依赖于非候选码的任何一组属性, 满足BCNF范式的要求。 因此“教材” 关系模式属于BCNF范式。 (4)由于“教材”关系模式存在多值依赖,因此它不满足4NF的要求。可以针对“作者”属性进行 分解,从“教材”关系模式中去掉作者属性得出关系模式“教材1”,并将作者属性及对应的教材主键放 在新的关系模式“教材2”中。 教材1(教材编号,ISBN,教材名称,出版社,版本号) 教材2(教材编号,作者) 或者 教材2(ISBN,作者) 13、(1)“教学计划”关系存在数据冗余。课程关系中已经记录了每个不同课程的课程名和教材编号, 没有必要在教学计划中再次记录课程名和教材编号 (2)可以。根据教学计划中的学期,求出每学期各院系的不同专业即将开设的课程有哪些,从课 程关系中找出课程需要购买的教材种类。同时根据院系和专业信息从班级关系中,求出课程所涉及的 班级人数。将每种教材乘以对应班级的人数,就得到了不同种类教材的需要数量 (3)修改课程关系, 增加“选修必修”属性, 用来说明该门课程是必修课还是任选课, 即课程(课 程编号,课程名,教材编号,选修必修) 新增关系模式:选修情况(班级号,选修课称号,选修人数)或者选修情况(选修课程号,选修人 数) 统计教材需求信息时,需要对课程的“选修必修”属性值进行判断。如果是任选课,则从“选修 情况”关系模式中获取选修人数,进而得出选修课教材的需求量;如果是必修课,则从班级关系模式 中获得班级人数,进而得出必修课教材的需求量。最后加以分类统计 这是一道要求读者掌握数据库逻辑结构设计的综合应用题,本题的解答思路如下。 (1)教学计划主要是描述每个专业方向不同学期所开设的课程信息,它是教材需求的来源。在如 图所示的关系模式中,“课程”关系模式已经记录了课程的课程名和教材编号等信息,在教学计划中 只需记录每条教学计划与课程的对应关系即可。因此,图中“教学计划”关系模式存在数据冗余,即 没有必要再在教学计划中记录课程名和教材编号。 (2)在“教学计划”关系模式中,存放着每学期不同专业班级所应开设的课程。根据教学计划确 定每学期需开设的课程总数,进而确定所需的教材种类。再根据不同学期每门课程对应多少个班级, 软考数据库系统工程师交流群:424778193 微信:educity_cn 确定每种教材对应的班级总数,再分别乘以班级人数,得到不同学期每种教材的需求量。这一计算过 程符合题干中的关键信息“教材需求量是根据现有的教学计划和班级人数计算得到的”,因此根据现 有关系模式,可以求解得到学校每学期各种教材的需求总量。 (3)考虑到任选课只有部分学生选修,即所开设的课程分为必修课程和选修课程。必修是教学计 划中对应班级的每个同学都必须学习的,选修课程是教学计划中对应班级的一部分同学任选的,因此 为了满足这一需求,需要修改“课程”关系模式,增加“选修必修”属性,用来说明该门课程是必修课 还是任选课。对“课程”关系模式具体修改如下。 课程(课程编号,课程名,教材编号,选修必修) 同时,为了了解某一选修课程的选修人数,以便统计教材需求量,还需要增加“选修情况”关系 模式,即: 选修情况(班级号,选修课程号,选修人数) 或者 选修情况(选修课程号,选修人数) 在统计教材需求信息时,需要对课程的“选修必修”属性值进行判断。如果是任选课程,则根据 教学计划对应的专业方向,找出对应的班级,再根据班级和选修课程号,从“选修情况”关系模式中 获取具体的选修人数,进而得出选修课教材的需求量;如果是必修课程,则仍从专业方向对应的班级 关系中获得班级人数,进而得出必修课教材的需求量,最后进行相关的分类统计。 试题五试题五 14、调度A结果:13 调度B结果:10 调度C结果:12 调度A和C结果错误,因为破坏了事务的隔离性。一个事务的执行结果被另一个所覆盖 这是一道要求读者掌握并发情况下不同的调度可能产生不同结果的综合分析题。 由题意可知,两个售票网点同时销售长途汽车班次A的汽车票,初始状态下长途汽车班次A的汽 车票数量x=15。 对于调度A,售票网点1通过伪指令“R1(A,x)”,获取长途汽车班次A当前的剩余汽车票数15, 并赋给本地变量x。而售票网点2也通过伪指令“R2(A,x)”,获取长途汽车班次A当前的剩余汽车票数 15,并赋给本地变量x。接着,售票网点1售出3张长途汽车班次A的汽车票,并通过伪指令 “W1(A,x-3)”,将当前数据库中长途汽车班次A的剩余汽车票数置为12(即15-3=12)。但是售票网 点2售出两张长途汽车班次A的汽车票,并通过伪指令“W1(A,x-2)”,将当前数据库中长途汽车班次 A的剩余汽车票数重新置为13(即15-2=13)。 同理,对于调度B,售票网点1通过伪指令“R1(A,x)”,获取长途汽车班次A当前的剩余汽车票 数15,并赋给本地变量x。接着,售票网点1售出3张长途汽车班次A的汽车票,并通过伪指令 “W1(A,x-3)”,将当前数据库中长途汽车班次A的剩余汽车票数置为12(即15-3=12)。然后售票网 点2通过伪指令“R2(A,x)”,获取长途汽车班次A当前的剩余汽车票数12,并赋给本地变量x。最后 售票网点2售出两张长途汽车班次A的汽车票,并通过伪指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论