阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。 某航空公司要开发一个订票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下: 航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,剩

admin2017-09-13  37

问题 阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。
    某航空公司要开发一个订票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下:
    航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,剩余票数,票价)
    代理商(代理商编号,代理商名称,客服电话,地址,负责人)
    机票代理(代理商编号航班编号,票价)
    旅客(身份证号,姓名,性别,出生日期,电话)
    购票(购票单号身份证号航班编号,搭乘日期,购票金额)
    在提供给用户的界面上,其核心功能是当用户查询某航班时,将该航班所有的代理商信息及其优惠票价信息,返回给用户,方便用户购买价格优惠的机票。在实现过程中发现,要实现此功能,需要在代理商和机票代理两个关系模式上进行连接操作,性能很差。为此开发小组将机票代理关系模式进行了扩充,结果为:
    机票代理(代理商编号,航班编号,代理商名称,客服电话,票价)
    这样,用户在查找信息时只需对机票代理关系模式进行查询即可,提高了查询效率。
为了避免问题2中的问题,开发组使用了数据库的读写锁机制,操作序列变为表4.2所示。

    请填写表中的空白项,并用150字以内的文字说明读写锁机制的缺点。

选项

答案(1)加写锁(2)加读锁(3)加写锁(4)被阻塞(5)得到通知 (6)加写锁 读写锁的缺点:读写锁会造成读写操作的互相阻塞,实际使得用户的操作被串行化,降低了系统的并发性能。设计不好的情况下,可能会出现资源的交叉锁定,形成死锁。

解析 本问题考查数据库中基本的读写锁机制,通过提供读锁和写锁的相互阻塞,来解决并发问题。锁机制的基本概念是读取操作之前先加锁,成功后方能读写数据。读操作加读锁,写操作加写锁。读锁会阻塞写锁,即加了读锁的数据,在未释放读锁之前不能加写锁,可以加读锁;同样,写锁会阻塞读锁,在写锁未释放前,不能再加读锁和写锁。其实质是使得相互冲突的并发读写操作,变为串行化读写操作,来解决并发问题。
    因此,根据读写锁的基本机制,表4.2中的空应该填写的内容是(1)加写锁、(2)加读锁、(3)加写锁、(4)被阻塞、(5)得到通知、(6)加写锁。
转载请注明原文地址:https://jikaoti.com/ti/y067FFFM
0

最新回复(0)