試題四(共25分)數據庫
閱讀如下關於數據庫設計的敘述,在答題紙上回答問題1至問題3。併發
某航空公司要開發一個訂票信息處理系統,以方便各個代理商銷售機票。開發小組通過設計,給出該系統的部分關係模式以下:數據庫設計
航班(航班編號,航空公司,起飛地,起飛時間,目的地,到達時間,剩餘票數,票價)性能
代理商(代理商編號,代理商名稱,客服電話,地址,負責人)設計
機票代理(代理商編號,航班編號,票價)代理
旅客(身份證號,姓名,性別,出生日期,電話)blog
購票(購票單號,身份證號,航班編號,搭乘日期,購票金額)開發
在提供給用戶的界面上,其核心功能是當用戶查詢某航班時,將該航班全部的代理商信息及其優惠票價信息,返回給用戶,方便用戶購買價格優惠的機票。在實現過程當中發現,要實現此功能,須要在代理商和機票代理兩個關係模式上進行鏈接操做,性能不好。爲此開發小組將機票代理關係模式進行了擴充,結果爲:效率
機票代理(代理商編號,航班編號,代理商名稱,客服電話,票價)im
這樣,用戶在查找信息時只需對機票代理關係模式進行查詢便可,提升了查詢效率。
【問題1】(6分)
機票代理關係模式的修改,知足了用戶對代理商機票價格查詢的需求,提升了查詢 效率。但這種修改致使機票代理關係模式不知足3NF,會帶來存儲異常的問題。
1)請具體說明其問題,並舉例說明。
2)這種存儲異常會形成數據不一致,請給出解決該存儲異常的方案。
【問題2】(9分)
在機票銷售信息處理系統中,兩個代理商的售票併發執行,可能產生的操做序列如表4-1所示。
假設兩個代理商執行以前,該航班僅剩1張機票。
1)請說明上述兩個代理商操做的結果。
2)併發操做會帶來數據不一致的問題,請具體說明3種問題。
【問題3】(10分)
爲了不問題2中的問題,開發組使用庫的讀寫鎖機制,操做序列變爲表4-2所示。