数据模型分为两种类型:
一种是独立于任何计算机系统实现的,如实体联系模型,这类模型完全不涉及信息在计算机系统中的表示,只是用来描述某个特定组织所关心的信息结构,因而又被称作“概念数据模型”。
另一类数据模型则是直接面向数据库中数据逻辑结构的,例如有关系、网状、层次、面向对象等模型。这类模型涉及到计算机系统,一般又称为“基本数据模型”或“结构数据模型”。
建立数据库系统的目的,是为了实现对现实世界中各种信息的计算机处理。换言之,要实现计算机对现实世界中各种信息的自动化、高效化的处理,首先必须建立能够存储和管理现实世界中的信息的数据库系统。数据模型是数据库系统的核心和基础。任何一种数据库系统,都必须建立在一定的数据模型之上。由于现实世界的复杂性,不可能直接从现实世界中建立数据模型。
现实世界 →(抽象)→ 信息世界 →(转化)→ 数据世界
(建立概念模型) (建立数据模型)
(而首先要把现实世界抽象为信息世界,并建立信息世界中的数据模型,然后再进一步把信息世界中的数据模型转化为可以在计算机中实现的、最终支持数据库系统的数据模型)。信息世界中的数据模型又称为概念模型,概念模型必须具有:
(1)抽象的真实性:是对现实世界本质的、确实存在的内容的抽象。而忽略了现实世界中非本质的和与研究主题无关的内容。
(2)完整、精确的语义表达力,能够模拟现实世界中本质的、与研究主题有关的各种情况
(3)易于理解和修改
(4)易于向DBMS所持的数据模型转换,现实世界抽象成信息世界的目的,是为了用计算机处理现实世界中的信息。
概念模型,作为从现实世界到其数据世界转换的中间模型,它不考虑数据的操作,而只是用比较有效的、自然的方式来描述现实世界的数据及其联系。
最著名、最实用的概念模型设计方法是P.P.S.Chen于1976年提出的“实体-联系模型”(Entity-Relationship Approach),简称E-R模型。
E-R模型的基本构构成:
三个主要概念:实体集、联系集和属性,分别用矩形框、菱形框和椭圆表示。
联系集的类型:一对一(1:1)、 一对多(1:n)、多对多(m:n)及表示
主码的表示:用带下划线的属性表示
多元联系
在E-R中,可以表示两个以上实体集之间的联系,称为多元联系。
联系的属性
联系集和实体集一样,也可以有自己的属性,来表现联系的特点。
自身联系
在一个联系中,一个实体可以出现两次或多次,扮演多个不同角色,此种情况称为实体集的自身联系。
例如,同一部门中,职工与职工之间可以有领导和被领导的关系。
子类和 is-a 层次联系
信息世界中常常有这样的实体集B,它属于另一个实体集A,B中实体的都有特殊的属性需要描述,并且这些特殊属性对实体集A的其它实体无意义。在E-R模型中,称B是A的子类,或A是B的父类。两类实体集之间存在着一种层次联系——is-a 联系。
例如,一个企业中的职工实体集和经理实体集,经理集中的每一位经理,又是职工集中的一位职工,他具有职工的所有属性,但他自己的属性“任职时间”对职工集的其他职工却没意义。此时,我们可以说,经理集与职工集存在着 is-a 联系。(P85图5-8所示)
在设计E-R模型时,首先应根据需求分析,确认实体集、联系集和属性这三种E-R模型的基本要素。
需要强调的三条设计原则是:
(1)相对原则:
建模的过程实际上是对对象抽象的过程。实体、联系、属性,是对同一个对象抽象过程的不同解释和理解。在同一情况下不同的人,或同一人在不同的情况下,对事物抽象的结果可能是不同的。
在E-R模型的整个设计过程中,实体、联系和属性不是一成不变的,而可能会被不断的调整和优化。
(2)一致原则:
同一对象在不同的业务系统中抽象的结果要求保持一致。因为业务系统是建立系统的各子系统。
(3)简单原则:
为简化E-R模型,现实世界中的事物,能作属性对待时,应尽量作为属性处理。
属性与实体和联系之间,并无一定界限。当属性满足如下两个条件时,就不能作实体或联系对待:
① 不再具有需要进一步描述的性质,因为属性在含义上是不可再分的数据项
② 性不能再与其它实体集具有联系,即E-R模型中的联系只能是实体集之间的联系。
设计一个大型的企业或单位的E-R模型,一般按照先局部、后整体,最后优化的方法进行。
下面以一个企业的职工信息管理系统为例,说明E-R模型的设计过程: