作者hawkI (hawk)
看板Examination
標題[考題] 102關務 資料庫 正規化
時間Sat Aug 3 19:34:11 2013
[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處
考題網址:
http://ppt.cc/Uwur
很抱歉 有段時間沒碰資料庫 現在做起題目感覺很奇怪
這一題主要想問第四小題BCNF那裡的問題,附上我解的過程
題目:
已知下列表格的功能相依性(Functional Dependencies)如下。請分4 步驟依序完成
正規化的工作:(一)一階正規化 (二)二階正規化 (三)三階正規化
(四) Boyce-Codd 正規化。最後在(四)中說明表格的主鍵(Primary Keys)。
表格
學號 生日 年紀 課號 授課教授 開課系名 主修系名 選課指導 教授成績
112233 80.8.4 22 歲 24680 林教授 工工系 工工系 I教授 88
223344 79.9.1 23 歲 24680 林教授 工工系 運管系 T教授 84
334455 80.5.2 22 歲 13579 李教授 管科系 資財系 F教授 79
112233 80.8.4 22 歲 24680 林教授 工工系 管科系 M教授 88
FD
學號→生日;
生日→年紀;
課號→授課教授;
授課教授→開課系名;
(學號,課號)→成績;
(學號,主修系名)→選課指導教授;
選課指導教授→主修系名;
以下是我的想法 想問有沒有錯誤
(一)第一正規化
已符合第一正規化 屬性定義域為atomic
┌──┐ ┌─┐ ┌──┐ ┌───┐ ┌────┐
│ ↓ │ ↓ │ ↓ │ ↓ ↓ │
學號 生日 年紀 課號 授課教授 開課系名 主修系名 選課指導 教授成績
│ │ │ ↑ ↑
├─────────────────────────┴─────┘ │
└─────────┴─────────────────────────┘
(二)第二正規化
非key值必須完全相依於主key
因此將表格分解如下
學號,生日,年紀
課號,授課教授,開課系名
學號,課號,教授成績
學號,主修系名,選課指導
┌──┐ ┌─┐ ┌──┐ ┌───┐
│ ↓ │ ↓ │ ↓ │ ↓
學號 生日 年紀 課號 授課教授 開課系名
┌──┬───┐ ┌────┐
│ │ ↓ ↓ │
學號 課號 教授成績 學號 主修系名 選課指導
│ │ ↑
└───┴────┘
(三)第三正規化 綠色為主key色
非key值不可遞移相依於主key
┌──┐ ┌──┐
│ ↓ │ ↓
學號 生日
生日 年紀
┌──┐ ┌──┐
│ ↓ │ ↓
課號 授課教授
授課教授 開課系名
┌──┬───┐ ┌────┐
│ │ ↓ ↓ │
學號 課號 教授成績
學號 主修系名 選課指導
│ │ ↑
└───┴────┘
CK(學號,生日,課號,授課教授,主修系名) or
CK(學號,生日,課號,授課教授,選課指導) <===
這個CK怎麼看都很怪
(四)Boyce-Codd BCNF
所有決定因素必須皆為候選健
┌────┐
↓ │
學號 主修系名 選課指導
│ │ ↑
└───┴────┘
問題應該出在這
CK(學號,生日,課號,授課教授,主修系名) or
CK(學號,生日,課號,授課教授,選課指導)
這樣是直接符合了嗎?
怎麼看都覺得選課指導 指到 主修系名很奇怪
頭腦燒焦卡在這邊 不知道對不對。 求解惑 囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.98.57
1F:推 asdd:針對你的答案我提出以下看法 首先PK應該針對每個關聯個別去列 08/04 09:31
2F:→ asdd:第二 為何第三正規化的時候會有兩組CK(假設是所有關聯的PK) 08/04 09:34
3F:→ asdd:第三 BCNF針對 (學號 主修系名 選課指導)PK為學號 主修系名 08/04 09:35
4F:→ asdd:應該拆成 (學號 選課指導)皆為PK (選課指導 主修系名)其中選 08/04 09:37
5F:→ asdd:課指導為PK 大概就以上幾點 有錯煩請指導 08/04 09:39
6F:→ hawkI:CK不是只要能完成所有關聯的最小集合嗎? 所以我列的那兩個 08/04 11:58
7F:→ hawkI:我覺得都可以當成ck 也不知道這樣想法有沒有錯 08/04 11:58
8F:→ hawkI:至於BCNF 還是覺得很怪 不外乎是因為那個候選健的關係 08/04 11:59
9F:→ hawkI:如果選課指導 不包含在裡面就要拆了 但我感覺是包含在裡面 08/04 12:00
10F:→ hawkI:對了 前面的pk 是我懶得上色 沒上啦 ... 這樣考試會被扣分 08/04 12:01
11F:→ hawkI:不好意思 Sorry ... 08/04 12:01
12F:推 stator:抱歉,我之前的回答錯了。根據唐老師的說法 09/13 05:16
13F:→ stator:是一樓的a大說的沒錯。主要意義就是讓決定因素皆為CK 09/13 05:17