分析

案例题 假设某集团企业在全国各地建有多个工厂,雇佣员工生产产品,并通过多个经销商销售,现需开发对生产和销售活动进行管理的系统,请根据下述需求描述完成该系统的数据库设计。
1.工厂包括工厂编号、厂名、地址、厂长等信息,其中一个工厂只能有一个厂长,厂长也属于工厂的员工,一个工厂可以生产多种产品;
2.产品包括产品编号、产品名称、规格、单价等信息,一种产品也可以在多个工厂生产;
3.每个工厂按照集团分配的计划任务数量生产产品,并确定生产时间;
4.员工包括员工号、姓名、电话等信息,每个工厂雇佣多名员工,且每名员工只能在一个工厂工作,不同工厂聘用员工的聘期和工资不同;
5.经销商包括经销商编号、公司名称、联系人、联系电话、所属区域、区域负责人等信息,其中每个经销商只能属于一个区域,且一个区域只能有一个负责人,经销商可以从不同的工厂销售各种产品,需要记录产品的销售时间及数量。
【概念模型设计】
根据以上描述进行需求分析,初步设计的部分实体联系图如图1-1所示。



【关系模式设计】
根据需求分析,初步设计系统关系模型如下:
工厂(工厂编号,厂名,地址,厂长)
员工(员工号,姓名,电话)
产品(产品编号,产品名称,规格,单价)

经销商(经销商编号,公司名称,联系人,联系电话,所属区域,区域负责人)
生产(工厂编号,(1),任务数量,生产时间)
销售((2),(3),(4),销售时间,数量)

【问题1】(4分)
在图1-1中画出工厂与员工之间的联系,并标明联系类型;画出工厂、产品、经销商三个实体间的联系,并标明联系类型。
【问题2】(4分)
根据题意,将关系模式中的空(1)~(4)补充完整。
【问题3】(3分)
销售关系的主键是(5),生产关系的主键是(6),工厂关系的外键是(7)。
【问题4】(4分)
a.经销商关系属于第几范式?为什么?
b.如果要使经销商关系满足第三范式,应如何修改?

正确答案


【问题2】
(1)产品编号
(2)工厂编号
(3)经销商编号
(4)产品编号
注:(2)~(4)顺序可以互换。
【问题3】
(5)工厂编号,经销商编号,产品编号,销售时间
(6)工厂编号,产品编号,生产时间
(7)厂长
【问题4】
a.经销商关系属于第2范式:
经销商(经销商编号,公司名称,联系人,联系电话,所属区域,区域负责人)关系的主码是经销商编号,而存在函数依赖;
经销商编号→所属区域,所属区域→区域负责人,经销商编号→区域负责人
因此存在传递函数依赖,但不存在部分依赖,属于第2范式。
b.第三范式不能存在部分函数依赖及传递函数依赖,需将经销商关系分解为:
经销商(经销商编号,公司名称,联系人,联系电话,所属区域)
区域(所属区域,区域负责人)


本题考查数据库概念结构设计、概念模型向关系模型转换的方法及规范化处理过程的相关知识。

【问题1】
从“一个工厂仅设一位厂长,且这位厂长同时是工厂的员工之一”以及“每位员工仅服务于一个工厂”的信息中,我们可以推断出工厂与其厂长(同时身为员工)之间存在一对一的关联关系;而从“每个工厂会雇佣多名员工,且每位员工仅服务于一个工厂”的表述中,我们了解到工厂与员工之间是一对多的关联关系;再者,“经销商能够从多个工厂采购并销售多种产品”的情况表明,经销商、工厂以及产品之间形成了一个多对多的三元关联关系。这些关系在完整的实体-关系(ER)图中得到了清晰的展示,如图下图所示。




【问题2】
由“一个工厂可以生产多种产品”和“一种产品也可以在多个工厂生产”,所以“生产”要包含工厂的主码及产品的主码;故(1)产品编号
因为销售是一个工厂、产品、经销商之间的多对多三元联系,所以“销售”要包括工厂编号、产品编号、经销商编号;故(2)工厂编号,(3)产品编号,(4)经销商编号。三者顺序可以打乱

生产(工厂编号,产品编号,任务数量,生产时间)
销售(工厂编号,产品编号,经销商编号,销售时间,数量)
【问题3】
主键是用来唯一标识表中每条记录的字段或字段组合,而外键则是用来建立表与表之间关联的字段。
在生产关系中,工厂编号和产品编号都是生产关系的外键,因为它们分别指向工厂关系表和产品关系表;但如果只有(工厂编号,产品编号)作为生产关系的联合主键,不足以区分同一天内的不同时间的生产任务(如果存在多个批次的话),所以为了确保唯一性,我们要将“生产时间”作为主键的一部分;
同理,在销售关系中,因为同一个经销商在同一个工厂购买同一产品,如果不加上时间去区别的话,那么以工厂编号、经销商编号、生产编号为主键,这个主键肯定会在记录中重复,不能够指定唯一的一条记录;所以应该用(工厂编号,产品编号,经销商编号,销售时间)作为销售关系的联合主键;
在工厂关系中,因为厂长存在与员工表中,所以厂长是工厂关系的外键。
【问题4】
a.经销商(经销商编号,公司名称,联系人,联系电话,所属区域,区域负责人)关系的主码是经销商编号,而存在函数依赖:
经销商编号→所属区域,所属区域→区域负责人,经销商编号→区域负责人
因此存在传递函数依赖,但不存在非主属性(即除经销商编号外的其他属性)部分依赖于主码的情况,因此经销商关系属于2NF。
b.根据规范化定义,第三范式(3NF)要求关系中不能存在非主属性对主码的部分函数依赖以及传递函数依赖。为了消除这些依赖关系,我们通常采用模式分解的方法:
? 经销商(经销商编号,公司名称,联系人,联系电话,所属区域),其中经销商编号为主码。存在函数依赖:经销商编号→公司名称,经销商编号→联系人,经销商编号→联系电话,经销商编号→所属区域;
? 区域(所属区域,区域负责人),其中所属区域为主码。存在函数依赖:所属区域→区域负责人;
经过这样的分解后,两个关系都不再存在非主属性对主码的部分函数依赖及传递函数依赖,因此它们都符合第三范式(3NF)的要求。
查看解析

相关试题

刷题小程序
电子商务师题库小程序