软件设计师下午题二 E-R图

1、E-R图

(1)实体

弱实体是双边矩形:

子实体相当于继承了父类的子类:

父类和子类之间连接的时候;直线+圆圈(有直线就不用管有没有圆圈)

(2)属性

重点是简单属性:不可再分的

复合属性可再分的

超市地址属于复合属性,因为是可再分的。

(3)联系

两个实体之间的联系:

学生 联系 课程

1 : n 表示一个学生对应多个课程

m : 1 表示一个课程可以被多个学生选择

分别将左边的两个关系取并得m,同样的右边的取n,则学生和课程为多对多的关系!!!

两个以上实体的联系:

从上述的表述中可得下面三个实体之间的联系!!!

病人 医生 病房

m n 1 一个病房对应多个病人和多个医生

1 1 1 一个医生负责一个病房,一个病人只属于一个病房

m : n : 1 的关系

2、问题一介绍

补充E-R图中缺失的联系

(1)例题一 2011年下

(2)2014年下半年

(3)2018下

3、问题二介绍

主键在一个元组中只有一个!

外键就是在当前关系中不是主键,但是在别的关系中是主键的属性就是当前关系的外码

(1)一对一关系转换有两种方式

1、再新创建一个联系关系元组,分别存放其余关系的主键

2、将其中一个元组中的主键放到另一个元组中

(2)一对多

一般是将1加入到m(多)的元组中,以多的元组为主

(3)多对多

此时(职工号,设备号)共同作为一个组合去唯一的表示数据

(4)三个实体之间的联系

有 一对多对多 和多对多对多

类似于多对多将实体的主键都拿出来组成一个元组去唯一的表示数据

(5)超类和子类的转换

将父类的主键加到每一个子类中

(6)问题二题型

填空、指出某主键和外键

(7)2011年下

关系归并是1 方归并到 多 方数据中!

子实体与超实体在属性上是等价的!!!

如上所示就是将员工属性归并到托运申请中,将部门属性归并到员工属性中!

a: 部门号 b:客户号 c:客户号、申请号 d:申请号

部门 主键:部门号 外键:经理

员工 主键:员工号 外键:部门号

安排承运 主键:申请号 外键:业务员

(8)2014年下

并给出 部门、配给关系模式的主键和外键

a:超市名称、部门名称 b:员工号、超市名称、部门名称 c:商品号

部门 主键:(超市名称,部门名称) 外键:部门经理

配给 主键:(商品号,业务员,配给时间) 外键:商品号、业务员

主键最好用括号的形式表示,如果该关系模式中包括时间属性,该模式的主键大概率也包含时间属性

外键则只要当前关系模式中的这个属性是别的实体的主键,他就是外键,某属性即有可能是主键,同时也是外键

(9)2018下

a:经理 b:分公司编号、主管号 c:隶属部门、岗位

部门 主键:部门号 外键:分公司编号、主管号

员工 主键:员工号 外键:隶属部门(部门号)

外键最好是别的关系中的主键名称,更稳健!

相关推荐
小bo波2 小时前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
nanxun8861 天前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103511 天前
Day01 | Java 基础(Java SE)
java
行者全栈架构师1 天前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师1 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_01 天前
mac(m5)平台编译openjdk
java
唐青枫2 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java