文章目录

    • 一、关系模型的基本概念
    • 二、由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端关系合并”,即领导关系并入职工关系,将其主码加入。