ER 图的最小化


问题陈述

ER 图是显示各种表及其之间关系的图形表示。通过 ER 图,我们可以减少数据库的数量。

一对一基数

让我们考虑以下具有一个对一个基数的图:

上面的 ER 图表示 3 个实体:

  • 员工实体有两个属性,即 emp_name。emp_id 是主键
  • 公司实体有两个属性,即 cmp_name。cmp_id 是主键
  • 工作实体的主键可以是 emp_id 或 cmp_id
  • 我们不能将 3 个表合并成一个,可以将工作合并到员工或公司中。在一对一基数场景中,至少需要 2 个表。

一对多基数

让我们考虑以下具有一个对多基数的图:

在这个 ER 图中,一个员工可以为一家公司工作,但一家公司可以拥有许多这样的员工。上面的 ER 图表示 3 个实体:

  • 员工实体有两个属性:emp_id 和 emp_name。emp_id 是主键
  • 公司实体有两个属性:emp_id 和 cmp_name。cmp_id 是主键
  • 我们不能将 cmp_id 作为主键,因为多个员工可以为同一个 cmp_id 工作。但是,我们可以将员工和工作表合并。因此,在一对多基数场景中,至少需要 2 个表。

多对多基数

让我们考虑以下具有一个对多基数的图:

在这个 ER 图中,一个员工可以为多家公司工作,一家公司可以拥有许多这样的员工。上面的 ER 图表示 3 个实体:

  • 员工实体有两个属性:emp_id 和 emp_name。emp_id 是主键
  • 公司实体有两个属性:emp_id 和 cmp_name。cmp_id 是主键
  • 与前面的示例不同,不能将工作表与员工或公司合并。如果我们尝试合并它,它将创建冗余数据。因此,在多对多基数场景中,至少需要 2 个表。

更新于: 2019年10月22日

2K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告