免費開始練習
國營聯招申論題 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,必須消除非主鍵屬性對主鍵的遞移相依。 修正方法:

🏷️ 相關主題

關聯式資料庫之結構化查詢語言應用
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題