免費開始練習
moea_joint_essay 102年 [資訊] 資訊管理、程式設計

第 二 題

📖 題組:
某公司為了解資產(P001、P002、P003 共三樣)分配狀況,故整理現行所有已分配資產記錄如下表: 員工編號 員工姓名 部門 部門人數 資產編號 資產名稱 資產型號 資產進貨總量 個人擁有數量 E# EName EDept EStatus P# PName PType PQTY QTY E1001 Jack A01 12 P001 Monitor ViewSonicV22 100 2 E1004 Jobs A01 12 P002 Printer HP LJ110 20 1 E1002 Tom B01 23 P003 PC ACER 4250 40 2 E1002 Tom B01 23 P002 Printer HP LJ110 20 1 E1003 Kay C01 35 P001 Monitor ViewSonicV22 100 4 E1001 Jack A01 12 P002 Printer HP LJ110 20 1 進行接下來的正規化步驟後,得到下列資料表:(雙底線代表該欄為主鍵) T1 員工資訊表 E# EName EDept EStatus E1001 Jack A01 12 E1002 Tom B01 23 E1003 Kay C01 35 E1004 Jobs A01 12 T2 資產資訊表 P# PName PType PQTY P001 Moniter ViewSonicV22 100 P002 Printer HP LJ110 20 P003 PC ACER 4250 40 T3 員工資產數量表 E# P# QTY E1001 P001 2 E1001 P002 1 E1002 P002 1 E1002 P003 2 E1003 P001 4 E1004 P002 1 在不考慮未來之情況下,請回答下列問題:
📝 此題為申論題,共 2 小題

小題 (二)

根據第(一)小題的 3NF 結果,請撰寫 SQL 語法,列出此員工(E1001)擁有的資產清單,所需欄位如下表所示,並請以資產編號由小至大排列。(5 分)
E# P# PName PType QTY
E1001 P001 Monitor ViewSonicV22 2
E1001 P002 Printer HP LJ110 1
題目圖片

思路引導 VIP

這需要將員工資產數量表 (T3) 與 資產資訊表 (T2) 進行 JOIN 操作,並設定過濾條件為員工編號 E1001,最後再依照 P# 排序。

🤖
AI 詳解
AI 專屬家教
SELECT T3.E#, T3.P#, T2.PName, T2.PType, T3.QTY
FROM T3

小題 (一)

請問上述資料表(T1、T2、T3)是否已符合 3NF 正規化?為什麼?若未符合,請修正至符合的狀態。(若須新增資料表,命名方式以 T4、T5…以此類推,並繪出該資料表及資料內容)(10 分)
題目圖片

思路引導 VIP

檢查 T1, T2, T3 是否有遞移相依。T1中 EDept -> EStatus,存在遞移相依,故未達 3NF。需將 T1 拆解出部門表。

🤖
AI 詳解
AI 專屬家教

上述資料表未完全符合 3NF 正規化。 原因:在 T1 員工資訊表中,主鍵為員工編號 (E#)。雖然 EName, EDept, EStatus 都依賴於 E#,但「部門人數 (EStatus)」實際上是依賴於「部門 (EDept)」,這構成了遞移相依 (E# → EDept, EDept → EStatus)。為了符合 3NF,必須消除非主鍵屬性對主鍵的遞移相依。 修正方法:

🏷️ 相關主題

關聯式資料庫設計、SQL查詢與資料正規化
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題