高考申論題
107年
[資訊處理] 資料庫應用
第 一 題
📖 題組:
假設現有如下推拿就醫資訊的關連式資料庫,請使用 SQL 回答相關的子問題。 Naprapathist(nID, name, speciality) Patient(pID, name, gender, birthday) MedicalItem(mID, subject, description, charge) MedicalRecord(mID, nID, pID, dateTime, extraCharge, totalCharge) FKs: mID ref. MedicalItem(mID), nID ref. Naprapathist(nID), pID ref. Patient(pID) 其中 nID, mID, pID 是由 1000 開始每次增加 1 的自動編號整數,所有資料欄位不允空白,totalCharge 是由 MedicalRecord 的 charge 跟 extraCharge 加總而來。
假設現有如下推拿就醫資訊的關連式資料庫,請使用 SQL 回答相關的子問題。 Naprapathist(nID, name, speciality) Patient(pID, name, gender, birthday) MedicalItem(mID, subject, description, charge) MedicalRecord(mID, nID, pID, dateTime, extraCharge, totalCharge) FKs: mID ref. MedicalItem(mID), nID ref. Naprapathist(nID), pID ref. Patient(pID) 其中 nID, mID, pID 是由 1000 開始每次增加 1 的自動編號整數,所有資料欄位不允空白,totalCharge 是由 MedicalRecord 的 charge 跟 extraCharge 加總而來。
📝 此題為申論題,共 3 小題
小題 (一)
定義資料表 MedicalRecord(定義中應適當表示 primary and foreign key)(10 分)
思路引導 VIP
本子題測驗 SQL 的 DDL (Data Definition Language) 指令,主要撰寫 CREATE TABLE 語法。考點有幾個限制條件:
- 資料型別定義:需考量 dateTime、整數或金額(extraCharge, totalCharge)。
小題 (二)
請依推拿師代號(nID)為分群依據,找出日期為"2018-06-06",且該日期相對應推拿師所經手的醫療次數大於零時,個別推拿師在該日期所經手的相關醫療總收費金額及醫療次數(結果資料表應包含推拿師的名字、別名為"收費總金額"的醫療總收費金額、及別名為"醫療次數"的醫療次數,結果並依醫療次數作降冪排列顯示)。(10 分)
思路引導 VIP
本子題測驗 SQL DML (Data Manipulation Language) 的資料查詢能力。 解析步驟:
小題 (三)
(三)在 ER 概念模型有參與限制(Participation Constraints),請問選擇性(Optional)與必須(Mandatory)限制,在關聯式資料庫模型如何表示上述限制。(6 分)
思路引導 VIP
解此題應將概念模型(ERD)的「參與限制」直接連結到邏輯設計(關聯綱目)的「屬性限制條件」。重點在於說明轉換後的外部鍵(Foreign Key)是否允許為空值(NULL)。