如何將ER圖轉化爲關係模型(超詳細、含例題)

本文轉載自:http://blog.csdn.net/HaoDaWang/article/details/78098937?locationNum=4&fps=1 超級感謝博主分享

本篇博文中的例題只涉及到N:M和N:M:P的轉換,大家看完後可以再去看下下面這幾個例題

https://blog.csdn.net/Flora_SM/article/details/84645752


如何把ER模型轉換爲關係模型
這是數據庫工程設計進行到邏輯設計的一重大環節,簡單的說,如果概念設計是用ER模型, 整合爲全局的ER模型,那麼在邏輯設計這塊, 主要任務就是把ER模型轉換爲關係模型。

轉換隻需知道三個轉換準則:

1:1
遇到1:1 關係的話在兩個實體任選一個添加另一個實體的主鍵即可。

1:N
1:N 遇到 1:N 關係的話在N端添加另一端的主鍵,假如有學生和班級兩個實體,一個班級可以容納多個學生,但是一個學生只能選擇一個班級, 因此班級和學生是1:N的關係,現在要轉換爲關係模型, 我們只需在學生的這端加上班級的唯一標識即可,這樣做的原因是,因爲一個學生只能有一個班級,班級是相對學生唯一的。

N:M
遇到N:M我們需要將聯繫轉換爲實體,然後在該實體上加上另外兩個實體的主鍵,作爲聯繫實體的主鍵,然後再加上該聯繫自身帶的屬性即可。例如有學生和老師兩個實體, 一個學生可以由多名老師來授課,一名老師也可以授課多名學生,它們是M:N關係的,假如聯繫爲授課,該聯繫上有成績屬性,因此當我們把它轉換爲關係模型時,我們把聯繫轉換爲聯繫實體,並添加學生實體的主鍵(學號)和教師實體的主鍵(教師編號)作爲自己的主鍵,值得注意的是,授課實體的外鍵分別是學號和教師編號,但是它的主鍵是(學號,教師編號),另外它還擁有自己的一個屬性成績。

1:1:N
這是三元聯繫的對應關係,但是當轉換爲關係模型時,和1:N的情況是差不多的。我們只需將N端添加另外兩端的主鍵即可。

M:N:P
這種三元聯繫的三種多對應關係,看上去很複雜,其實轉換起來並不是那麼複雜了,我們要做的僅僅是將其中的聯繫轉換爲聯繫實體,然後在聯繫實體上添加M端N端P端的主鍵,然後加上聯繫實體自身的屬性,就行了。

例子:
說了這麼多看個小例子。

這是一份關於商店商品倉庫的ER圖。

先看倉庫和商品之間是M:N的關係,於是我們首先想到的應該是把聯繫 庫存轉換爲庫存實體。
庫存 (倉庫號,商品號,日期,庫存量)
然後是商品實體和倉庫實體
商品(商品號,商品名,單價)
倉庫(倉庫號,倉庫名,地址)

除此之外倉庫和商品還有一個供應關係,同樣是M:N關係:
供應 (倉庫號,商品號 ,月份,月供應量)

在上圖的商店和倉庫之間的關係可能寫漏了,但是它們應該也是M:N的關係,一個商店可以被多個倉庫供應,一個倉庫也可以供應多個商店。上面已經創建了供應實體,現在只需在供應實體中假如商店號即可,也就是商店實體的主鍵。

供應(倉庫號,商品號,商店號 ,月份,月供應量)
商店(商店號,商店名,地址)

總結
至此,轉換關係模型也完成了,當然這只是個例子,實際的開發中,我們可能會遇到各式各樣奇怪的需求,這就更要求我們做好概念設計的環節,對後來的數據庫設計和維護都有好處。ER圖的好壞,始終是數據庫設計的重要一節。


我的個人博客:www.fangjiaxian.cn

發佈了18 篇原創文章 · 獲贊 30 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章