資料庫主鍵問題 - 高考
By Skylar Davis
at 2013-08-29T18:28
at 2013-08-29T18:28
Table of Contents
※ 引述《Sunofgod ( )》之銘言:
: 題目來自101國營資訊專業科目非選擇題
: http://ppt.cc/V4oO 公職王的擬答
: Joe 的公司有3 名員工及3 個部門。員工分別是Bob、Joe 及Mary(按字母順序排序)
: 部門分別是HR MIS Sale(按字母順序)。其中Bob屬HR部門 Joe屬MIS部門 Mary為新進同仁
: 尚未有部門 Sale部門則無員工
: 資料塑模中建立兩個關聯 員工任務及部門
: 用來紀錄員工任務及隸屬部門。
: 員工任務的關聯綱目為 員工任務(EID,EName,DID,JobID,JName,Title,Salary)
: ,函數相依如下 EID-->{EName,DID,JobID}
: JobID-->JName
: {EID,Title}-->Salary
: 部門的關聯綱目為 部門(DID,DName) 主鍵為DID
: 員工任務.DID 參照 部門.DID
: Mary因不屬於任何部門 故DID為NULL
: (一)員工任務的主鍵為?
: (二)請將員工任務分解成滿足3NF的關聯綱目,並指出各綱目主鍵
: 查到的答案為EID
: 但我想問為什麼{EID,Title}不行?
: 很弱的問題 請多多包涵
我廢話比較多用回文比較快...。
你仔細看關聯表跟列舉的相依關係
會發現沒有任何項目可以決定Title與EID
所以實際上應該是EID, Title可以決定所有項目
所以aids講的是對的
你的認為也是對的
可是網路上的解答,這題,是錯的。
然後...
EID Title 兩個屬性可以決定整個關聯表屬性,且無其他多餘(非鍵值)屬性
這是主鍵沒錯
主鍵應該要滿足兩個條件,最小性或者最簡性,以及唯一性,然後從候選鍵中被選出
(如果有候選鍵的話啦)
假設你把其他亂七八糟的非鍵值屬性都扔進去...
的確照你的理解是一樣可以決定關聯表內其他值沒錯
實際上也有這種狀況,但不叫主鍵
比如說R(a,b) 裡面
已知相依關係a->b
所以a->ab是成立的
當然ab->b或者ab->ab也都成立
但b->b與a->a,兩個拆出來看根本廢話(攤手)
這是理所當然的吧?
所以當你把所有廢話全部刪掉之後,就會得到最簡表示相依關係,a->b,於是a為主鍵
那一定要把非鍵值屬性加進去的狀況下有沒有?
有阿,超鍵。
我另外舉一個例子
R(a,b,c)
a->b, b->c
很明顯a是主鍵屬性
abc中有遞移關係,但別管他
這時候我們可以很清楚的判斷a->{a,b,c}是可以成立的
當然,ab->{a,b,c}與abc->{abc}也一樣都成立
所以ab是超鍵之一,abc也一樣是超鍵之一
同樣的a也是超鍵。
你可以找一下超鍵,候選鍵,主鍵的定義
Google就有
超鍵是「只要可以表達決定整個關聯,他就是超鍵」
候選鍵是「要滿足超鍵條件,同時無多餘非鍵值屬性」
主鍵是「要滿足候選鍵。」
然後所謂的非鍵值屬性就是多餘屬性
所謂的鍵值,就是可以成為超鍵、候選鍵、主鍵的集合
上面那一句所講的集合...
舉例來說大概像這樣
R(a,b,c)
a->b, b->c
超鍵值可以是a, ab, abc,這時候a是超鍵值1 , ab 是超鍵值二,abc 是超鍵值三
鍵值可以是複合值組
屬性不行,除非你不滿足第一正規化才會有複合屬性
這樣,okeydoke?
P.S. 定義要看清楚,每個字每個符號都請了解意思...
今年高考好像滿多人因為定義的關係痛失分數...orz
--
: 題目來自101國營資訊專業科目非選擇題
: http://ppt.cc/V4oO 公職王的擬答
: Joe 的公司有3 名員工及3 個部門。員工分別是Bob、Joe 及Mary(按字母順序排序)
: 部門分別是HR MIS Sale(按字母順序)。其中Bob屬HR部門 Joe屬MIS部門 Mary為新進同仁
: 尚未有部門 Sale部門則無員工
: 資料塑模中建立兩個關聯 員工任務及部門
: 用來紀錄員工任務及隸屬部門。
: 員工任務的關聯綱目為 員工任務(EID,EName,DID,JobID,JName,Title,Salary)
: ,函數相依如下 EID-->{EName,DID,JobID}
: JobID-->JName
: {EID,Title}-->Salary
: 部門的關聯綱目為 部門(DID,DName) 主鍵為DID
: 員工任務.DID 參照 部門.DID
: Mary因不屬於任何部門 故DID為NULL
: (一)員工任務的主鍵為?
: (二)請將員工任務分解成滿足3NF的關聯綱目,並指出各綱目主鍵
: 查到的答案為EID
: 但我想問為什麼{EID,Title}不行?
: 很弱的問題 請多多包涵
我廢話比較多用回文比較快...。
你仔細看關聯表跟列舉的相依關係
會發現沒有任何項目可以決定Title與EID
所以實際上應該是EID, Title可以決定所有項目
所以aids講的是對的
你的認為也是對的
可是網路上的解答,這題,是錯的。
然後...
EID Title 兩個屬性可以決定整個關聯表屬性,且無其他多餘(非鍵值)屬性
這是主鍵沒錯
主鍵應該要滿足兩個條件,最小性或者最簡性,以及唯一性,然後從候選鍵中被選出
(如果有候選鍵的話啦)
假設你把其他亂七八糟的非鍵值屬性都扔進去...
的確照你的理解是一樣可以決定關聯表內其他值沒錯
實際上也有這種狀況,但不叫主鍵
比如說R(a,b) 裡面
已知相依關係a->b
所以a->ab是成立的
當然ab->b或者ab->ab也都成立
但b->b與a->a,兩個拆出來看根本廢話(攤手)
這是理所當然的吧?
所以當你把所有廢話全部刪掉之後,就會得到最簡表示相依關係,a->b,於是a為主鍵
那一定要把非鍵值屬性加進去的狀況下有沒有?
有阿,超鍵。
我另外舉一個例子
R(a,b,c)
a->b, b->c
很明顯a是主鍵屬性
abc中有遞移關係,但別管他
這時候我們可以很清楚的判斷a->{a,b,c}是可以成立的
當然,ab->{a,b,c}與abc->{abc}也一樣都成立
所以ab是超鍵之一,abc也一樣是超鍵之一
同樣的a也是超鍵。
你可以找一下超鍵,候選鍵,主鍵的定義
Google就有
超鍵是「只要可以表達決定整個關聯,他就是超鍵」
候選鍵是「要滿足超鍵條件,同時無多餘非鍵值屬性」
主鍵是「要滿足候選鍵。」
然後所謂的非鍵值屬性就是多餘屬性
所謂的鍵值,就是可以成為超鍵、候選鍵、主鍵的集合
上面那一句所講的集合...
舉例來說大概像這樣
R(a,b,c)
a->b, b->c
超鍵值可以是a, ab, abc,這時候a是超鍵值1 , ab 是超鍵值二,abc 是超鍵值三
鍵值可以是複合值組
屬性不行,除非你不滿足第一正規化才會有複合屬性
這樣,okeydoke?
P.S. 定義要看清楚,每個字每個符號都請了解意思...
今年高考好像滿多人因為定義的關係痛失分數...orz
--
Tags:
高考
All Comments
By Emma
at 2013-08-30T05:32
at 2013-08-30T05:32
By Hardy
at 2013-09-03T23:10
at 2013-09-03T23:10
By Oscar
at 2013-09-04T13:39
at 2013-09-04T13:39
By Rebecca
at 2013-09-09T11:05
at 2013-09-09T11:05
By Ursula
at 2013-09-13T18:18
at 2013-09-13T18:18
By Ethan
at 2013-09-14T14:06
at 2013-09-14T14:06
By Callum
at 2013-09-14T17:07
at 2013-09-14T17:07
By Faithe
at 2013-09-15T10:39
at 2013-09-15T10:39
By Carolina Franco
at 2013-09-17T16:32
at 2013-09-17T16:32
Related Posts
中華電信E5814業務類(計概/行銷)上榜心得
By Harry
at 2013-08-28T12:22
at 2013-08-28T12:22
102年地政士上榜心得
By Eartha
at 2013-08-28T10:06
at 2013-08-28T10:06
中華電信E5810落榜心得
By Caroline
at 2013-08-27T20:26
at 2013-08-27T20:26
台鐵員級具有公務員資格嗎?
By Steve
at 2013-08-27T18:09
at 2013-08-27T18:09
高普選報考組別和面授或視訊的問題
By Adele
at 2013-08-26T23:14
at 2013-08-26T23:14