首页 百科知识 集成局部概念模型

集成局部概念模型

时间:2022-10-17 百科知识 版权反馈
【摘要】:“仓务”和“分店”局部E-R模型中的“调拨单”虽然名称相同,但意义不一样。消除冗余数据后,“商品”、“供应商商品”、“供应商停止供货商品”和“仓库存货”4个实体的局部E-R模型,如图6-14所示。

6.4.2 集成局部概念模型

在前面,我们分析了ERM系统的4个局部E-R模型,鉴于局部E-R模型数量不大,它们之间的关系也不太复杂,因此,我们将4个局部模型和集成操作涉及的四个方面(合并实体、解决冲突、消除冗余和优化全局E-R模型)综合在一起,按下面几个要点进行分析,并给出解决方案

一、合并实体、解决冲突和初步优化E-R模型

(1)检查是否存在同名同义的实体

在4个局部E-R模型中,有3个同名同义的实体:“供应商”、“分店”和“仓库存货”。

■ 供应商:“采购”和“仓务”局部E-R模型中的“供应商”实体,可以合并成一个实体。其属性同“采购”局部E-R模型中的“供应商”实体。

■ 分店:“仓务”和“分店”局部E-R模型中的“分店”实体,可以合并成一个实体。其属性不变。

这3个实体合并后,它们与其他实体的联系不发生改变,如图6-12所示。

img111

(a)“供应商”实体与其他实体的联系图

img112

(b)“分店”实体与其他实体的联系图

图6-12

(2)检查是否存在不同名称但意义相同或相似的实体

在4个局部E-R模型中,有6组名称不同但意义相同或相似的实体:①“采购员”、“库管员”和“营业员”;②“员工”、“管理人员”和“一般人员”;③“部门”和“分店”;④“仓库”和“分店仓库”;⑤“仓位”和“分店仓位”;⑥“仓库存货”和“分店仓库存货”。

■ 采购员、库管员和营业员:这3个实体的意义只是为了标识对应业务的操作者,是“一般人员”的具体化,在ERM系统中没有自身特有的扩充属性,因此,将它们合并到“一般人员”实体。

■ 员工、管理人员和一般人员:管理人员和一般人员在ERM系统中没有自身特有的扩充属性,因此,将它们合并到“员工”实体。合并后,如何处理“管理人员”和“一般人员”以及“管理人员”和“部门”之间的联系呢?可以在“员工”实体中添加“是否为管理人员”属性,一方面,通过这个属性解决“管理人员”和“部门”之间的联系,另一方面,可通过“是否为管理人员→部门→员工”来解决“管理人员”和“一般人员”的联系。

■ 部门和分店:分店是组织机构中的一个具体部门,分店没有自身扩充的属性,因此,可将“分店”合并到“部门”。否则,可将分店作为子类,部门作为超类来处理,在部门和分店间添加一个继承联系。

■ 仓库和分店仓库:这两个实体分别对应到仓务部和分店,而仓务部和分店是组织机构中的两个具体部门,可将它们合并到“仓库”实体,并调整相关联系。

■ 仓位和分店仓位:可将“分店仓位”合并到“仓位”实体,并调整相关联系。

■ 仓库存货和分店仓库存货:这两个实体分别对应到仓务部和分店,可将“分店仓库存货”合并到“仓库存货”实体,并调整相关联系。

这6组实体合并后,它们与其他实体的联系以及参与约束将发生改变,如图6-13所示。该图比较复杂,实体数量较多,为了方便阅读,我们省略了实体的属性和标识符栏以及联系的参与约束值,当联系线有交叉时,用虚线区别。

img113

图6-13

(3)检查是否存在名称相同但意义不同的实体

“仓务”和“分店”局部E-R模型中的“调拨单”虽然名称相同,但意义不一样。其中,“仓务”中的“调拨单”是由仓库执行调拨的,“分店”中的“调拨单”是由分店执行调拨的。因此,为了区别它们,分别取名为“仓库调拨单”和“分店调拨单”。

(4)检查是否存在同名同义的联系

无。

(5)检查是否存在不同名称但意义相同的联系

无。

(6)检查是否存在相同名称但意义不同的联系

无。

(7)消除冗余的联系

“供应商停止供货商品”可以通过“供应商→供应商商品→供应商停止供货商品”得到,因此,“供应商”和“供应商停止供货商品”之间的联系是冗余的,应该删除。

(8)消除冗余数据

■ “供应商商品”和“供应商停止供货商品”:后者是子类,因此,其属性可简化描述为“停止供货日期、停止供货原因”即可。

■ “仓库存货”:一个品牌包含多个商品种类,一个商品种类包含多个货号的商品。因此,在仓库存货中存在“品牌”和“商品种类”两个冗余数据。消除冗余的办法是引入“品牌”和“商品种类”两个实体。“品牌”和“商品种类”存在一个多对多联系,“商品种类”和“仓库存货”之间存在一个一对多联系。

■ “供应商商品”和“仓库存货”:在ERM系统中,一个供应商商品对应一个仓库存货,反过来,一个仓库存货也对应一个供应商商品,两者存在一个一对一联系,两个实体在商品属性上有冗余数据。为了消除冗余,可以引入一个“商品”超类实体。“商品”实体的属性有(商品编号、商品名称、组成成分、颜色、尺码、单位),商品编号为标识符。设置“供应商商品”和“仓库存货”只从“商品”继承主键属性。

消除冗余数据后,“商品”、“供应商商品”、“供应商停止供货商品”和“仓库存货”4个实体的局部E-R模型,如图6-14所示。

img114

图6-14

■ “供应商商品”和“采购订单明细”:“采购订单明细”中的商品来源于“供应商商品”,“供应商商品”又继承“商品”的属性,因此,“采购订单明细”中的商品名称、颜色、尺码和单位4个属性存在冗余,应该删除。注意:“采购订单明细”中的“单价”要保留,它是本条记录的采购单价,而“供应商商品”中的“单价”只是一个供货参考单价,两个单价的意义不同。

■ “入库明细”、“仓务调拨明细”、“分店调拨单”以及“零售记录”:商品名称、颜色、尺码和单位4个属性存在冗余,应该删除。

■ “分店调拨单”:分店调拨一般一次会调拨多种存货,因此,应该将分店调拨单中的存货独立出来形成一个“分店调拨明细”实体,建立两者之间的联系,从而消除冗余数据。

二、进一步优化E-R模型

(1)删除多值属性

“供应商”实体中的“电话”、“传真”、“联系人”、“E-mail”和“银行账号”属性可能存在多个值,但在本系统中,不会产生问题,因此不用进行分解。

(2)分解递归联系

部门之间存在一个递归联系,这个递归联系所冗余的数据是用于建立关系的,不用分解。

(3)分解多对多联系

“品牌”和“商品种类”、“分店调拨明细”和“仓库存货”以及“仓位”和“仓库存货”之间存在多对多联系。但这几个多对多联系所冗余的数据是建立关系所必需的,因此不用分解。

(4)分解复杂联系

无。

(5)优化实体的标识符

这步操作的主要目的是为了简化实体的标识符,从而提高数据访问的效率和方便维护。

■ 仓库:仓库名称较长,作为标识符的效率不高。增加一个“仓库编号”属性,其类型为字符,长度为2,这样可方便维护和提高访问效率。

■ 仓位:同仓库一样,增加一个“仓位编号”属性,但其长度为4,前两位为对应的仓库编号,这样,仓位在整个系统中可保持唯一,大大提高按仓位进行数据访问的效率。

■ 供应商:增加“供应商编号”属性,作为实体标识符。

图6-15是综合后的全局E-R模型。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈