数据库(五)数据库设计 | 实体关系模型ER model 映射基数 弱实体集 实体关 ...

打印 上一主题 下一主题

主题 996|帖子 996|积分 2988

参考
ER 图是什么?这一篇让你搞懂 ER 图! - 知乎 (zhihu.com)
数据库设计核心就是
1 明确用户需求
2 利用E-R关系模型,绘制E-R图
3 将E-R关系模型转换为数据库表
本节核心在第二部分到第三部分
1 实体关系模型 ER模型ER model

1.1 E-R模型结构

E-R模型实际上是由多个实体集(含有差别属性)和联系集组成
1.1.1 实体和实体集

实体 Entity 是一个物体,客观存在而且相互区别
​ 好比一个学生,一个公司
实体集合 Entity Sets 具有雷同属性的实体的集合
​ 好比一群学生,一系列公司
1.1.2 属性

属性 Attributes
​ 好比ID,姓名,这些属性可以大概区别差别的实体
​ 就好比我们每个人都有自己的特征,这些特征区分了差别的实体
除了根本属性另有如下一些属性概念需要了解
**简单属性 Simple 和复合属性 composite **


  • 简单属性:不可再拆分,如数学成绩是一个简单属性
  • 复合属性:可以再拆分,即属性的嵌套组合,如名字这个属性可以拆分为姓这个属性和名这个属性
单值属性 Single-valued和多值属性 multi-valued


  • 单值属性:即只能是一个的属性,如一个人性别值只能是一个男或女 (排除个别特殊现象哈哈哈)
  • 多值属性:即可能有多个值的属性,如电话号码可以有多个
**派生属性 Derived attributes **
​ 可以从一个已知的属性的值推理出来,好比知道出生可以退出年事
​ 以是年事就是一个派生属性
形貌属性 descriptive attributes
形貌属性一样平常都是给关系集合的,
如学生实体集合Student和考试实体集合section通过take(参加)这一个关系集合联系起来,那么take这个关系集合可以用grade成绩这一属性来形貌
1.1.3 关系集合

关系 Relationship 在一些实体中的关系
**关系集合 Relationship Sets ** 雷同范例的关系的集合
关系集合每每要创建多个实体集的关系
递归关系集合 Recursive relationship set
​ 同一实体集以差别的角色多次到场关系集。
二元关系
​ 只包罗两个实体集的关系
非二元关系集合
​ 含凌驾两个实体集的关系
1.2 ER关系图绘制

E-R diagram ER关系图
1.2.1 实体集绘制

1 矩形表示一个实体集,矩形上方写实体集的名字
2 实体集的属性一个一个列在矩形框内,用下横线标识主键
举例如下 Student表的关系图绘制

1.2.2 关系集绘制

1 用一个菱形方块代表关系集,毗连多个实体集矩形
举例如下 advisor代表一个关系集

2 上面讲到形貌性属性,用虚线表示,如下

上面我们讲完了实体集的一些初步先容,接下来重点讲此中一些部分
2 映射基数 Mapping Cardinalities

Mapping Cardinalities 映射基数 表示另一个实体可以通过关系集与之关联的实体数。
有以下几种范例
一对一,一对多,多对一,多对多

2.1 映射基数范例

2.1.1 一对一

一对一 one to one:一个导师最多指导一个学生,一个学生最多被一个导师指导。说明导师可以不指导学生,学生也可以单干。
绘制E-R图如下 左右各一个箭头

2.1.2 一对多

一对多 one to many:一个导师可以指导任意多个学生,一个学生至多被一个导师指导。
绘制E-R图如下 只有one的那一侧有箭头

2.1.3 多对一

多对一 many to one:一个导师至多指导一个学生,一个学生可以被任意个导师指导。
绘制E-R图如下 只有one的那一侧有箭头

2.1.4 多对多

多对多 many to many:一个导师可以指导任意学生,一个学生可以被任意多个导师指导。
说明导师可以不指导学生,也可以指导好些个。学生可以单干,也可以多拜几个师傅
绘制E-R图如下两侧都没有箭头

总结:one指向的那一侧是箭头->
对于以上的各种关系,每一个advisor关系集合的超键都由各个实体集合的主键并集组成
但是超键却不太一样,一样平常选择many那一侧的主键做关系集合的主键
多对多


  • 主键和超键雷同
一对多


  • 多的那一侧,当做主键
一对一


  • 任何一侧都可以当做主键
2.2 全部或部分到场束缚

Total and Partial Participation 全部或部分到场
如下图所示,绘制E-R图时间 双线代表全部,单线代表部分

学生一侧是全部,含义代表每一个学生必须有一个指导老师
导师一侧是部分,含义代表有些老师指导学生,有些老师不指导学生
2.3 最小最大基数束缚

在之前的基础上,可以加数目上的范围束缚
E-R关系图上用双点表示, *表示无穷制
格式
  1. 最小值..最大值
复制代码
举例如下

含义如下
左侧老师一侧:0…* 代表一个指导老师可以大概指导0个或者更多个学生,没有上限
右侧学生一侧:1…1 代表一个学生至少1 个老师,至多也只有1个指导老师
超键是都有的
但主键根据情况差别而差别
好比



3 弱实体集

他的存在依靠于另一个实体集(被依靠的那个称作标识实体集identifying entity sets)
好比 考试这个存在就是依靠于课程的存在,以是课程实体集叫做标识实体集identifying entity sets,考试这个实体集叫做弱实体集Weak Entity Sets
E-R图中,用双框矩形表示,关系集合由双框菱形组成,虚线代表辨别属性
如下图所示

该关系集合sec_course 的主键由标识实体集的主键和弱实体集的辨别属性(即虚线画出来的)一起构成
弱实体集那一侧一定是全部total participation
4 ER模型转换为关系模式Relation Schema

初步办理
4.1 强实体集表示

对于强实体集而言有着简单的属性,直接转即可
举例如下

对于强实体集有着复合属性,转换后成为一个一个简单属性(复合属性不会出现在此中)
举例如下

对于多值属性而言如电话号码,我们再创建一个新的表

派生属性不要出现在表中,直接计算得到
4.2 弱实体集表示

弱实体集形成新的表包罗标识实体集的主键和它自己的属性
举例如下

4.3 关系集合表示

多对多
两个实体集的主键+他自己的形貌属性

多对一

优化如下

一对一

优化如下

5 实体关系设计

标题一:假设一个部分可能有许多差别的分配。
办理:利用多值复合属性赋值
标题二:假设有关于作业的其他信息,例如最高分或截止日期
办理:将叶属性添加到分配属性
但是标题二有冗余标题
将赋值模型建模为由部分标识的弱实体集
6 扩展E-R特征

6.1 IS-A 继续

Person可以颠末Specialization(特化)称为两个小的如学生也是雇员
实体集可以包括实体的子分组,这些实体在某种水平上与集中的其他实体差别。
较低级别的实体集继续(inheritance)了较高级别实体集的所有属性和关系到场。
多重继续 简单继续
例如 职员集包括子组——员工集和学生集
重叠(Overlapping)——一个实体可能属于多个专用实体集,束缚要求一个实体可以属于多个较低级别的实体集如,一个人可能既是学生也是雇员
不相交(Disjointness)——一个实体最多必须属于一个专用实体集,束缚要求一个实体只能属于一个较低级别的实体集,如一个人只能是雇员里的前台柜员或者秘书之一
通过架构表示 IS-A 关系
方式一
​ 创建一个高水平实体集的架构,创建一个低水平的架构。通过外键创建两个练习
缺点:获取有关的信息,一个员工需要访问两个关系(低级架构和高级架构)
方式二
​ 利用所有本地属性和继续属性为每个实体集形成架构
缺点:冗余
用聚合的方式
利用聚合 – 可以将聚合实体集视为单个单元,而不思量其内部结构的细节。
聚合是一种抽象,通过该抽象,将关系视为更高级别的实体

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表