刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

试题四(25分)

阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。

【说明】

某航空公司要开发一个订票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下:

航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,剩余票数,票价)

代理商(代理商编号,代理商名称,客服电话,地址,负责人)

机票代理(代理商编号,航班编号,票价)

旅客(身份证号,姓名,性别,出生日期,电话)

购票(购票单号,身份证号,航班编号,搭乘日期,购票金额)

在提供给用户的界面上,其核心功能是当用户查询某航班时,将该航班所有的代理商信息及其优惠票价信息,返回给用户,方便用户购买价格优惠的机票。在实现过程中发现,要实现此功能,需要在代理商和机票代理两个关系模式上进行连接操作,性能很差。为此开发小组将机票代理关系模式进行了扩充,结果为:

机票代理(代理商编号,航班编号,代理商名称,客服电话,票价)

这样,用户在查找信息时只需对机票代理关系模式进行查询即可,提高了查询效率。

根据提供的数据库设计描述,填写表4-2中的空白项,并简述读写锁机制的缺点。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1)加写锁 (2)加读锁 (3)加写锁 (4)被阻塞(5)得到通知 (6)加写锁

读写锁的缺点:读写锁会造成读写操作的互相阻塞,实际使得用户的操作被串行化,降低了系统的并发性能。设计不好的情况下,可能会出现资源的交叉锁定,形成死锁。

解析:

根据题目描述,为了避免问题2中的问题,开发组加入了读写锁机制。在表4-2中,两个代理商的操作序列涉及到对数据的读取和修改,因此需要加锁以保证数据的一致性。

对于操作序列中的空白项,根据读写锁的使用规则,可以填写如下:

  1. 当一个代理商要对数据进行修改时,需要加写锁,以确保在修改过程中数据不会被其他事务干扰。
  2. 当一个代理商要读取数据时,需要加读锁,以确保读取的数据是最新的。
  3. 另一个代理商在尝试修改数据时,需要再次加写锁,但由于第一个代理商已经加了写锁,所以会被阻塞,直到第一个代理商释放锁。
  4. 被阻塞的代理商在得到通知后,可以继续执行后续操作。
  5. 在操作完成后,需要释放锁,以便其他事务可以访问数据。

关于读写锁的缺点,主要是读写锁会造成读写操作的互相阻塞,降低了系统的并发性能。此外,设计不好的情况下,可能会出现资源的交叉锁定,形成死锁。

创作类型:
原创

本文链接:根据提供的数据库设计描述,填写表4-2中的空白项,并简述读写锁机制的缺点。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share