關系模式分解例題


例1:

現有如下關系模式:R(教師號,姓名,部門號,部門名稱,科研項目編號,項目名稱,項目經費,擔任工作,完成時間)每名教師可以參加多項科研項目,每個項目可以有多名教師參加,教師參加科研工作包括擔任工作及他完成所擔任部分的完成時間。 (1)根據上述條件,寫出關系模式R的關鍵碼。 (2)R最高屬於第幾范式,為什么? (3)將R規范到3NF。

由關系模式可以得出(肉眼憑經驗看出):

候選碼:(教師號,部門號,科研項目編號)

(教師號)→(姓名)

(部門號)→(部門名稱)

(科研項目編號)→項目名稱

(科研項目編號)→項目經費

由題目描述可以得出:

(教師號,科研項目編號)→(擔任工作)

(教師號,科研項目編號)→(完成時間)

(1)肉眼看出候選碼就是(教師號,部門號,科研項目編號)

(2)第一范式,存在姓名依賴於教師號,而擔任工作依賴於教師號和科研項目編號,這是個非主屬性對碼的部分函數依賴

(3)

教師(教師號,姓名)
部門(部門號,部門名稱)
科研項目(科研項目編號,項目名稱,項目經費)
教師科研情況(教師號,科研項目編號,擔任工作,完成時間)

例2:

現有關系模式如下:
借閱(圖書編號,書名,作者名,出版社,讀者編號,讀者姓名,借閱日期,歸還日期)
(1)讀者編號是候選碼嗎請說明理由。
(2)寫出該關系模式的主碼。
(3)該關系模式中是否存在部分函數依賴如果存在,請寫出兩個。
(4)該關系模式最高滿足第幾范式並說明理由。
(5)如何分解該關系模式,使得分解后的關系模式均滿足第三范式(3NF)

由關系模式可以得出:

候選碼:(圖書編號,讀者編號,借閱日期)

(圖書編號)→(書名)

(圖書編號)→(作者名)

(圖書編號)→(出版社)

(讀者編號)→(讀者姓名)

歸還日期不能依賴於借閱日期

(1)不是,讀者編號只能決定書名、作者名、出版社,不能決定所有的屬性,因此該關系模式不能完全依賴於讀者編號。

(2)(圖書編號,讀者編號,借閱日期)

(3)偶上邊寫了5個XDDD

(4)第一范式,因為存在非主屬性對碼的部分函數依賴,比如(圖書編號,讀者編號,借閱日期)→(書名),而(圖書編號)→(書名)。

(5)

圖書(圖書編號書名,作者名,出版社)

讀者(讀者編號,讀者姓名)

借閱記錄(圖書編號,讀者編號,借閱日期,歸還日期)

為什么沒有(借閱日期)→(歸還日期)呢?

因為一個借閱日期告訴我們,我們只知道借了某個東西以后需要歸還,但沒有具體時間,想什么時候還是未知的,因此不能決定。

為什么會有(圖書編號,讀者編號,借閱日期)→(歸還日期)呢?

這就得怪題目不嚴謹了!明明借了一本書只要在規定時間內的某一天還就可以了,這也是不能預測的某一天,除非已經有了規定:該書必須在哪天還,或者說這里的歸還日期指的是最后的歸還日期,也就是deadline,截止日期,哈哈哈那就是咋們中華文化廣大精神了,咋們在圖書館借了某本書后確實是有個成文的規定,在規定時間還,這樣想的話就比較合理,但是題目中真的沒有任何描述,所以真的很不嚴謹。

例3:

現有如下關系模式,用於記錄學生參加競賽信息:

參加競賽(競賽編號,競賽名稱,競賽組織者,競賽開始日期,學號,學生姓名,獲獎等級)

若有以下規定,

(1)所有競賽的編號是唯一的;

(2)一名學生可以在不同日期參加不同的競賽,但在同一日期只能參加一個競賽;一個競賽可有多名學生參加;

(3)每名學生參加一次競賽,會獲得一個不同等級的獎項。

請完成如下問題:

1)請寫出該關系模式的碼。(5分)

2)該關系模式滿足第幾范式?請說明理由。 (5分)

3)請給出關系模式的一個有效分解,使得分解后的關系模式均滿足第三范式? (5分)

由關系模式可以得出:

候選碼:(競賽編號,學號)

(競賽編號)→(競賽名稱)

(競賽編號)→(競賽組織者)

(競賽編號)→(競賽開始日期)

(學號)→(學生姓名)

獲獎等級沒法肉眼判斷。。

由題目規定可以得出:

(學號,競賽開始日期)→(競賽編號)

(學號)→(競賽編號)

(學號,競賽編號)→(獲獎等級)

1)(競賽編號,學號)

2)第一范式,因為該關系模式中存在非主屬性對碼的部分函數依賴,比如(學號,競賽編號)→(獲獎等級)、(競賽編號)→(競賽組織者)

競賽(競賽編號,競賽名稱,競賽組織者,競賽開始日期)

學生(學號,學生姓名)

參賽信息(學號,競賽編號,獲獎等級)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM