- 电子商务数据库技术(第3版)
- 潘郁
- 2250字
- 2025-02-28 08:47:29
2.2.2 概念数据模型
数据库设计工作比较复杂,它将现实世界的数据组织成符合具体数据库管理系统所采取的数据模型,一般情况下不可能一次到位。在实际应用中,很少直接采用传统数据模型进行数据库设计。P.P.S.Chen于1976年提出了实体-联系方法。这种方法简单、实用,所以得到了非常普遍的应用,也是目前描述概念数据模型最常用的方法。它所使用的工具即为E-R图。E-R图所描述的现实世界的信息结构称为组织模式或企业模式,同时把这种描述结果称为E-R模型。E-R模型可以进一步转换为任何一种DBMS所支持的数据模型。因此,提出E-R模型的目的有:①企图建立一个统一的数据模型,以概括三种传统数据模型(层次模型、网状模型和关系模型);②作为三种传统数据模型之间互相转换的中间模型;③作为超脱DBMS的一种概念数据模型,以比较自然的方式模拟现实世界。
E-R模型不同于传统数据模型,它不是面向实现的,而是面向现实世界的。设计E-R模型的出发点是有效和自然地模拟现实世界,而不是首先考虑它在机器中如何实现。
E-R图具有以下三要素。
(1)实体集。
用矩形框表示,框内标注实体名称。
(2)属性。
用椭圆形框表示,并用连线与实体集连接起来。如果属性较多,为使图形更加简明,有时也将实体集与其相应的属性另外单独用列表表示。
(3)实体集之间的联系。
实体集间的联系用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体集相连,并在连线上注明联系类型。
实体集间的联系类型是指一个实体集中的每一个实体与另一个实体集中多少个实体存在联系,并非指一个矩形框通过菱形框与另外几个矩形框画连线。
实体集间的联系虽然复杂,但都可以分解为少数几个实体集间的联系,最基本的是两个实体集间的联系。联系抽象化后可以归结为以下三种类型。
(1)一对一联系(1:1)。
设A、B为两个实体集。若A中的每个实体至多和B中的一个实体有联系,反过来,B中的每个实体至多和A中的一个实体有联系,则称A和B是一对一(1:1)联系。如一个公司只有一个总经理,同时一个总经理不能在其他的公司兼任。注意“至多”一词的含义,一对一联系不一定都是一一对应的关系。如图2.4所示为一对一联系。

图2.4 一对一联系
(2)一对多联系(1:n)。
如果A中的每个实体可以和B中的几个实体有联系,而B中的每个实体至多和A中的一个实体有联系,那么A对B属于一对多(1:n)联系。这类联系比较普遍,如部门与职工是一对多联系,因为一个部门有多名职工,而一名职工只在一个部门就职。又如,一个学生只能属于一个班级,而一个班级有很多个学生。如图2.5所示为一对多联系。
一对一联系可以看作是一对多联系的一个特殊情况,即n=1时的特例。

图2.5 一对多联系
(3)多对多联系(m:n)。
若A中的每个实体可与B中的多个实体有联系,反过来,B中的每个实体也可以与A中的多个实体有联系,则称A对B或B对A是多对多联系(m:n)。如研究人员和科研课题之间是多对多联系:一个人可以参加多个课题,一个课题可以由多个人参加。如图2.6所示为多对多联系。

图2.6 多对多联系
E-R图中的联系类型有递归联系、二元联系和多元联系。
(1)递归联系。
递归联系即一个实体集与其本身的联系。如“机关职工”实体集,某些职工处在领导岗位上,他们与其他的职工是管理与被管理的关系。用E-R图表示的递归关系如图2.7所示。

图2.7 递归关系
(2)二元联系。
二元联系即两个实体集之间的联系。图2.4、图2.5和图2.6中的联系都是二元联系。
(3)多元联系。
多元联系是指三个及以上实体集之间的联系。例如,一个供应商可以向多个项目提供多种材料,一种材料可以被多个项目使用,由多个供应商提供,一个项目使用由多个供应商提供的各种材料。它们之间的多元联系如图2.8所示。

图2.8 三个实体间的多对多联系
E-R图为抽象地描述现实世界提供了一种有力工具,它所表示的概念数据模型是各种数据模型的共同基础,进行数据库设计时必然要用到此方法。
绘制E-R图的具体步骤如下。
步骤一:确定所有的实体集。
步骤二:确定实体集之间的联系。
步骤三:选择实体集应包含的属性。
步骤四:确定实体集的关键字,用下划线在属性上表明关键字的属性组合。
步骤五:确定联系的类型,在用连线将表示联系的菱形框联系到实体集时,在线旁注明是1或n(多)来表示联系的类型。
当E-R图比较复杂、实体集与联系都较多时,为了简洁也可以不在同一张图上画出属性,只在一张图上绘出实体集与联系的图形,另外再分别给出每个实体集或联系的属性。
怎样确定实体集、联系和属性,没有一个固定的方法,其取决于数据库设计人员对于所分析的应用模式中的对象的重要程度的理解。因此,一个数据库的E-R图不是唯一的,强调不同的侧面,按照不同的理解,可以得到不同的E-R图。
(1)真实性。
E-R图是用于描述现实世界的概念数据模型,因此必须真实地反映现实世界,不能无中生有。对于复杂的实体集和联系,必须先弄清它们的“来龙去脉”,对于它们的属性也要逐一考察,看是否确有必要考虑这方面的特征,以免给以后的数据库设计带来隐患。
(2)简单性原则。
现实世界是很复杂的,事物之间都是普遍联系的。但是在绘制E-R图时需要对客观现实进行简化,只对与系统设计目的相关的部分进行建模。
(3)实体集与属性确定规则。
由于实体集和属性之间并没有在形式上的明显界限,所以在确定实体集或属性时通常遵循着以下原则。
①作为属性,不能再具有需要描述的信息,属性必须是不可再分的数据项,不能包含有其他的属性。
②属性不能与其他的实体集具有联系,在E-R图中,只有实体集与实体集之间才能有联系。