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图转换为关系模式

① 一个实体转换为一个关系模式,实体的一个属性对应为该表的一个列,实体的主键就是表的主键。

② 一个联系转换为一个关系模式,联系的属性对应表的属性,另外并上所有参与联系的各实体主键的并集

由联系转换来的表的主键,有以下三种情况:

  1. 联系是 M : N M:N M:N的,主键是所有参与联系的各实体主键的并集。
  2. 联系是 1 : N 1:N 1:N的,主键是多端实体主键。
  3. 联系是 1 : 1 1:1 1:1的,主键是任意端实体主键。

③ 主键相同的关系模式可合并。

  1. 1 : 1 1:1 1:1联系转换的表可与任一端实体对应的表合并。
  2. 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__。

==解释:==一个一对多的联系,联系可以与多端进行合并。

6 数据库设计:实体-联系方法相关推荐

  1. 数据库设计--实体关系图(ERD)

    1.E-R图的定义 实体关系图:简记E-R图是指以实体.关系.属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式. –百度百科 2.E-R的使用方法 E-R图为实体-联系图,提供了表示 ...

  2. MySQL 学习笔记(14)— 数据库设计流程、实体关系图、第一范式、第二范式、第三范式、外键使用

    本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92c12a9c3a53bc3800f0c 1. 数据库设计流程 数据库设计是对数据 ...

  3. mysql eav_数据库设计之EAV(实体、属性、值)

    有这么一个业务,用于客户记录每天做的事情,由于是非常专业的事情,需要专业的记录本,这种记录本有20多种.实际工作中也是有20多样的记录本,记录本的式每隔一年会有点变动.如何进行数据库设计? 有两种方案 ...

  4. 数据库设计之EAV(实体、属性、值)

    有这么一个业务,用于客户记录每天做的事情,由于是非常专业的事情,需要专业的记录本,这种记录本有20多种.实际工作中也是有20多样的记录本,记录本的格式每隔一年会有点变动.如何进行数据库设计?    有 ...

  5. 数据库、实体-数据库设计原则-by小雨

    这两天笔者几篇文章介绍了改数据库.实体-的文章. 联关文章的地址 1. 原始据单与实体之间的关系 可是以一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始据单对应且只对应一个实 ...

  6. 数据库设计方法、规范与技巧

    本文链接: http://www.openphp.cn/index.php/art.../100/index.html 一.数据库设计过程 数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个 ...

  7. 第6章 SQL Server数据库设计

    6.1. 概述 数据库设计是指对于给定的一个应用环境,构造最优的数据库模式,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求). 可以将数据库设计理解成三个要素:应用环境.数据库模式 ...

  8. SSM家庭理财个人理财系统-JAVA【数据库设计、源码、开题报告】

    第一章 绪论 1.1 课题背景.目的及意义 从 20 世纪末以来,在全球经济日趋一体化的背景之下,中国经济也得到了飞速的发展,家庭收入也快速增长.居民的消费结构发生了巨大变化,购置房产.旅游.汽车消费 ...

  9. IDEF1x语义建模方法及其在数据库设计中的应用

    IDEF1x语义建模方法及其在数据库设计中的应用 李俊平 (深圳职业技术学院计算机软件工程系 广东深圳 518055) 摘要:IDEF1x是在E-R方法中引入语义的一种数据库概念建模方法,对E-R方法 ...

最新文章

  1. 9path 导致的一场冤假错案
  2. mac下一些终端命令的使用
  3. linux命令及其使用方法,Linux命令及其使用方法
  4. 2021-01-08随感
  5. C++中的构造函数小结
  6. 八、K8s 密码管理
  7. 维纳滤波和卡尔曼滤波
  8. QIIME 2教程. 22命令行界面q2cli(2021.2)
  9. 尚学堂·百战程序员--java300集视频笔记
  10. 【Computeshader】个人总结
  11. 微软商店的iTunes备份文件路径正确修改方法(2022.3.25)
  12. windows任务栏IDEA图标变白色快速解决方法
  13. HDLC 和PPP 的应用
  14. matlab 安装出来封面就没了,基于Matlab的计算报告书封面生成方法及计算机存储介质与流程...
  15. 戴尔科技 赢在“边缘”
  16. 如何使用Aliyun容器镜像服务对海外gcr、quay仓库镜像进行镜像拉取构建?
  17. 每个人心中都有一艘小白船
  18. k8s pod OOMKilled 错误原因
  19. 【QCA】ubuntu1804 与 QSDK 编译环境适配问题
  20. 【Linux运维入门】Linux环境安装配置JBoss

热门文章

  1. 机器学习(一)——基础概念
  2. 国家自然科学基金成果填写经验
  3. 【微信支付】Java实现微信APP支付流程
  4. 大数据的主要特征是什么?
  5. KVM切换器工作原理
  6. 大话卫星导航中的信号处理系列文章——GPS信号L1频点的中频数据生成与验证
  7. 基于Linux的信息处理板卡,linux硬件信息查看
  8. thinkpad T400 X301 X230 T510 w500 W530 dell6400 dell1420 e6320 e6420 M6800 X201expresscard扩展nvme盘
  9. 前端生成gif动态图下载
  10. 解决IE系列浏览器上传页面接收问题