2.2~2.6ER模型的基本概念
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统原理
2.2ER模型的基本概念
ER模型由Peter Chen 于1976年在命题为“实体联系模型:将来的数据视图”论文中提出。
2.2.1ER模型的基本元素
1实体定义:
·实体:是一个数据对象,指应用中可以区别的客观存在的实物。
·实体集:是指同一类实体构成的集合。
·实体类型:是对实体集中实体的定义。
ER模型中提到的实体往往是指实体集。
实体用方框表示,方框内注明实体的命名。
2联系定义:
实体不是孤立的,实体之间是有联系的。
·联系:表示一个或者多个实体之间的关联关系。
·联系集:是指同一类联系构成的集合。
·联系类型:是对联系集中联系的定义。
联系是实体之间的一种行为。
联系用菱形框表示,并用线段将其与相关的实体连接起来。
3属性定义:
属性:实体的某一特性成为属性,能够唯一表示实体的属性或属性集称为“实体标识符”。一个实体只有一个标识符,没有候选标识符的概念。实体标识符有事也成为实体的主键。属性用椭圆形框表示,加下划线的属性为标识符。
属性域是属性的可能取值范围,也成为属性的值域。
2.2.2属性的分类
1简单属性和符合属性:
(1)简单属性个是不可再分割的属性,符合属性是可在费解为其他属性的属性。
2单值属性和多值属性:
(1)单值属性指的是同一实体的属性只能取一个值,多值属性指同意实体的某些属性可能取多个值
缺点:如果太过简单的表示多值属性,会产生大量的数据冗余,造成数据库潜在的数据异常、数据不一致性和完整性的缺陷。
调整方式:修改原来的ER模型,对多值属性进行变换。有以下两种方法:
1)将原来的多值属性用几个新的单值属性来表示。
2)将原来的多值属性用一个新的实体类型表示:这个新实体以来于原实体而存在,我们称之为弱实体。
3存储属性和派生属性:
(1)派生属性:两个或两个以上的属性值是相关的,可以从其他熟悉吸纳个只推导出值的属性,称为派生属性。
(2)储存属性:派生属性的值不必存储在数据库内,而其他需要存储值的属性称为储存属性。
4允许为空值的属性:当实体的某个属性上没有值时应使用空值(Null value),Null还可以用于值未知的时候,未知的值可能是缺失的,或者不知道的。
在数据库中,空值是很难处理的一种值。
2.2.3联系的设计
1.联系的元数:
定义:一个联系涉及到的实体集个数,成为该联系的元数或度数。
·同一实体集内部的实体之间的联系,称为一元联系,也称为递归联系。
·两个不同的实体集、实体之间的联系,称为二元联系。
·三个不同实体集实体之间的联系,称为三元联系。以此类推
2联系类型约束:
(1) 基数约束:
定义:实体集E1和E2之间有二元联系,则参与一个联系中的实体数目称为映射
基数。
二元联系有 1:1 1:N N:M
在具体实现时,有事我们对映射基数还要做出更精确的描述,即对参与联系的实
体数目指明相关的最小映射基数MIN 和最大映射基数MAX ,用“min..max ”的方
式表示。
(2) 参与约束:
定义:如果实体集E 中的每个实体都参与联系集R 的至少一个联系中,我们称实
体集E “完全参与”联系集R 。如果实体集E 中只有部分实体参与联系集R 的联
系中,我们称实体集E “部分参与”联系集R 。在ER 图中表示时,完全参与用双
线边表示,部分参与用单线边表示。
2.2.4ER 模型的操作
定义:对ER 图进行的种种变化称为ER 模型的操作,包括实体类型、联系类型和属性的分
裂、合并、增删等等。
1分裂方式分为水平分裂和垂直分裂两种
(2)可以把实体相关的属性中常变的属性组成一个实体类型,把固定不变的属性组成另一
个实体类型,这就是垂直分裂。
2联系也可以分裂,合并是分裂操作的逆过程,合并的联系类型必须是定义在相同的实体类
型组合中。
2.2.5采用ER 模型的数据库概念设计步骤
定义:采用ER 模型进行数据库的概念设计,可以分成三步进行:首先设计局部ER 模型,
然后把各局部
ER 模型纵横成一个全局ER 模型,最后对全局ER 模型进行优化,得到最终
的ER 模型,即概念模型。
1设计局部ER 模型
核心思想:
“分而治之”,即分别考虑各个用户的信息需求,形成局部概念结构,然后再综合
成全局结构。局部概念结构又叫局部ER模型,图形称为局部ER图。
每一个应用设计局部ER模型的步骤:
(1)确定局部结构范围
设计各个局部ER模型的第一步,确定局部结构的范围划分,划分的方式两种:
·依据系统的当前用户进行自然划分
·按用户要求数据库提供的服务归纳成几类,使每一类应用访问的数据显著的不同于其他类,为每类应用设计一个局部ER模型。
(2)定义实体
从信息需求和局部范围定义出发,确定每一个实体类型的属性和键。
实体、属性和联系之间并无截然区分的界限,划分依据有三种:
·采用人们习惯的划分
·避免冗余,在一个局部结构中,对一个对象之取一种抽象形式,不要重复
·依据用户的信息处理需求
实体类型确定之后,他的属性也随之确定。命名反映实体的语义性质,在一个局部结构中应唯一。
(3)定义联系
ER模型的“联系”刻画实体之间的关联。分析其中是1:1 1:M M:N等。
还要考虑实体内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。
应注意方式出现冗余的联系(可以从其他联系导出的联系),要尽可能的识别并消除这些冗余联系,一面将这些问题遗留给综合全局的ER模式阶段,联系类型的命名没有标识符。
(4)分配属性
1)确定属性
2)把属性分配到有关实体和联系中去。
确定属性的原则是:属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N(一对多)的;不同实体类型的属性之间应无直接关联联系。
·属性不可分解的要求是为了是模型结构简单化,不出现嵌套结构。
·当多个实体类型用到同一属性时,将导致数据冗余,从而可能影响储存效率和完整性约束,因而需要确定把他分配给哪个实体类型。一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型。
·有些属性不宜归属于任何一个实体类型,只能说明实体之间联系的特性,应作为联系类型的属性。
2设计全局ER模型
全局概念结构不仅要支持所有局部模型,而且必须合理的表示一个完整、一致的数据库概念结构(或称为视图集成,视图特指局部概念结构)。
(1)确定公共实体类型
在这一步中,我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
(2)合并局部ER模型
合并的顺序影响处理效率和结果。建议合并原则:
·先进行两两合并,先合并那些现实世界中有联系的局部结构
·合并从公共实体类型开始,最后加入独立的局部结构。