跳轉到內容

資料庫:實體關係

來自華夏公益教科書,開放的書籍,開放的世界

UNIT 3 - ⇑ 資料庫基礎 ⇑

← 主鍵 實體關係建模 規範化 →


資料庫可能儲存有關各種事物的相關資料。例如,如果我們檢視線上商店所需的表格

員工
產品
收據
客戶

這些表格可以獨立存在,但當我們開始描述它們中的每一個時,我們會注意到它們彼此相關。例如

收據表記錄了客戶購買了哪些產品,以及購買日期。

這描述了收據記錄,並且從它的結構中我們可以看到其他表格中的主鍵包含在其中。

Receipt(CustomerID, ProductID, DateTime, Total, StaffID)

換句話說,我們可以說

A receipt has one customer
A customer can have many receipts
A receipt has one product
A product can be part of many receipts
A receipt was created by one staff member
A staff member can create many receipts

然後我們可以像這樣繪製此圖

為了將表格連線起來並允許我們查詢資料庫,我們使用關係。您需要了解三種類型的關係。每種關係都使用“腳爪符號”顯示在下面,這是許多方法之一來描述這些關係

圖表 名稱 描述
An Author can write several Books, and a Book can be written by several Authors
一個作者可以寫多本書,一本書可以由多個作者編寫
多對多 一個作者可以寫多本書,一本書可以由多個作者編寫
A Biological Mother can have many children, and a child can have only one Biological Mother
一位生物母親可以有多個孩子,一個孩子只能有一個生物母親
一對多 一位生物母親可以有多個孩子,一個孩子只能有一個生物母親
A Country has only Capital City, and a Capital City is in only one Country
一個國家只有一個首都,一個首都只在一個國家
一對一 一個國家只有一個首都,一個首都只在一個國家
練習:關係

描述以下關係

回答

一隻動物有一個基因組
一個基因組只描述一隻動物

回答

一個學生有多門課
一門課有多個學生

回答

一個聯賽有多支球隊
一支球隊只在一個聯賽

回答

  • 一名球員回答了許多問題
  • 一個問題可以被多次回答
  • 每個答案只適用於一個問題
  • 一名球員可以給出許多答案
  • 每個答案只有一個球員貢獻

繪製以下關係
一輛車有多個輪子,每個輪子只有一輛車

回答

vehicle ---< wheel

父親和孩子之間的關係

回答

Father >--< Child (除非我們談論的是生物父親:Father--<Child )

政治家和鼻子之間的關係

回答

politician ---- nose

主人和貓之間的關係

回答

Cat >---< Owner (即使一個主人可能擁有不止一隻貓,一隻貓可能有多個主人)

汽車和司機之間的關係

回答

car --- driver (一輛車只能由一名司機駕駛,一名司機一次只能駕駛一輛車)

獨輪車和輪子之間的關係

回答

wheel --- unicycle

房屋和郵政編碼之間的關係

回答

House >--- Postcode (一棟房屋分配一個郵政編碼,但同一個郵政編碼可能分配給許多房屋)

華夏公益教科書