高普考題庫
95 年 095年公務人員高等考試三級考試暨普通考試

資料庫應用

本卷皆為申論題,點「看答案與解析」查看擬答。

申論 1假設某書商之關連資料庫(Relational Database)中有一個表格(Table)儲存了「書籍」(Book)之相關資訊。其Schema 如下:Book(Title, Type, Price, Name, Address, Publiser)上述表格中之屬性分別代表「書籍名稱」、「書籍種類」、「書籍訂價」、「作者姓名」、「作者地址」、「出版公司」。其功能依賴(Functional Dependencies)為 Title → {Publiser, Type},Type → Price,Name → Address㈠請找出Book 所有的候選鍵(Candidate Keys)。注意:你必須以功能依賴的推論(Inferences)規則來證明你找出的是Candidate Keys,否則視為只憑猜測,不予計分。(5 分)㈡請以功能依賴的推論證明Book 不是在2NF。(5 分)㈢請先將Book 分解為滿足2NF、但可能不滿足3NF 的表格Schema,你必須以功能依賴的推論證明每一個你的表格是在2NF。對每一個你的表格主鍵(Primary Key),請以底線標示。請注意:本小題只先要求到2NF,所以,為求資料庫的表格數精簡,你不應作不必要的分解,否則視為錯誤。(9 分)㈣請再將上述㈢小題中你所得答案中滿足2NF、但可能不滿足3NF 的表格進一步分解為滿足3NF。最後將完整的資料庫所有表格Schema 全部列出。對每一個你的表格主鍵(Primary Key),請以底線標示。對每一個你的表格予以適當語意命名,並以功能依賴的推論證明是分別在3NF。(11 分)㈤若上述㈣小題不進一步分解,那麼你預期在資料庫的日後操作上會有那種異常狀況(Anomalies)?請舉例說明。(5 分)
申論 2假設某關連資料庫(Relational Database)中有兩個表格(Tables)分別儲存「員工」(Employee)、「部門」(Department)。其Schema 如下:Employee(EID, Name, Sex, BirthYear, Full, Salary, DeptNo)屬性分別代表員工「編號」、「姓名」、「性別」、「出生年」、「專職否」、「薪水」、「所屬部門代號」,而以「編號」為其主鍵(Primary Key),沒有其他候選鍵(Candidate Key)。“Full”的值為字元Y 時表示專職,N 時表示兼職。Department(DNo, Name, Area)屬性分別代表部門「代號」、「名稱」、「所在地區」,而以「代號」為其主鍵,沒有其他候選鍵。「名稱」值可能為「生產部」、「行銷部」等中文字串,「所在地區」值可能為「台北市」、「高雄市」等中文字串。㈠請寫出下列查詢之SQL:(9 分)對所有專職人員,請依男女分別列出平均年齡,平均年齡欄位另取名為Average_Year 。㈡請寫出下列查詢之SQL:(8 分)列出「生產部」的員工中最高與最低薪水的差距,差距欄位取名為Salary_Difference。㈢請以SQL 建立一個觀點(View),名為Work_on_Taipei,該View 包含所有所屬部門在「台北市」的員工,欄位有「姓名」(另取名為EName)、「薪水」、「所屬部門名稱」(另取名為DName)。(8 分)㈣請問Work_on_Taipei 這個View 是否為Updatable? 為什麼?(5 分)
申論 3圖一為實體關係圖(Entity-Relationship Diagram),對所用符號的約略說明:其中每一實體(矩形)鄰近某關係(菱形)間均有一對(min, max)的限制,代表該實體參與該關係之min(至少)、max(至多)次數限制,*代表沒有限制。屬性劃實底線者為Primary Key(主鍵)的一部分。㈠請問該圖是否可抓住一般「某病人罹患某疾病由某醫生診治」的情境?請舉例說明之。(5 分)㈡請以兩種方式,重繪實體關係圖。要求:不得使用高於二元關係(Binary Relationship)之三元或多元關係。所繪之圖應是最精簡的,沒有多餘、不必要的實體、關係、屬性。兩種方式中,第一種方式只能用一般實體,而第二種方式必須採用弱實體(Weak Entity)(以雙矩形圖示)的觀念。(20 分)症狀名稱代號姓名(0 , *) (0 , *)疾病 診治醫生(0 , *) (0 , *)日期時間就醫罹患(1 , *)(1 , *) 病人身分證字號姓 名圖一
申論 4請問假設某資料庫只有如表一日誌(Log)所顯示的時程(Schedule)執行,其中 [write_item, T, X, old_value, new_value] 代表交易(Transaction)T 對資料庫項目X 下寫的指令,其寫之前X 的值為old_value,其寫之後X 的值為new_value。若DBMS 是採立即更新技術(Immediate Update Technique),當回復(Recovery)後,各項目(Item)A, B, C, D, E 值各為多少?(10 分)表一[start_transaction, T][write_item, T, A, 1, 2][write_item, T, B, 0, 300][commit, T][start_transaction, T][write_item, T, C, 100, 200][commit, T][start_transaction, T][checkpoint][write_item, T, D, 1000, 2600][start_transaction, T][write_item, T, A, 2, 22][write_item, T, B, 300, 331][start_transaction, T][write_item, T, E, 12, 22][commit, T][commit, T][write_item, T, B, 331, 366][write_item, T, A, 22, 29][start_transaction, T][write_item, T, D, 2600, 2800]System Crash