moea_joint_essay
101年
[資訊] 資訊管理、程式設計
第 一 題
📖 題組:
Joe的公司有3名員工及3個部門。員工分別是 Bob、Joe 及 Mary (按字母順序排序);部門分別是 HR、Mis 及 Sale (按字母順序排序) 。其中 Bob隸屬 HR 部門;Joe隸屬 Mis部門;Mary為新進同仁,尚不屬於任何部門;Sale部門則尚無員工。Joe負責開發人資資訊系統,在資料塑模過程中,共建立兩個關聯:「員工任務」及「部門」,用來記錄員工任務資料及所隸屬部門。 「員工任務」的關聯綱目為「員工任務(EID, EName, DID, JobID, JName, Title, Salary)」,函數相依如下 EID→{EName, DID, JobID} JobID→JName {EID, Title}→Salary 「部門」的關聯綱目為「部門(DID, DName)」,其主鍵為 DID。 「員工任務.DID」參照「部門.DID」。Mary因為不屬於任何部門,故 DID 值為 Null。 (一)「員工任務」的主鍵為何? (5 分) (二)請將「員工任務」分解成滿足 3NF 的關聯綱目,並指出各關聯綱目的主鍵。 (5 分) (三)Joe想要獲得依字母順序列出所有員工的姓名及部門,如下表。 EName DName Bob HR Joe Mis Mary 於是Joe嘗試使用以下兩種SQL語法進行查詢。 SQL 1 Select EName, DName From 員工任務, 部門 Where 員工任務.DID = 部門.DID Or 員工任務.DID is Null Order by EName, DName SQL 2 Select EName, DName From 員工任務, 部門 Where 員工任務.DID = 部門.DID Union Select EName, DName From 員工任務, 部門 Where 員工任務.DID is Null Order by EName, DName 上述兩種SQL語法,查詢結果何者正確?若錯誤者,請寫出其查詢結果。(10 分)
Joe的公司有3名員工及3個部門。員工分別是 Bob、Joe 及 Mary (按字母順序排序);部門分別是 HR、Mis 及 Sale (按字母順序排序) 。其中 Bob隸屬 HR 部門;Joe隸屬 Mis部門;Mary為新進同仁,尚不屬於任何部門;Sale部門則尚無員工。Joe負責開發人資資訊系統,在資料塑模過程中,共建立兩個關聯:「員工任務」及「部門」,用來記錄員工任務資料及所隸屬部門。 「員工任務」的關聯綱目為「員工任務(EID, EName, DID, JobID, JName, Title, Salary)」,函數相依如下 EID→{EName, DID, JobID} JobID→JName {EID, Title}→Salary 「部門」的關聯綱目為「部門(DID, DName)」,其主鍵為 DID。 「員工任務.DID」參照「部門.DID」。Mary因為不屬於任何部門,故 DID 值為 Null。 (一)「員工任務」的主鍵為何? (5 分) (二)請將「員工任務」分解成滿足 3NF 的關聯綱目,並指出各關聯綱目的主鍵。 (5 分) (三)Joe想要獲得依字母順序列出所有員工的姓名及部門,如下表。 EName DName Bob HR Joe Mis Mary 於是Joe嘗試使用以下兩種SQL語法進行查詢。 SQL 1 Select EName, DName From 員工任務, 部門 Where 員工任務.DID = 部門.DID Or 員工任務.DID is Null Order by EName, DName SQL 2 Select EName, DName From 員工任務, 部門 Where 員工任務.DID = 部門.DID Union Select EName, DName From 員工任務, 部門 Where 員工任務.DID is Null Order by EName, DName 上述兩種SQL語法,查詢結果何者正確?若錯誤者,請寫出其查詢結果。(10 分)
📝 此題為申論題,共 3 小題
小題 (一)
「員工任務」的主鍵為何? (5 分)
思路引導 VIP
分析給定的函數相依(FDs),找出能決定所有屬性的最小屬性集合。給定 FDs:1. EID -> {EName, DID, JobID},2. JobID -> JName,3. {EID, Title} -> Salary。因為沒有任何FD的右邊有EID或Title,所以EID和Title必須在主鍵中。檢查 {EID, Title} 的閉包:{EID, Title}+ = {EID, Title, EName, DID, JobID, Salary, JName},涵蓋所有屬性,故主鍵為 {EID, Title}。
小題 (二)
請將「員工任務」分解成滿足 3NF 的關聯綱目,並指出各關聯綱目的主鍵。 (5 分)
思路引導 VIP
步驟一:檢查2NF。因為 {EID, Title} 是主鍵,而有 EID -> {EName, DID, JobID},這是部份相依 (Partial Dependency)。需將其拆分。拆分為:員工(EID, EName, DID, JobID) 主鍵EID,以及 員工職務(EID, Title, Salary) 主鍵{EID, Title}。步驟二:檢查3NF。在員工(EID, EName, DID, JobID)中,EID -> JobID,JobID -> JName (題目給的FD)。這存在遞移相依 (Transitive Dependency)。需進一步拆分:職務(JobID, JName) 主鍵JobID。最終綱目為三個。
小題 (三)
上述兩種SQL語法,查詢結果何者正確?若錯誤者,請寫出其查詢結果。(10 分)
思路引導 VIP
分析 SQL1: Select EName, DName From 員工任務, 部門