
104年公務人員升官等考試、104年關務人員升官等考試
104
年交通事業公路、港務人員升資考試試題
代號:26230 全一張
(背面)
等級: 薦任
類科(別): 資訊處理
科目: 資料庫應用
二、以下 Loan 與Borrower 為兩個關聯資料表。當中 Loan 記錄著每一件貸款資料;
Borrower 記錄著每一位借款人資料,BorrowerLname 與BorrowerFname 分別為借款
人的姓與名字。請寫一 SQL 程式片段,依姓名順序輸出每一位借款人的姓與名字及
其借款次數。(10 分) Loan
LoanID BorrowerID LoanDate DueDate ReturnDate
123 874 12-23-2013 01-24-2014 01-24-2014
124 874 12-23-2013 01-24-2014 NULL
125 876 12-29-2013 01-28-2014 NULL
126 874 01-25-2014 02-21-2014 NULL
Borrower
BorrowerID BorrowerFname BorrowerLname
874 Leon Small
875 Gary Lowe
876 Mark Sanchez
877 Clywd Morgan
三、在設計關聯式資料庫時,常會對關聯資料表進行正規化。
試問對關聯資料表進行正規化之優點及缺點為何?(10 分)
如整個資料庫系統中對某一資料表的資料內容,只會有讀資料的動作,試問對該
資料表進行正規化有何優缺點?(10 分)
四、以下為在同步處理系統裡,執行交易(transaction)時常被執行的動作:
read_item(Ti, A, B):在交易 Ti 中,讀取資料 A的內容,並將其存入資料 B中。
write_item(Ti, A, B):在交易 Ti 中,將資料 B的內容寫入資料 A中。
read_lock(A):對資料 A進行鎖定,使其他交易無法對其進行讀取的動作。
write_lock(A):對資料 A進行鎖定,使其他交易無法對其進行寫入的動作。
unlock (A):解除對資料 A的鎖定。
設T1 與T2 為系統中正在被執行的兩個交易(transaction),而 X與Y為T1 與T2 中
所共用的兩個變數。T1 與T2 之程式指令如下所示,並設在執行 T1 與T2 前,X = 20;
Y = 30。請討論在執行完 T1 與T2 後,變數 X與Y會有何可能結果。(20 分)
T1 T2
read_lock(Y); read_lock(X);
read_item (T1, Y, A); read_item (T2, X, C);
unlock (Y); unlock(X);
read_lock(X); read_lock(Y);
read_item (T1, X, B); read_item (T2, Y, D);
unlock (X); unlock(Y);
A:=A+B; C:=C+D;
write_lock(Y); write_lock(X);
write_item(T1, Y, A); write_item(T2, X, C);
unlock (Y); unlock (X);