ER建模方法

范式:

一个实体的某个属性保存多个值,将这样的多值属性分离为一个实体。


ER模型中的多值属性处理

ER建模遇到的问题:

(1)如果存在一个实体与其它实体之间存在两个或更多的一对多联系,很可能存在扇形陷阱问题。扇形陷阱问题可以通过改变实体间的联系次序,从而重新构建模型解决。

(2)如果在实体联系的通路上存在一个或者多个参与性约束最小值为零的情况,很可能存在深坑陷阱问题,深坑陷阱问题可以通过重新添加被遗漏的联系解决。

1)扇形陷阱

问题:

扇形陷阱是指在ER模型中,某些实体之间的通路(pathway)是不明确的情况。
如图1,一个学院College有多个学科方向或系Department,学院可以聘有多名教师Teacher。

图1 扇形陷阱的例子

当我们想知道某位教师到底属于哪个学科方向或系时,问题就产生了,该模型中很可能无法确定某些教师属于哪个学科方向或系,产生了扇形陷阱问题。

图2 扇形陷阱的实体个体之间联系

解决方式:

图1的ER模型中实体之间的联系次序是不合适的。
教师应该是与学科方向发生直接联系,学科方向和学院之间也是直接联系,教师与学院之间的联系应该属于间接联系,它可以通过教师与学科方向的联系达到与学院联系的目的。

如图3所示该图清楚地标识了哪些教师属于哪个学科方向。

图3 扇形陷阱的解决方法
图4 扇形陷阱的解决方法

2)深坑陷阱

问题:

深坑陷阱是指在ER模型中,某些实体型之间存在联系,而这些实体型中的部分实体却不存在相应的通路。

如图5所示的模型,反映一个学院有多个学科方向或系,系聘有多名教师,允许某些教师暂时不属于任何系。
图5与图3的唯一差别就是教师在与系的联系中,图3反映的事实是教师必须并且只能属于某一个系,而图5反映的情况是允许部分教师暂时不属于任何系。

图5 深坑陷阱的例子

有部分教师可以不参与教师实体型与学科方向实体型间这一联系,那么没有参与这一联系的那部分教师是否仍属于学院呢?如果回答是肯定的,那么在该模型就存在问题了。

图6 深坑陷阱实体个体之间的联系

图6中,当我们试图回答“T006教师属于哪个学院”这个问题时,无法得到确切答案。
根据该模型,教师与学院应该存在某种联系,但部分教师却不能够通过学科方向与学院联系起来,这就是深坑陷阱问题。

解决方式

深坑陷阱问题导致了部分教师无法通过学科方向与学院联系起来,他们与学院之间的联系被遗漏了,因此解决深坑陷阱问题的方法就是重新标识被遗漏的联系,如图3.20所示。在图3.20中,通过增加教师与学院间的一个联系,从而使得所有教师都能间接或直接与学院发生联系,解决了深坑陷阱的问题,图3.19所示的部分实体个体之间的联系如图3.21所示,图3.21中消除了图3.19中无法确定T006教师属于哪个学院的问题。

图7 深坑陷阱的解决
图8 深坑陷阱解决之后实体个体之间的联系

你可能感兴趣的:(ER建模方法)