文章目录
- 一、关系模型的基本概念
- 二、由E-R图向关系模型的转换
- 1.一个实体型转换为一个关系模式
- 2.一个联系集转换为一个关系模式—通用规则
- (1)多对多联系(m:n)
- 转换为一个独立的关系模式
- (2)一对一联系(1:1)
- ① 转换为一个独立的关系模式
- ② 与任一端的关系模式合并
- (3)一对多联系(1:n)
- ① 转换为一个独立的关系模式
- ②与n端的关系模式合并
- (4)3个或3个以上实体间的多元联系
- 转换为一个关系模式
- (5)同一个实体内部的联系
一、关系模型的基本概念
1.关系
关系是一张二维表,表示数据的逻辑结构。表中每一行代表一个记录(元组),每一列代表一个属性(属性值的取值范围为域)。
2.关系模型
关系模型是指以二维表结构表示的实体关系,用键表示实体间联系的数据模型。
关系模型的组成包括关系数据结构、关系操作和关系完整性约束三部分。
3.码(键)
在关系中由唯一可标识记录的属性或属性组构成。
4.超码
关系中某一属性组的值能唯一标识一个元组,可能包含一些无关紧要的属性(学号、姓名)
5.候选码
最小超码,任一真子集都不能成为超码
6.主码
在候选码中选定一个码作为记录标识,不能为空
7.外键
若在关系R中包含另一个关系S的主键对应的属性或属性组K,则称K为R的外键。
8.主属性
候选码中各属性
9.非主属性
不包含在任意一个候选码中的属性
二、由E-R图向关系模型的转换
E-R图向关系模型的转换就是将实体型、属性和实体之间的联系转换为关系模式,或者说是将E-R图中的内容如何存储到关系中
1.一个实体型转换为一个关系模式
- 实体名称作为关系模式名称
- 实体的属性就是关系的属性
- 实体的主码就是关系的主码
语义:一种实体存储在一个表中,一行代表一个实体
2.一个联系集转换为一个关系模式—通用规则
设R是联系集,R的实体集的主码属性集合为{a1,a2,…am},R的描述性属性集为{b1,b2,…bn}
- 关系模式的属性由参与实体集的主码和联系的属性组成,即{a1,a2,…am}∪{b1,b2,…bn}
- 参与实体集的主码形成关系模式的超码,即{a1,a2,…am} (从超码中选择主码)
- 关系模式中建立相应的外键约束,针对属性中每个实体集的主码建立一个外键约束(参照/引用关系)
(1)多对多联系(m:n)
转换为一个独立的关系模式
主码: 关系模式的主码为各实体主码的集合
例:
学生(学号,姓名,专业)
课程(课程编号,课程名称,学分)选修(学号,课程编号,成绩)
以上“斜体加粗”为主码
(2)一对一联系(1:1)
① 转换为一个独立的关系模式
主码: 每个实体的主码均是关系的候选码,从候选码任选一个作为主码
例:
管理员(管理员号,姓名,联系方式)
仓库(仓库编号,面积)管理(仓库编号,管理员号)
以上“斜体加粗”为主码
② 与任一端的关系模式合并
- 选择任一个实体对应的关系进行合并
- 在该关系中加入另一个关系的主码与联系的属性
- 主码: 保持不变
例:
将管理员关系加入仓库关系中如下
管理员(管理员号,姓名,联系方式)
仓库(仓库编号,面积,管理员号)
以上“斜体加粗”为主码
(3)一对多联系(1:n)
① 转换为一个独立的关系模式
主码: 关系模式的主码为n端的主码
例:
专业(专业编号,专业名称,所在院系)
学生(学号,姓名)学习(学号,专业编号)
②与n端的关系模式合并
- 一端的主码及联系的属性并入n端的关系模式
例:
专业(专业编号,专业名称,所在院系)
学生(学号,姓名,专业编号)
(4)3个或3个以上实体间的多元联系
转换为一个关系模式
主码: 关系模式的主码为各实体码的组合
例:
供应商(供应商号,供应商名,地址,电话)
项目(项目编号,项目名称,开工日期)
零件(零件号,零件名,材料,颜色)使用(供应商号,项目编号,零件号,用量)
(5)同一个实体内部的联系
将该实体拆分为互相联系的两个子集,按其不同的联系方式进行处理
例:
职工(职工号,姓名,年龄,专业,领导职工号)
可看作一对多联系中的“与n端关系合并”,即领导关系并入职工关系,将其主码加入。