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

第 一 題

📖 題組:
二、某出版社要用關聯式資料模式建立可記錄其出版書籍的資料庫,設計了包括可記錄書籍的資料表(Table)BOOK 及記錄作者的資料表 AUTHOR。BOOK 中包含 BookId(書籍編號)、Title(書名)、PubDate(出版日期)、Category(分類)等屬性(Attribute)欄位,且 BookId 是其主鍵(Primary Key, PK);AUTHOR 中包含 AuthId(作者編號)、Name(姓名)、Birthday(出生年月日)、Tel(電話)等屬性欄位,且 AuthId 是其主鍵。即資料庫中包含 BOOK(BookId, Title, PubDate, Category) AUTHOR(AuthId, Name, Birthday, Tel) 兩個資料表。請依序回答下列問題:
📝 此題為申論題,共 3 小題

小題 (一)

如果每本書可以有好幾位作者,每一位作者也可以出版好幾本書,請對前項資料庫設計進行增修,使得出版社的資料庫可記錄每本書的作者,也可記錄每個作者所出版的書。作答時可仿效題目的描述方式說明您的設計,注意必須以英文命名明確表達資料表名稱及屬性欄位名稱,並明確指出主鍵及外來鍵(Foreign Key, FK),外來鍵並須指出與其對應的主鍵。(10 分)

思路引導 VIP

題目描述的是經典的「多對多(Many-to-Many, N:M)」關係。在關聯式資料庫中,不能直接在兩個 Table 中記錄多個對應值,必須建立一個「關聯資料表(Junction Table / Linking Table)」。設計時,這個中間表必須包含兩端的主鍵作為其組成部分,並設定外來鍵約束(FK)以維持參照完整性。

🤖
AI 詳解
AI 專屬家教

【考點分析】 多對多關係(M:N Relationship)的轉換與實作。 【理論/法規依據】

小題 (二)

承續並運用前一子題之資料庫增修,請寫出可查得屬於「’資料庫’」分類(Category)的所有書籍之 SQL 命令,此命令必須列出書籍的 BookId, Title 及作者人數,並依 BookId 由小而大依序列出。(15 分)

思路引導 VIP

此題需要跨表查詢,涉及 JOIN 操作。重點在於:1. 篩選條件為 Category = '資料庫';2. 計算作者人數需使用聚合函數 COUNT(*)COUNT(AuthId);3. 使用聚合函數時必須搭配 GROUP BY;4. 最後依題目要求使用 ORDER BY 排序。

🤖
AI 詳解
AI 專屬家教

【考點分析】 SQL 聚合函數 (Aggregate Functions)、群組化 (GROUP BY) 與跨表連接 (JOIN)。 【分析與論述】

小題 (三)

請運用子題之資料庫增修寫出可查得曾經與名字叫「’張山峰’」的作者共同著作過的作者之 SQL 命令,列出其姓名及電話。(15 分)

思路引導 VIP

這是一個典型的自我相關查詢(Self-join 邏輯)。思考流程:

  1. 先找出「張山峰」參與過的書籍清單 (BookId)。
🤖
AI 詳解
AI 專屬家教

【考點分析】 子查詢 (Subquery) 或自我連接 (Self-Join) 的應用。 【分析與論述】

升級 VIP 解鎖