问答题 阅读下列说明,根据要求回答问题。
[说明]
某企业的生产管理部门拟开发生产计划管理系统,该系统负责管理生产计划信息,记录生产安排和采购的情况。现有的表格信息如表1、表2和表3所示。
表1 某企业布艺玩具生产计划
编号:LFX/JL7.5.1-01     计划名称:10月份布艺玩具生产计划
起止时间 2007.10.10~2007.10.19 预算总金额 10万
产品编号 产品名称 生产数量 生产小组编号 生产小组名称 安排人力
B0710-2 玩具熊 1000只 A1 裁剪1组 5
B2 缝纫2组 6
C0710-2 玩具猫 500只 B1 缝纫1组 4
表2 产品用料信息
产品名称
材料编号
玩具熊
材料名称
产品编号 B0710-2
数量
MC005 米色布 1.7米
ML008 米色缎带 0.8米
MC011 棕色布 1.5米
表3 采购信息
采购单号 P0005 应商 上海××集团
地址 上海市××路 电话 52387717
总价格 8420元 成交日期 2007-10-11
材料编号 材料名称 数量 单价
MC005 米色布 12 30元/米
MC011 棕色布 260 31元/米
  根据上述需求,设计的生产计划数据库的关系模式如图所示。
 
问答题 对于关系“生产计划”,请回答以下问题。
(1)关系“生产计划”是否满足第4范式?请用不超过200字的内容叙述理由。
(2)把“生产计划”分解为第4范式,分解后的关系名依次为:生产计划1,生产计划2……
【正确答案】这是一道考核对关系模式规范化理论掌握情况的综合分析题,本题的解答思路如下。
(1)范式的判定可通过范式定义来实现。应从1NF入手,然后2NF、3NF等一步步进行判定。1NF的判定是分析属性类型,如含有组合属性则不属于1NF。再根据函数依赖集,确定关系的候选码和非主属性,考查函数依赖集,不存在非主属性对码的部分依赖为2NF,不存在非主属性对码的传递依赖为3NF,函数依赖的左部包含码为BcNF,只有平凡的多值依赖为4NF。
根据图、表4、各属性间的函数依赖关系和题干相关描述信息,可得到如下各关系模式的主键。
生产计划(生产计划编号,生产计划名称,起始时间,截止时间,预算总金额,产品编号,产品名称,生产数量,生产小组编号,生产小组名称,安排人力)
产品用料(产品编号材料编号,材料名称,材料数量,单位)
采购(采购单号供应商,地址,电话,材料编号,数量,单价,总价格,日期)
根据“生产计划”关系模式的函数依赖,其码为“生产计划编号,产品编号,生产小组编号”,而又存在部分函数依赖,如下所示。
(生产计划编号,生产小组编号,产品编号)→安排人力
(生产计划编号,产品编号)→(生产小组编号,安排人力)
因此“生产计划”关系模式不满足第2范式(2NF)。同时,可以根据第4范式的要求:不允许有非平凡且非函数依赖的多值依赖。而在“生产计划”关系模式存在多值依赖:(生产计划编号,产品编号)→→(生产小组编号,安排人力),因此“生产计划”关系模式不满足第4范式(4NF)。
(2)关系模式的规范化过程是通过对关系模式的分解来实现的,把低一级的关系模式分解为若干个高一级的关系模式。分解的方法为:分析关系模式中的函数依赖,通过投影分解,消除不合理的函数依赖,即对于不满足范式要求的函数依赖,提取其所有属性构成新的关系模式,从原关系模式中去掉被决定的属性,依次考查所有的函数依赖即可。
对于“生产计划”关系模式,因为存在部分函数依赖和多值依赖,所以需要对其进行分解,分解后的关系模式及其主键如下。
生产计划1(生产计划编号,生产计划名称,起始时间,截止时间,预算总金额)
生产计划2(生产计划编号产品编号,生产数量)
生产计划3(生产计划编号产品编号,生产小组编号,安排人力)
生产计划4(产品编号,产品名称)
生产计划5(生产小组编号,生产小组名称)
其中,“生产计划1”关系的函数依赖为:生产计划编号→(生产计划名称,起始时间,截止时间,预算总金额);“生产计划2”关系的函数依赖为:(生产计划编号,产品编号)→(生产数量);“生产计划3”关系的函数依赖为:(生产计划编号,产品编号,生产小组编号)→安排人力;“生产计划4”关系的函数依赖为:产品编号→产品名称;“生产计划5”关系的函数依赖为:生产小组编号→生产小组名称。这5个关系既不存在部分函数依赖和传递依赖,也不存在多值依赖,因此满足第4范式的要求。
【答案解析】
问答题 对于关系“采购”,请回答以下问题。
(1)若“采购”关系中不考虑折扣情况,则该关系是否存在派生属性?若存在,请指出其中的派生属性。
(2)针对“采购”关系,利用100字以内的文字简要说明会产生什么问题。
(3)分解“采购”关系,分解后的关系名依次为:采购1,采购2……
【正确答案】这是一道要求读者掌握派生属性基本概念、第2范式和第3范式的综合分析题,本题的解答思路如下。
(1)派生属性是指可以由其他属性经过计算获得的属性,这类属性在设计关系模式中通常不进行存储,会因为冗余而容易产生不一致性。
依题意,若“采购”关系中不考虑折扣情况,则该关系存在派生属性“总价格”。因为“总价格”可以根据“数量”和“单价”计算得出。
(2)第2范式(2NF)的要求:每个非主属性完全函数依赖于码。
根据“采购”关系的函数依赖可知,“采购”的码为(采购单号,供应商,材料编号),而又存在部分函数依赖:
采购单号→(供应商,地址,电话,总价格,日期)
供应商→(地址,电话)
(供应商,材料编号)→单价
因此“采购”关系模式不满足第2范式(2NF),不满足BCNF的关系模式往往会造成插入异常、删除异常和修改复杂(或修改异常)等问题,这也是规范化的根本原因所在。
(3)因为存在部分函数依赖,所以需要对“采购”进行分解,分解后的关系模式及其主键如下所示。
采购1(采购单号,总价格,EJ期)
采购2(供应商,地址,电话)
采购3(供应商材料编号,单价)
采购4(采购单号供应商材料编号,数量)
其中,“采购1”关系的函数依赖为:(采购单号)→(总价格,日期);“采购2”关系的函数依赖为:(供应商)→(地址,电话);“采购3”关系的函数依赖为:(供应商,材料编号)→单价;“采购4”关系的函数依赖为:(采购单号,供应商,材料编号)→数量。这4个关系中的每一个非主属性既不部分依赖于码,也不传递依赖于码,因此满足第3范式的要求。
【答案解析】
问答题 试分析能否根据如图所示的生产计划数据库,统计出某一个生产计划所采购的某个供应商的总金额?并用不超过100字的内容叙述理由。
【正确答案】这是一道要求读者掌握数据库的逻辑结构设计的综合应用题,本题的解答思路如下。
在如图所示的生产计划数据库中,由于“采购”关系模式中缺少记录采购所对应的“生产计划编号”,因此无法统计出某一个生产计划所采购的某个供应商的总金额。
【答案解析】