6 数据库设计:实体-联系方法
数据库的设计方法和生命周期
数据库设计方法
① 实体-联系方法
② 属性-联系方法
实体-联系方法
围绕实体展开
经历需求分析、概念设计、物理设计、数据库实现、运行维护等阶段
先建立概念模式,再转换为关系模式。
概念设计:
概念模式与具体的DBMS无关,通常使用实体-联系图表示,也叫E-R图
逻辑设计:
将概念模式转换成相应的逻辑模式,获得复合选定DBMS数据模型的逻辑结构,比如关系模式。
属性-联系方法
与实体-联系方法区别:没有概念设计阶段,在需求分析的基础上直接采用属性-联系方法进行逻辑设计。
也就是把数据库保存的所有属性放在一个关系表中,进而通过属性之间的联系进行逻辑设计,进而进行优化。
实体-联系方法:以实体为中心,着重于一个关系模式基本对应一个实体或联系,即关系模式与实体或联系之间基本是一一对应的。
属性-联系方法:以属性为中心,着重于属性之间的依赖关系。
宏观上采用实体-联系方法,微观上采用属性-联系方法。对概念模式转换而来的关系表运用属性-联系方法进行分析优化。
基本E-R模型
实体-联系方法是先基于实体-联系模型(也叫E-R模型)进行概念模式,然后再转化为关系模式。
概念模式与具体的DBMS无关,通常使用实体-联系图表示,也叫E—R图。
用来区分一个实体集中不同的一个个实体的最小的属性集或者是属性组(一组属性),称为实体标识符,(简称标识符)也称为实体主键(简称主键)。联系也有属性
实体:
E-R图主要包括实体和联系以及它们各自的属性。
实体:现实世界中客观存在的一个事物或对象,可以是具体可触及的实物,也可以是抽象的对象。
同类实体组成的集合称为实体集。
例如:一个考生就是一个实体,所有考生就是一个实体集,把实体和实体集称为实体。
在E-R图中,实体用方框表示,方框内表示实体的命名。
联系:
实体不是孤立的,实体间总存在一些联系。一个或多个实体之间的关联关系称为联系。
E-R图中,联系用菱形表示,并用线段将其与相关的实体联系起来。
属性:
实体通常通过一组属性描述,同类实体通常使用相同属性组来描述。
属性可能取值的范围称为属性域,称为属性的值域。
能够并且用以区分一个实体集中不同实体的最小属性集(组)称为实体标识符,或称为实体主键,组成主键的属性称为标识属性。
联系也会有属性。
E-R图中,属性用椭圆表示,用线段将其与相关的实体或联系连接起来,以加下划线的方式标示出标识属性。
E-R图主要包括实体和联系以及它们各自的属性。
基本E-R图设计
简单属性和复合属性
简单属性是不可在分割的属性,复合属性是可再分解为其他属性的属性。
单值属性和多值属性
单值属性指的是同一个实体在该属性上只能取一个值。多值属性指同一个实体的某些属性可能取多个值。
可以用双线椭圆来表示多值属性
存储属性和派生属性
派生属性:从其他属性的值推导出的属性。一般不必存储在数据库内。
其他需要存储的属性称为存储属性。
派生属性用虚线椭圆与相应实体相连。
允许为Null的属性
联系的设计
联系的元数
联系关联的实体集个数,称为该联系的元数或度数。
一元联系:同类实体集内部实体与实体之间的联系。
二元联系:两个不同实体集中实体之间的联系。
三元联系:三个不同实体集中实体之间的联系。
联系的基数
如果实体集 E 1 E_1 E1与 E 2 E_2 E2之间有二元联系,则把参与该联系的实体数目称为映射基数。
1:1
一对一:如果实体集 E 1 E_1 E1中每个实体至多和实体集 E 2 E_2 E2中的一个实体有联系,反之亦然。
1:N
一对多:如果实体集 E 1 E_1 E1中的每个实体可以与 E 2 E_2 E2中的任意个(0个或多个)实体间有联系,而 E 2 E_2 E2中的每个实体至多和 E 1 E_1 E1中一个实体有联系,则称为一对多联系。
E-R图中,有箭头表示1,无箭头表示多。
M:N
多对多:如果实体集 E 1 E_1 E1中的每个实体可以与实体集 E 2 E_2 E2中的任意个(0个或多个)实体有联系,反之亦然。
有时对映射基数做出精确描述,即最小映射数目min和最大映射数目max。用范围min…max表示
最少映射数目表示该实体集中每个实体最少参与联系数,最大则是最多参与联系数。*表示无上限。
参与度
如果实体集S中的每个实体都参与联系集 L L L的至少一个联系中,称实体集S完全参与联系集 L L L
相应的部分参与,同理。
完全参与双线表示,部分参与单线表示。
基本E-R图转换为关系模式
① 一个实体转换为一个关系模式,实体的一个属性对应为该表的一个列,实体的主键就是表的主键。
② 一个联系转换为一个关系模式,联系的属性对应表的属性,另外并上所有参与联系的各实体主键的并集
由联系转换来的表的主键,有以下三种情况:
- 联系是 M : N M:N M:N的,主键是所有参与联系的各实体主键的并集。
- 联系是 1 : N 1:N 1:N的,主键是多端实体主键。
- 联系是 1 : 1 1:1 1:1的,主键是任意端实体主键。
③ 主键相同的关系模式可合并。
- 1 : 1 1:1 1:1联系转换的表可与任一端实体对应的表合并。
- 1 : N 1:N 1:N联系转换的表可与== N N N端对应的表==合并。
如果E-R图涉及自环联系,先将自环联系变成非自环联系。
扩展E-R图及到关系模式的转换
弱实体
如果一个实体对于另一个实体(强实体)具有很强的依赖性,而且该实体主键的一部分或全部从其所依赖的强实体中获得,则该实体为弱实体。
也就是说,所有属性都不足以形成主键的实体称为弱实体。
其属性可形成主键的实体集称为强实体集。
弱实体用两个方框表示,弱实体联系用两个菱形框表示。
转换规则
① 一个关联弱实体的联系和弱实体一起转换为一个关系模式:弱实体属性集和关联弱实体的联系的属性集,以及其依赖的强实体主键的并集就是表的属性集
② 如果弱实体在联系的基数约束上属于多端,则主键是参与联系的强实体主键并上弱实体标识属性
③ 如果弱实体在联系的基数约束上处于1端,则主键是参与联系的强实体主键
父子实体
一般化:根据实体间具有的共同特征,将多个实体集综合成一个较高层次实体集的过程,称为一般化。
高层实体集和底层实体集也称父实体集和子实体集。
通过▽中的标记为ISA来表示。(自底向上)
特殊化(自顶向下)
根据实体间的区别在实体集内部进行分组的过程称为特殊化。
从单一的实体集出发,通过创建不同的低层实体集来强调同意实体集中不同实体的差异。
低层实体集继承高层实体集的属性,与其所参与的联系。
特殊化与一般化互为逆过程。
表创建父子实体集:
① 为高层实体集创建一个表;为每个低层实体集创建一个表,并加入高层实体集的主键属性。
② 如果每个高层实体肯定会对应于某个低层实体集,并且只会对应于一个低层实体集,则只需为每个低层实体集创建表
大数据E-R图及其到关系模式的转换
不仅需要对当前状态数据关注,还要对过往业务数据重视。
图书馆结束例子:5
如果只考虑存储当前书书否被借走,则一个人能借走多本书,而一本书能被多个人借。采用 1 : N 1:N 1:N,无法统计这本书借阅次数
从 1 : N 1:N 1:N改为 M : N M:N M:N,有读者号和ISBN共同作为主键。
但是这样同一个读者借一本书,只能保存最后一次借阅的信息
需要以ISBN和借书时间共同作为主键,可以采用 1 : n 1:n 1:n
但是现在图书馆有多个同一本书的副本,同一ISBN的图书也可以同时借给多个读者,因此采用 M : N M:N M:N,并==读者号,ISBN,借书时间==共同作为主键。
习题:
一般化中,实体成员之间的差异被最小化
特殊化中,实体成员之间的差异被最大化
同一实体集的实例之间的联系称为递归联系
基本E-R图转换为关系模式学习体会分享与碰到问题探讨,设计一个图书馆数据库,此数据库保存每个借阅者每次节约图书的记录,包括:读者号,姓名,地址,性别,年龄,部门。对每本书存有:书号,书名,作者,出版社。每当有一本书被借还时,保存每次借阅信息:借出日期、应还日期、归还日期。要求:给出 E-R 图,并转换成关系模式。请以图片形式上传您画出的E-R 图及关系模式,给出相应的说明
★★★★★ 逻辑模式通常使用实体-联系图表示。(错)概念模式
含弱实体E-R图向关系模式转换时,一个关联弱实体的联系和弱实体一起转换为一个关系模式,主键是参与联系的强实体的主键。(错)
根据实体间的区别在实体集内部进行分组的过程称为特殊化。(对)
概念模式通常使用实体-联系图表示。(正确)
属性联系方法,以属性为中心,着重于一个关系模式,基本对应一个实体或联系,即关系模式与实体或联系之间基本是一一对应的。(错) (实体-联系方法)
一个 1:1 联系转换的表可与任一端实体对应的表合并在一起。(正确)
含弱实体 E-R 图向关系模式转换时,一个关联弱实体的联系和弱实体一起转换为一个关系模式,主键是参与联系的强实体的主键。(错误)
解释:弱实体多端:(弱+强)主键;强实体多端:强主键
低层实体集所特有的联系也适用于其高层实体集。(错误)只适用于自己
E-R 模型由___实体、属性、联系____组成。
有两个不同的实体集,它们之间存在着一个 1:1 联系和一个 M:N 联系,那么根据 ER 模型转换成关系模型的规则,这个 ER 结构转换成的关系模式个数为______3__。
==解释:==一对一不为联系单独创建表,多对多额外创建一个表。
当同一个实体集内部的实体之间存在着一个 1:N 联系时,那么根据 ER 模型转换成关系模型的规
则,这个 ER 结构转换成的关系模式个数为_______1__。
==解释:==一个一对多的联系,联系可以与多端进行合并。
解释:弱实体多端:(弱+强)主键;强实体多端:强主键
低层实体集所特有的联系也适用于其高层实体集。(错误)只适用于自己
E-R 模型由___实体、属性、联系____组成。
有两个不同的实体集,它们之间存在着一个 1:1 联系和一个 M:N 联系,那么根据 ER 模型转换成关系模型的规则,这个 ER 结构转换成的关系模式个数为______3__。
==解释:==一对一不为联系单独创建表,多对多额外创建一个表。
当同一个实体集内部的实体之间存在着一个 1:N 联系时,那么根据 ER 模型转换成关系模型的规
则,这个 ER 结构转换成的关系模式个数为_______1__。
==解释:==一个一对多的联系,联系可以与多端进行合并。