資訊處理 101 年高等資料庫設計考古題(共 4 題) 資料來源:考選部歷屆試題|法律人 LawPlayer 整理 https://lawplayer.com/exam/information-processing/101-%E9%AB%98%E7%AD%89%E8%B3%87%E6%96%99%E5%BA%AB%E8%A8%AD%E8%A8%88 第 1 題 考慮以下用來記載考生到考的資訊: Exam 資料表,包括以下欄位: ExamDateTime //考試開始時間 Supervisor //監考官姓名 RoomNo //教室編號 SupervisorUnit //監考官隸屬單位 Building //所在大樓 TotalExaminee 應考人數 ActualExaminee 到考人數 函數相依(Functional dependency)如下: Supervisor→SupervisorUnit {RoomNo, ExamDateTime}→{Supervisor, TotalExaminee, ActualExaminee} RoomNo→Building ㈠請推導出Exam 資料表的關聯鍵(key)。(5 分) ㈡將Exam 關聯綱目分解成滿足第二正規式(Second Normal Form)但 不滿足第三正規式(Third Normal Form)的綱目,請列出分解後每一關 聯綱目之主鍵(Primary key)和外鍵(Foreign key)。(5 分) ㈢將Exam 關聯綱目分解成滿足第三正規式(Third Normal Form)的綱 目,請列出分解後每一關聯綱目之主鍵(Primary key)和外鍵(Foreign key)。(5 分) ㈣用SQL CREATE TABLE 語法表達出上一小題㈢的Exam 關聯綱目, 且要滿足TotalExaminee≥ActualExaminee 的限制,屬性的形態請自 訂。(10 分) 第 2 題 考慮以下的討論版資料庫綱目(Database schema): Member(mId, name, bDate, gender) //會員編號,姓名,生日,性別 Article(mId, aId, title, content, postDate) //會員編號,文章編號,標題,內容,張貼日期 Reply(mId, aId, rTime, content, responder) //會員編號,文章編號,回覆日期時間,回覆內容,回覆者 若我們有以下的SQL 敘述: SELECT mId, name FROM Member AS M WHERE gender = ‘M’ AND EXISTS (SELECT * FROM Article AS A WHERE mId = M.mId AND (mId, aId) IN (SELECT DISTINCT mId, aId FROM Reply WHERE mId = A.mId AND aId = A.aId GROUP BY mId, aId HAVING COUNT(*) > 10)); ㈠請說明以上查詢句的意義。(5 分) ㈡以上查詢句的執行效率可能不佳,請指出造成其效率不佳的語法,並 改寫成一個效率較佳的敘述。(10 分) ㈢針對你所改寫的查詢句,若想進一步提升其執行效率,請問可以建置 那些索引(Index)?請寫出建置這些索引的SQL 敘述並說明原因。 (10 分) 第 3 題 考慮以下的XML Schema: 1 2 3 第 8 題 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ㈠請列出以上XML Schema 的錯誤並修正之。(15 分) ㈡請說明以上XML Schema 的意義。(10 分) 四、考慮以下的實體關係圖(ERD): N 1 N N 1 N M 1 Student sId Course cId Article Takes aId cName Has Board PostedIn Posts bName start content sName ㈠請轉成最精簡的關聯式資料庫綱目(Relational database schema),每 一關聯(relation)僅需表達出其屬性(Attribute)名稱、主鍵(Primary key)、外鍵(Foreign key)和相對應的主鍵即可,屬性形態不須寫出。 (15 分) ㈡若想表達出「PO 在一課程討論版的每一篇文章之作者必須修該課 程」,請問該如何使用SQL 語法設定。(10 分) 題目為考試當年公告版本,實務標準請以現行規範為準。