試題四(共25分)
閱讀以下關(guān)于數(shù)據(jù)庫設(shè)計(jì)的敘述,在答題紙上回答問題1至問題3。
某航空公司要開發(fā)一個(gè)訂票信息處理系統(tǒng),以方便各個(gè)代理商銷售機(jī)票。開發(fā)小組經(jīng)過設(shè)計(jì),給出該系統(tǒng)的部分關(guān)系模式如下:
航班(航班編號,航空公司,起飛地,起飛時(shí)間,目的地,到達(dá)時(shí)間,剩余票數(shù),票價(jià))
代理商(代理商編號,代理商名稱,客服電話,地址,負(fù)責(zé)人)
機(jī)票代理(代理商編號,航班編號,票價(jià))
旅客(身份證號,姓名,性別,出生日期,電話)
購票(購票單號,身份證號,航班編號,搭乘日期,購票金額)
在提供給用戶的界面上,其核心功能是當(dāng)用戶查詢某航班時(shí),將該航班所有的代理商信息及其優(yōu)惠票價(jià)信息,返回給用戶,方便用戶購買價(jià)格優(yōu)惠的機(jī)票。在實(shí)現(xiàn)過程中發(fā)現(xiàn),要實(shí)現(xiàn)此功能,需要在代理商和機(jī)票代理兩個(gè)關(guān)系模式上進(jìn)行連接操作,性能很差。為此開發(fā)小組將機(jī)票代理關(guān)系模式進(jìn)行了擴(kuò)充,結(jié)果為:
機(jī)票代理(代理商編號,航班編號,代理商名稱,客服電話,票價(jià))
這樣,用戶在查找信息時(shí)只需對機(jī)票代理關(guān)系模式進(jìn)行查詢即可,提高了查詢效率。
【問題1】(6分)
機(jī)票代理關(guān)系模式的修改,滿足了用戶對代理商機(jī)票價(jià)格查詢的需求,提高了查詢效率。但這種修改導(dǎo)致機(jī)票代理關(guān)系模式不滿足3NF,會(huì)帶來存儲異常的問題。
1)請具體說明其問題,并舉例說明。
2)這種存儲異常會(huì)造成數(shù)據(jù)不一致,請給出解決該存儲異常的方案。
【問題2】(9分)
在機(jī)票銷售信息處理系統(tǒng)中,兩個(gè)代理商的售票并發(fā)執(zhí)行,可能產(chǎn)生的操作序列如表4-1所示。
假設(shè)兩個(gè)代理商執(zhí)行之前,該航班僅剩1張機(jī)票。
1)請說明上述兩個(gè)代理商操作的結(jié)果。
2)并發(fā)操作會(huì)帶來數(shù)據(jù)不一致的問題,請具體說明3種問題。
【問題3】(10分)
為了避免問題2中的問題,開發(fā)組使用庫的讀寫鎖機(jī)制,操作序列變?yōu)楸?-2所示。
表4-2加入讀寫鎖機(jī)制后,兩個(gè)代理商可熊的操作序列
請?zhí)顚懕碇械目瞻醉?xiàng),并用150字以內(nèi)的文字說明讀寫鎖機(jī)制的缺點(diǎn)。