有一個汽車保險公司為他們的客戶和客戶的意外事故,要設計一個資料
庫來記錄這些資料,已經得到的資料如下。
? 1.客戶資料,包括每個客戶的駕照號碼、姓名、出生日期、地址、電話,
其中出生日期要分別記載年、月、日,每位客戶的電話號碼可能不只一
個,受保客戶必須要有車子,否則不能購買保險。
?2.汽車資料,包括受保的汽車牌照號碼、製造車廠、出廠年份。
?3.每位客戶何時開始擁有受保的車子(開始日期),也要記錄下來。
?4. 一位客戶可以擁有多輛受保的車子,但每輛車子只能隸屬於一位客戶。
? 5.每次意外事故要記載下來的內容,包括事故編號、事故地點、日期。
? 6.每次事故中,是由那位客戶駕駛,是那輛車發生事故,也要記載下來,
事故的賠償金額也要記下。
? 7.因為事故有可能導致客戶喪生,賠償金此時要發給客戶的家屬。因此客
戶的家屬資料也要記載下來,它包括家屬姓名、身分證號碼、年齡。
? 8.以上這些資料中,客戶的駕照號碼、汽車牌照號碼、事故編號、(客戶
家屬的)身分證號碼,這些都是唯一的編號,也就是不會有二個相同的
號碼。
請為這保險公司設計一個最佳的資料庫,用實體關係模型(Entity-
Relationship model),把它設計出,並繪出其綱目圖(schema diagram),
參與度(participation constraint)和基數比(cardinality ratio)亦須註明。
已知有一學校的資料庫綱目(database schema)如下:
Student (SID, SName, SAge, Address) //學生(學號、姓名、年齡、地址)
Teacher (TID, TName, TAge, Office#) //老師(老師編號、姓名、年齡、辦
公室)
Course (CID, CTitle, Credit) //課程(課程編號、課名、學分數)
Take (CID, TID, SID, Score) //修課(課程編號、老師編號、學生
編號、分數)
請用關連式代數(relational algebra),回答下列問題,關連(relation)
和欄位(attribute)的名稱,請一律使用其英文名稱。
(1) 找出那些學生有修年齡是60 歲(含)以上的老師(TAge>=60)所教
的任一門課程,列出這些學生的SName 和教那些課程的老師的
TName。(10 分)
(2) 針對年齡是18 歲(含)以下的學生(i.e., SAge<=18),列出他們每個
人的SID,和每個人所修所有課程的平均分數(average score)。(10
分)
同上題的資料庫綱目(database schema),請用SQL 來回答下列問題。
(1) 請找出有那些學生,他們修了TName = “Harrison Ford”這位老師所開
設的所有課程,請列出這些學生的SName。
(2) 對於每一門學分數是3 學分(含)以上(i.e., Credit>=3),而且有50
個(含)以上的學生來修的課程,列出這些課程的名稱、授課老師,
和該門課程裡,學生成績超過95 分(含)的人數,假設不會有二位老
師開授同一門課程。
R(A, B, C, D, E)是一個關連(relation),且它的欄位之間,存在有函
數相依性(functional dependency)如下:A→B,B→C,BC→BD,D→E,
AB→CD。
(1) 請將所給予的functional dependencies 借由inference rules 簡化到最簡形
式。
(2) 若僅將此關連作第二正規化(second normal form),會得到什麼關連?
請註明每個關連的主鍵(Key)是何者?
(3) 若將此關連作第三正規化(third normal form),會得到什麼關連?請
註明每個關連的主鍵(Key)是何者?
回答下列問題:
(1) 兩階段鎖定法(Two-phase locking protocol)是保證交易處理可序性
(Serializability)的充分條件(sufficient condition),還是必要條件
(necessary condition)?為什麼?
(2) 某銀行電腦系統於某日突然大當機。約數小時之後維修人員向總經理
報告說『因為系統有軟體瑕疵(software bugs),以致於當機後在主記
憶體(main memory)的資料都已喪失。為了重建當時主記憶體的資料,
因此花了幾個小時』。依據你的專業判斷,所謂“重建當時主記憶體
的資料”,指的是作了那些主要的動作,說明之。
可觀看題目詳解,並提供模擬測驗!(免費會員無法觀看研究所試題解答)