看板 Examination 關於我們 聯絡資訊
有幾點在下異議,在此請上榜10次的哥或考友們共同討論。 較優候選鍵找法一般都是:「沒有被人決定,且又可決定別人」。 但題目中: R(C,S,J,D,P,Q,V) C-->{S,J,D,P,Q,V} {J,P}-->C {S,D}-->P 很不幸沒有這種候選鍵。所以在下不懂上榜10次的哥 一、{J,P}, {S,D.J} 這二組候選鍵是怎麼決定的? 二、一定要拆成3個表嗎?可不可以更少些?(照10次哥的候選鍵是要3個沒錯, 但我想用最少的表,滿足 BCNF) 這二點是在下疑問的地方。 在下就題目給的 C-->{S,J,D,P,Q,V} {J,P}-->C {S,D}-->P 三條決定因素當候選鍵,其中 C-->{S,J,D,P,Q,V} {S,D}-->P 這二條因為會拆超過 2 個以上的表,不考慮,故選 {J,P}-->C 如此一來 R1(J, P, C) ............ J,P 為 R1 的 PK, C 為 R2 的 FK R2(C, S, D, Q, V) ...... C 為 R2 的 PK 並參考至 R1.C (注意,R2中 {S,D}--> P 功能相依因 P 拆走而消失,故 R2 中的 {S,D} 沒有功能) 二個表,且滿足 BCNF 至於為何要最少表? 在下的理由是: 一、如同考數學一樣,方程式能化簡而沒化簡,雖事實上相等沒錯,但給改考卷的人 有理由扣分,最少表,同理。 二、實際上在開發系統、寫程式時,最少表又滿足正規化,是一般考量。 (用「一般」這保留字眼是,事實上也有特殊狀況,要看系統需求而定,但一般 確實是這樣沒錯)  先謝謝指教的人,祝大家高考都上榜! : 讓我這個上榜10次的哥來教教你 : 此題候選鍵為{J,P},{S,D.J} : C決定的屬性都是從{J,P}延伸出去的 : 因此Q,V遞移相依於主鍵{J,P}透過C : 因此不為3NF為2NF : BCNF後 : R1{S,D,P} {S,D}為主鍵 : R2{C,Q,V} C為主鍵 : R3{S,D,J,C} {S,D,J}為主鍵,{S,D}為外鍵,C為外鍵 : or : R3{J,P,C} {J,P}為主鍵,C為外鍵 : 打完收工 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.33.33 ※ 文章網址: http://www.ptt.cc/bbs/Examination/M.1403276954.A.995.html
bloodyaugust:可是你這樣就少了 {S,D}--> P 這個功能相依啊... 06/21 00:04