免費開始練習
高考申論題 106年 [資訊處理] 資料庫應用

第 一 題

📖 題組:
考慮下列關聯資料表: 教務資料(教授姓名, 教授工作證號碼, 研究室編號, 研究室所在建築物, 課程編號, 課程名稱, 教室所在建築物, 教室編號, 修課成績, 學生姓名, 學生證號碼) 該關聯資料表「教務資料」有以下限制: 每位教授的教授工作證號碼是唯一的;每位學生的學生證號碼是唯一的;每門課的課程編號是唯一的;每間研究室的研究室編號是唯一的;每間教室的教室編號是唯一的。 每位教授都分配有一間且僅有一間研究室,每一間研究室可供給零位以上教授使用。 每門課由一位且僅由一位教授上該門課,每位教授至少上一門課。 每位學生至少修一門課,每門課有零位以上學生修該課程。 每門課只會在一間教室上課,每間教室都可供零門課以上使用。 修課成績指某位學生修某門課的成績。
📝 此題為申論題,共 4 小題

小題 (一)

試依前述限制,描述所有可能的功能相依性(functional dependency)。(10 分)

思路引導 VIP

看到這題首先應逐句分析題目的「業務規則(Business Rules)」,將「唯一性限制」與「一對一/多對一對應關係」轉換為功能相依(X → Y)。接著,留意由多個屬性組合成的複合鍵(如成績由學生與課程共同決定),最後再檢查是否有隱含的傳遞相依(Transitive Dependency)。

🤖
AI 詳解
AI 專屬家教

【解題思路】將題目描述的唯一性限制(鍵值)以及實體間的一對一、多對一關係,逐一轉換為 X → Y 的功能相依性,並找出複合鍵與傳遞相依。 【詳解】 已知題目之限制條件,可推導出以下功能相依性(Functional Dependency,簡稱 FD):

小題 (二)

試問如何以功能相依性的規則,依前述限制來決定出關聯資料表「教務資料」的主要鍵(primary key)。(10 分)

思路引導 VIP

本題測驗關聯式資料庫設計的核心基礎:如何從語意限制中萃取出「功能相依性(Functional Dependency, FD)」,並以此推演候選鍵與主鍵。解題時應先逐條將文字敘述轉為符號化的 FD,接著尋找「未曾出現在 FD 右側(不會被其他屬性決定)」的屬性作為主鍵的必備元素,最後透過屬性閉包(Attribute Closure)證明其能決定所有屬性即可。

🤖
AI 詳解
AI 專屬家教

【解題思路】將題目給定的語意限制轉換為所有的「功能相依性(Functional Dependency, FD)」,接著尋找不會被其他屬性所決定的基本屬性,並利用屬性閉包(Attribute Closure)推導出能決定全表所有屬性的最小集合,即為主要鍵(Primary Key)。 【詳解】 已知:依據題目限制條件,可整理出以下功能相依性(FD):

小題 (三)

請判定上述關聯資料表「教務資料」是否有符合第三正規化之要求,如不符合的話,試問將如何修改使其能符合第三正規化之要求,並標示出修改後每一關聯資料表的主要鍵(primary key)。(10 分)

思路引導 VIP

看到正規化題目,首先根據題意列出所有的功能相依(FD),接著推導出原資料表的主鍵(Primary Key)。透過檢驗是否存在「部分相依(違反2NF)」或「遞移相依(違反3NF)」來判定其正規化程度,最後依據FD將原表分解成符合3NF的多個關聯綱目,並記得標示主鍵。

🤖
AI 詳解
AI 專屬家教

【解題思路】先根據業務規則推導出所有功能相依(FD)並找出主鍵,再透過檢驗部分相依與遞移相依來判斷是否符合 3NF,最後進行分解。 【詳解】 已知:根據題意限制,可整理出以下功能相依(Functional Dependencies, FDs):

小題 (四)

試請依據(三)小題已修改成符合第三正規化要求後之關聯資料表,寫一 SQL 程式片段,依學生證號碼由小而大的順序,輸出每一位學生的學生證號碼、學生姓名,及其所修的每一門課的課程名稱與所獲得的成績。(10 分)

思路引導 VIP

先根據業務規則推導出符合 3NF 的關聯綱目(至少需包含「學生」、「課程」與「修課」三個表),確認所需查詢欄位的分布位置。接著使用 JOIN 語法將資料表透過主鍵與外鍵關聯,最後加上 ORDER BY 滿足依學生證號碼排序的條件。

🤖
AI 詳解
AI 專屬家教

【解題思路】先釐清正規化至第三正規化(3NF)後,與本題查詢相關的資料表結構,再利用 SQL 的 JOIN 與 ORDER BY 語法完成查詢。 【詳解】 一、 3NF 關聯資料表推導(與本題查詢相關部分)

升級 VIP 解鎖