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+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告