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