提问

通常都是问:

  1. 补充实体联系图
  2. 补充逻辑结构设计的(a)(b)空缺及完整性的约束关系
  3. 分析关系模式的主键跟外键
  4. 最后一道题看情况

1、实体联系图

多重度:联系的类型可分为:
        一对一(1:1)
        一对多(1:n)/  1:*

        多对多 (n:m)  /  * : *

多重度:0,1就代表0或者1个,*就代表至少一个

联系名:通常题目会说可以用联系1,联系2,联系3替代,如果没有说你就看一下题目使用什么表达的

提问,举例子说明一下
在这里插入图片描述
在这里插入图片描述

判断多重度分三步
题目说: 每个部门有多名员工,每个员工只能隶属于一个部门
当我们判断部门与员工之间多重度的时候
1、我们先把写一个部门,对应多名员工,部门:员工 =1:n
2、再去判断一个员工只属于一个部门,员工:部门 = 1:1
3、再把两个合并起来,部门:员工 = 1 :n

在这里插入图片描述

这里补充一点就是,经理是员工的一种,员工是超类,经理是子类,可以理解是继承关系,然后经理就用上面那种表示,连接的线上有一个圈圈,一个矩形两边有竖线,研发员、业务员、主管都是子类
还有一种就是弱实体(一个实体必须依赖于另一个实体存在),用两个矩形框表示
下面的成绩单就是学生的弱实体

在这里插入图片描述

2、逻辑结构设计的(a)(b)空缺及完整性的约束关系

在这里插入图片描述
在这里插入图片描述
一个一个比对
分公司还缺经理、部门缺主管号,分公司编号、员工缺隶属部门、岗位
(a)经理
(b)主管号,分公司编号
(c)隶属部门、岗位
这道题目恰好结果就是这个,但是我们在进行转换成逻辑结构设计的时候,要关注多重度
1对1:将一个实体的主键增加到另一个实体的关系模式里面
1对多:将一个实体的主键增加到多的那个实体的关系模式里面
多对多:将他们之间的联系本身转成一个实体,然后增加多对多两个实体的主键

在这里插入图片描述
在这里插入图片描述

培训是连接新入职员工和课程的,并且是多对多关系,将联系变成一个实体
培训(课程号、新入职员工、成绩)之所以会有成绩,是因为题目中的描述,培训的时候会取得成绩,成绩本身就是培训的属性

在这里插入图片描述

在这里插入图片描述
小总结:分两步,一个是跟文中比对看看缺啥,第二个看多重度

3、主键跟外键

完整性的约束关系:其实就是要你写出他们的主键跟外键

补充
数据库完整性约束:
1. 分为实体完整性:定义主键
2. 参照完整性:外键
3. 用户自定义完整性:属性约束

主键是唯一标识每一个元组的,就是我根据主键只能找到唯一信息,如果题目明确说明唯一标识,就说明这是主键,如果没有你要关注他是否是复合主键
在这里插入图片描述
分公司编号主键:分公司编号
部门关系主键:部门号
员工关系:员工号

外键,我们在找外键的时候,看关系模式,有哪些是别的关系模式里面的,就可以理解为外键,如果是本身自带的属性就不算外键,比如我们刚才上面说的那个成绩本身就是培训的属性,成绩就不算外键
比如员工号里面的隶属部门
他其实对应的就是部门号里面的内容
所以员工号的外键就是部门号

总结:

实体联系图:判断联系跟多重度
关系模式:一对一,看多重度
主外键:看关系模式,也可以对比多重度
文中的内容几乎每一句都有用,所以再看题目的时候一定要仔仔细细观察

觉得还可以的就点个赞吧

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐