E-R图与关系模式

1. E-R模型

英文全称:Entity-Relationship Model,即实体关系模型

把现实世界的 实体模型通过建模转换为信息世界的概念模型,这个概念模型就是E-R模型
在这里插入图片描述

2. 数据库设计流程

一般设计数据库分为三个步骤

  1. 把现实世界的实体模型,通过建模转换成信息世界的E-R模型;
  2. 信息世界的E-R模型,经过模型转化,得到数据库世界的数据模型;
  3. 把数据模型进一步规范化,得到最终的数据库结构模型;

数据库世界的数据模型按数据的组织形式而分为三种类型

  • 层次模型()
  • 网状模型()
  • 关系模型(在关系数据库设计中)

3. 关系模型

3.1 常用概念

  • 关系:可以理解为一张二维表,每个关系都具有一个关系名,也就是通常说的表名(table);
  • 元组:可以理解为二维表中的一行,在数据库中经常被称为记录(record);
  • 属性:可以理解为二维表中的一列,在数据库中经常被称为字段(colum);
  • 域:属性的取值范围,也就是数据库中某一列的取值限制;
  • 关键字:也叫候选键、码,是一组可以唯一标识元组的属性,由一个或多个属性组成。候选键可以有多个,正在使用的那个候选键称为主键(key);
  • 关系模式:指对关系的描述,其格式为:关系名(属性1,属性2,……,属性N),在数据库中成为表结构;

3.2 E-R图转关系模式

对于E-R图中每个实体,都应转换为一个独立关系(table)

该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为关键字,关键字用下划线标识;

3.2.1 一对一关系

比如:一个班级对应一个正班长,就是1:1联系
在这里插入图片描述
则可以创建两个关系(表),一个班级关系(表),一个学生关系(表);
然后我们需要一个联系(关联)来连接这两个关系(表)
有两种方案:

  1. 联系不单独对应一个关系(表):
    不单独创建一个关系(表)来存储联系,通俗讲就是在一个表中冗余一个字段存另外一个表的主键。
    比如在学生关系(表)中添加一个班级编号属性,用来存储班级关系中的班级编号属性值,
    或者在班级关系(表)中添加一个学号属性,用来存储学生关系中的学号属性值。
  2. 联系单独对应一个关系
    单独创建一个关系(表)来存储联系,通俗讲就是创建一个中间表用来存储两个或多个表的主键。
    比如创建一个联系关系(表)来存储班级编号属性和学号属性,并选择一个其他关系的主键(班级编号学号都行)作为联系关系的主键。

3.2.2 一對多关系

班级关系和学生关系之间的联系是1:n
在这里插入图片描述
同样地也有两种关系模式:

  1. 联系不单独对应一个关系
    在这种1:n的关系模式中,一般都是将1端的主键加入n端关系中,即在学生关系(表)中增加一个班级属性,存储对应的班级属性值。

  2. 联系单独对应一个关系
    单独创建一个联系关系(表)来存储班级属性和学号属性,并选择n端的主键(学号)作为联系关系的主键。

多对多关系

学生关系和课程关系之间的联系是m:n
在这里插入图片描述
这种m:n的关系只有一种关系模式:

  • 联系单独对应一个关系
    在这里就是单独创建一个联系关系(表)来存储课程号属性和学号属性和成绩属性,联系关系的主键是由双方的主键共同组成联合主键。

参考资料:【E-R图到关系模式的转换方式,你get到了吗】 https://www.bilibili.com/video/BV1Ju411e7Dr/?share_source=copy_web&vd_source=e22a75a6781804ee25ce46a2afc235ce

  • 28
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值