115 調查局特考三等 資訊科學組 資料庫應用 考古題詳解
第 一 題20 分
假設 、 與 為三個不同的交易(Transactions)。令 為從資料庫中讀取資料項 的內容,並寫入本機變數 中; 為將本機變數 的內容寫入資料庫的資料項 中。
(一)現給定下列排程(Schedule):
:、、、
:、、、
其交錯順序依原卷排程排列。請利用順序優先圖(Precedence Graph)方法,檢測此排程是否為可序列化排程(Serializable Schedule)。
(二)現給定下列排程(Schedule):
:、、、
:、、、
:、、、
其交錯順序依原卷排程排列。請利用順序優先圖(Precedence Graph)方法,檢測此排程是否為可序列化排程(Serializable Schedule)。
登入後即可作答並保存紀錄。
核心觀念
本題考查衝突可序列化(conflict serializability)。順序優先圖又稱優先圖(precedence graph):每個交易各為一個節點;若排程中有兩個不同交易對同一資料項執行衝突操作,且其中一個操作先於另一個,便由先執行者指向後執行者,形成一條有向邊。
衝突操作須同時符合:
- 來自不同交易;
- 存取同一資料項;
- 至少一個操作是寫入。
因此,– 不衝突;–、–、– 則都會產生衝突。順序優先圖無環,排程即為衝突可序列化;有環則不是。
解題方法
題目未列出各操作的完整交錯次序,只說「其交錯順序依原卷排程排列」,但原卷中的實際操作序列並未提供。順序優先圖的邊取決於衝突操作的先後順序;僅有各交易內部的操作順序,不足以唯一判定圖中的邊。因此,(一)與(二)都須依原卷排程的實際交錯順序分析,不能由目前列出的資訊定案。
作答時,先依原卷由左至右(或由上至下)標示每個操作的先後,再逐對檢查不同交易間對同一資料項的衝突操作,加入對應有向邊;最後檢查圖是否有環。
(一)兩個交易
已知兩個交易都會讀寫 與 。可能產生邊的衝突對如下:
- 在 上: 與 的讀寫、寫讀、寫寫衝突。
- 在 上: 與 的讀寫、寫讀、寫寫衝突。
- 同一資料項的讀讀操作不產生邊。
第 二 題20 分
假設使用者 擁有一對 RSA 公鑰 與私鑰 ;使用者 也擁有一對 RSA 公鑰 與私鑰 。若 欲透過網路將訊息 安全地傳送給 :
(一)請利用 RSA 加密法,設計一套能同時滿足鑑別性(Authenticity)、機密性(Confidentiality)、完整性(Integrity)及不可否認性(Non-Repudiation)之四項安全原則的傳輸流程演算法,以安全完成該任務。
(二)請詳細說明您所設計的演算法,如何能有效達成上述四項資訊安全原則。
登入後即可作答並保存紀錄。
核心觀念
本題考 RSA 的兩種用途,以及如何搭配雜湊函數完成安全傳輸:
- 公鑰加密:以接收者的公鑰加密,只有持有相對應私鑰者能解密,提供機密性。
- 數位簽章:傳送者以自己的私鑰對訊息摘要簽章,接收者以傳送者的公鑰驗證,提供來源鑑別、完整性及不可否認性。
- 雜湊函數:將訊息映射為固定長度摘要;訊息改變時,摘要也會改變。雜湊本身不加密,也不能單獨證明傳送者身分。
題目未指定雜湊函數及 RSA 簽章格式,以下以安全雜湊函數 搭配標準 RSA 簽章方案說明。實務上,公鑰須透過憑證或其他可信管道確認其所屬者。
解題方法:簽章後再加密
令 A 的私鑰為 、公鑰為 ;B 的私鑰為 、公鑰為 。
傳送流程
- A 計算訊息摘要
- A 對摘要產生數位簽章
在教科書式 RSA 表示中,可寫成 ;實際使用時應採用標準化且安全的 RSA 簽章填充格式。
- A 將訊息與簽章組成待傳資料
- A 使用 B 的公鑰加密待傳資料
A 傳送密文 給 B。實際系統通常使用混合式加密:以隨機產生的對稱金鑰加密 ,再以 加密該金鑰。
接收流程
- B 使用自己的私鑰解密
- B 驗證 A 的簽章
B 以 A 的公鑰 驗證 是否為訊息摘要 的有效簽章:
第 三 題60 分
圖一為一個含有二個特殊化(specializations)的公司人員分類之 Enhanced Entity-Relationship Diagram(EERD)。
(一)針對圖一之 EERD,以下哪些敘述是正確?
- 每一位人員必是員工或客戶。
- 每一位員工必是行政人員、技術人員或顧問。
- 可能有人員為員工,也為客戶。
- 可能有員工為行政人員、為技術人員,也為顧問。
- 可能有員工為行政人員、也為技術人員,但不為顧問。
- 可能有人員為員工,但不為客戶。
- 可能有人員不為員工,也不為客戶。
- 可能有員工不為行政人員、不為技術人員,也不為顧問。
- 可能有人員為行政人員,也為客戶。
- 可能有人員為行政人員、為技術人員,也為客戶。
(二)請將圖一之 EERD 轉換成以關聯式資料庫之表格加以描述,並請結合子型態鑑別器(Subtype discriminator) 及 ,為每位人員判斷其所對應之子類別,同時也正確標示出每一表格的 primary key。當中 及 兩個屬性,分別描述每位人員所屬類別,以及每位員工所屬類別。試列出將該 EERD 轉換後之最適當表格,並標出每一表格之 primary key。
(三)試詳細說明如何表示 及 內容。
(四)試寫一 SQL 程式片段,以查找出每一位員工之 SSD、姓名、所屬部門及職務類別(行政人員、技術人員、顧問)。
登入後即可作答並保存紀錄。
核心觀念
本題考查 EERD 的特殊化(specialization)約束:
- 完整特殊化(total specialization):超型態中的每個實體,必須屬於至少一個子型態。
- 部分特殊化(partial specialization):超型態中的實體不一定屬於任何子型態。
- 重疊特殊化(overlapping):同一實體可同時屬於多個子型態,以圓圈內的
o表示。 - 互斥特殊化(disjoint):同一實體只能屬於一個子型態,以圓圈內的
d表示。
依圖一:
- 「人員」至「員工、客戶」為完整且重疊特殊化。
- 「員工」至「行政人員、技術人員、顧問」為完整且互斥特殊化。
(一)選項分析
1. 每一位人員必是員工或客戶。
正確。第一個特殊化為完整特殊化,因此每位人員至少屬於員工或客戶其中之一。
2. 每一位員工必是行政人員、技術人員或顧問。
正確。第二個特殊化為完整特殊化,因此每位員工至少屬於三種員工子類別之一。
3. 可能有人員為員工,也為客戶。
正確。第一個特殊化標示為重疊,因此人員可同時屬於員工及客戶。
4. 可能有員工為行政人員、為技術人員,也為顧問。
錯誤。第二個特殊化為互斥特殊化,同一位員工只能屬於一種員工子類別。
5. 可能有員工為行政人員、也為技術人員,但不為顧問。
錯誤。行政人員與技術人員仍是兩個不同子類別,互斥約束禁止同一位員工同時屬於兩者。
6. 可能有人員為員工,但不為客戶。
正確。第一個特殊化雖然是完整特殊化,但不是所有人員都必須同時是員工及客戶;人員可只屬於員工。
7. 可能有人員不為員工,也不為客戶。
錯誤。第一個特殊化為完整特殊化,每位人員至少必須屬於員工或客戶之一。
8. 可能有員工不為行政人員、不為技術人員,也不為顧問。
錯誤。第二個特殊化為完整特殊化,每位員工至少必須屬於一個員工子類別。
9. 可能有人員為行政人員,也為客戶。
正確。行政人員是員工的子類別,而員工與客戶之間允許重疊,因此同一人可同時為行政人員及客戶。
10. 可能有人員為行政人員、為技術人員,也為客戶。
錯誤。雖然員工可同時為客戶,但行政人員與技術人員互斥,不能同時具備兩種員工子類別身分。
小結
正確選項為:
(二)轉換為關聯式資料庫表格
解題方法
採用「超型態一張表、各子型態各自一張表」的轉換方式:
- 超型態的主鍵會移至子型態表,作為子型態表的 primary key。
- 子型態表的 primary key 同時是參照超型態表的 foreign key。
- 由於第一個特殊化允許重疊,人員可以同時出現在
Employee與Customer。 - 由於第二個特殊化互斥,每位員工只會出現在
AdministrativeStaff、TechnicalStaff、Consultant三表其中之一。
1. 人員表
Person(
SSD PRIMARY KEY,
Name,
PType
)
SSD:人員身分識別資料,為 primary key。Name:姓名。PType:人員所屬子類別鑑別器。
2. 員工表
Employee(
SSD PRIMARY KEY,
Department,
EType,
FOREIGN KEY (SSD) REFERENCES Person(SSD)
)
SSD:同時是 primary key 及 foreign key。Department:所屬部門。EType:員工所屬子類別鑑別器。
3. 客戶表
Customer(
SSD PRIMARY KEY,
Product,
FOREIGN KEY (SSD) REFERENCES Person(SSD)
)
SSD:同時是 primary key 及 foreign key。Product:客戶相關產品資料。
4. 行政人員表
AdministrativeStaff(
SSD PRIMARY KEY,
Business,
FOREIGN KEY (SSD) REFERENCES Employee(SSD)
)
5. 技術人員表
TechnicalStaff(
SSD PRIMARY KEY,
License,
FOREIGN KEY (SSD) REFERENCES Employee(SSD)
)
6. 顧問表
Consultant(
SSD PRIMARY KEY,
Expertise,
FOREIGN KEY (SSD) REFERENCES Employee(SSD)
)
其中: