九九年國家安全情報人員三等資料庫應用
一、有個船舶航次 (Ship Voyages) 的關聯式資料庫 (Relational database) 中的一個表格綱要如下所示:
R(S﹐T﹐V﹐C﹐P﹐D),R為表格名稱,
S﹐T﹐V﹐C﹐P﹐D 為表格的六個屬性 (Attributes)。
其中 S 代表船名 (ship name)、T代表船型 (type of ship)、V代表航次識別編號 (voyage identifier)、C 代表一個貨櫃僅在一個航次被一艘船所載 (cargo carried by one ship on one voyage)、P代表碼頭 (port) 和 D 代表天數(day)。一個航次是由一艘船承載一個單一的貨櫃,並運送到指定的碼頭。一艘船一天僅能停靠一個碼頭,我們假設它不可能一天停靠一個碼頭兩次。這敘述暗示表格 R 有以下功能相依性 (Functional Dependency):
S → T, V → SC, SD → PV
(一)根據表格 R 的功能相依性 (Functional Dependency),請問並說明原因,表格 R 有幾個候選鍵 (Candidate keys)?表格R是第幾個正規化型式?(10分)
(二)解釋並說明應用無損合併 (lossless join) 和保持依賴 (dependency preserving) 的原理,應如何更改 (decomposition),使所有的表格都滿足第3正規化 (3NF)?(10分)
(三)解釋並說明應用無損合併 (lossless join) 的原理,應如何更進一步更改(decomposition),使所有的表格都滿足BCNF (Boyce-Codd Normal Form)?(10分)

二、有個 Web-based應用程式使用一個具有敏感數據的資料庫,該應用程式在資料庫上每分鐘處理15,000個交易。在該資料庫其中有個表單 (Table) 上的一個欄位 (Column) 儲存非常敏感的數據,而且該欄位上的數據僅允許被同一個 Web-based應用程式儲存和使用。在儲存敏感數據時不僅需要在最安全的方式進行,同時還需要確保最大限度地減少記憶空間和處理器時間的使用。
(一)請說明解釋下面四種加密類型:(10分)
1.對稱密鑰加密 (Symmetric key encryption)
2.非對稱密鑰加密 (Asymmetric key encryption)
3.證書基底加密 (Certificate-based encryption)
4.透明數據加密 (Transparent data encryption)
(二)根據所敘述的條件,選出並解釋其中那兩種加密類型最適合。(10分)

三、假設一個與航班資訊 (Airline Flight Information) 有關的資料庫有四個關聯表 (Relation Tables),分別為航班 (Flights)、飛機 (Aircraft)、認證 (Certified)和員工 (Employees),有劃底線之欄位為主鍵。
Flights(flno: integer, from: string, to: string, distance: integer, departs: time, arrives: time)
Aircraft(aid: integer, aname: string, cruisingrange: integer)
Certified(eid: integer, aid: integer)
Employees(eid: integer, ename: string, salary: integer)
這裡,航班 (Flights) 包含航班編號 (flno)、飛來的城市 (from)、飛去的城市 (to)、飛行距離 (distance)、飛離時間 (departs) 和到達時間 (arrives)。飛機(Aircraft) 包含飛機編號 (aid)、飛機名字 (aname)和飛行範圍(cruisingrange)。認證 (Certified) 包含員工編號 (eid) 和飛機編號 (aid),員工編號 (eid) 和飛機編號 (aid) 都是外來鍵用來參考 (referencing) 員工和飛機。員工 (Employees) 包含員工編號 (eid)、員工名字 (ename) 和工資(salary)。請用 SQL 回答下列問題:
(一)找出所有從台北 (Taipei) 到洛杉磯 (Los Angeles) 直飛航班的飛機編號(aid)。(10分)
(二)找出具有波音 (Boeing) 飛機認證的所有飛行員名字。(10分)
(三)找出可以操作飛機、飛行範圍超過3,000英里,但不具有波音飛機認證的所有飛行員名字。(10分)

四、有一家汽車保險公司建置一個汽車保險資料庫有以下之關聯表 (Relation Tables),分別代表客戶 (Customer)、汽車 (Car)、保險政策 (Insurance Policy)和事故 (Accidents),其資料需求如下:
● 每個客戶有一個身分證編號 (SSN)、客戶編號 (Customer ID)、性別 (Sex)、地址 (Address)、客戶的名字 (First name) 和他的姓 (Last name)、出生日期 (Birth Date) 和工作距離 (Distance from work)。其中身分證編號和客戶編號都是唯一的。
● 每輛車都有一個車的編號 (VIN number)、車的顏色 (Color)、製造車商(Make)、車型 (Model)、安全等級 (Safety rating) 和客戶所擁有的車數(Number of cars)。車的編號是唯一的,客戶可以擁有盡可能多的車,但每輛車只能屬於一個客戶。
● 每個客戶可以擁有不同的保險政策,但一個保險政策僅能跟著一輛車。保險政策 (Insurance Policy) 包括保險編號 (Policy ID)、保險類型 (Policy type)、保險所涵蓋的等級 (Coverage level) 和成本 (Cost)。
● 任何一輛車發生事故時,客戶必須報告事故的發生,所有發生的事故都是歸屬車主,而不是車。這都是為了避免車主逃避責任。事故 (Accidents)本身包括事故編號 (Accident ID)、事故類型 (Type of accident)、事故次數(Number of accidents)、涉及的車輛數 (Number of cars involved)、故障(Fault)、位置 (Location)、時間 (Time) 和日期 (Date)。
請依以上的需求,試畫出此汽車保險資料庫之實體關係圖(Entity-Relationship Diagram,ERD)。屬性畫實底線為主鍵 (Primary),盡可能畫上 ERD的符號,例如組合屬性 (Composite Attributes)、衍生屬性(Derived Attributes) 和弱實體 (Weak Entity) 等等。(20分)

arrow
arrow
    全站熱搜

    jacksaleok 發表在 痞客邦 留言(0) 人氣()