软件设计师-数据库

本文详细介绍了E-R模型,包括实体、属性和联系,以及1:1、1:N、M:N等各种联系类型。同时,解释了ER模型如何转换为关系模式,并给出了转换规则。接着,文章探讨了数据库设计中的键、函数依赖和范式,如1NF、2NF、3NF、BCNF,强调了不同范式的重要性和解决的问题。此外,还讨论了无损连接分解和关系代数的基本运算。内容适合数据库设计者和开发者阅读,帮助他们深入理解数据库设计原理。
摘要由CSDN通过智能技术生成

E-R模型

实体(Entity):是指客观存在可以相互区别的事务。实体可以是具体的

对象,如:一个工厂职工,一辆汽车等;也可以是    抽象的事件,如一次借书,

一场足球赛等。

实体型使用矩形表示如:


属性(Attribute):实体有很多特性,每个特性称为属性。每个属性有个值域,其类型可以是整型、实数、字符串、   。

比如学生(实体),有学号、姓名、年龄、性别等属性、相应值域为 字符、  字符串、整数和字符串型。

属性用椭圆形表示,例如:



联系(Relationship)

1:1联系: 如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,那么实体集E1对E2的联系就是称为“一对一联系”,记为“1:1”。



1:N 联系:如果实体集E1中每个实体集与实体集E2中任意个(1个或多个)实体有联系,而E2

中每个 实体至多与E1中的一个实体有联系,那么E1和E2的联系是"一对多",记为1:N“”。


M:N联系:  如果实体集E1中每个实体与实体集E2中(零个或多个)实体有联系,反之亦然,那么E1

对E2的联系是“多对多联系”,记为“M:N”。


ER模型转换成关系模式的规则

一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码

1:1

遇到1:1 关系的话在两个实体任选一个添加另一个实体的主键即可。

1:N

1:N 遇到 1:N 关系的话在N端添加另一端的主键,假如有学生和班级两个实体,一个班级可以容纳多个学生,但是一个学生只能选择一个班级, 因此班级和学生是1:N的关系,现在要转换为关系模型, 我们只需在学生的这端加上班级的唯一标识即可,这样做的原因是,因为一个学生只能有一个班级,班级是相对学生唯一的。

N:M

遇到N:M我们需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。例如有学生和老师两个实体, 一个学生可以由多名老师来授课,一名老师也可以授课多名学生,它们是M:N关系的,假如联系为授课,该联系上有成绩属性,因此当我们把它转换为关系模型时,我们把联系转换为联系实体,并添加学生实体的主键(学号)和教师实体的主键(教师编号)作为自己的主键,值得注意的是,授课实体的外键分别是学号和教师编号,但是它的主键是(学号,教师编号),另外它还拥有自己的一个属性成绩。

1:1:N

这是三元联系的对应关系,但是当转换为关系模型时,和1:N的情况是差不多的。我们只需将N端添加另外两端的主键即可。

M:N:P

这种三元联系的三种多对应关系,看上去很复杂,其实转换起来并不是那么复杂了,我们要做的仅仅是将其中的联系转换为联系实体,然后在联系实体上添加M端N端P端的主键,然后加上联系实体自身的属性,就行了。

例子:

说了这么多看个小例子。

这是一份关于商店商品仓库的ER图。

先看仓库和商品之间是M:N的关系,于是我们首先想到的应该是把联系 库存转换为库存实体。 
库存 (仓库号,商品号,日期,库存量) 
然后是商品实体和仓库实体 
商品(商品号,商品名,单价) 
仓库(仓库号,仓库名,地址)

除此之外仓库和商品还有一个供应关系,同样是M:N关系: 
供应 (仓库号,商品号 ,月份,月供应量)

在上图的商店和仓库之间的关系可能写漏了,但是它们应该也是M:N的关系,一个商店可以被多个仓库供应,一个仓库也可以供应多个商店。上面已经创建了供应实体,现在只需在供应实体中假如商店号即可,也就是商店实体的主键。

供应(仓库号,商品号,商店号 ,月份,月供应量) 

商店(商店号,商店名,地址)


 键(码)、函数依赖及范式

超键:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值