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

admin2017-09-13  43

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

    假设两个代理商执行之前,该航班仅剩1张机票。
    1)请说明上述两个代理商操作的结果。
    2)并发操作会带来数据不一致的问题,请具体说明3种问题。

选项

答案1)第一个代理商能够正确售票。第二个代理商查询剩余票数时正确,为1张机票,但剩余票数减一操作时出错,因为该机票已经被第一个代理商售出,此时第二个代理商无票可售。 2)并发操作会带来数据不一致问题,具体为:丢失修改、读脏数据、不可重复读。

解析 本问题考查数据库设计中的并发问题和数据库事务隔离级别的基本概念。数据库为众多用户同时提供服务,如果多个用户产生了对同一个数据的并发读取操作,就会产生并发问题。
    表4-1描述的是并发的一种可能情况,在允许脏读的条件下,第一个代理商能够正确售票。第二个代理商查询剩余票数时正确,为1张机票,但剩余票数减一操作时出错,因为该机票已经被第一个代理商售出,此时第二个代理商无票可售。
    并发问题会造成数据的不一致。在数据库事务隔离级别定义中,定义了并发问题会造成的三种现象,分别是丢失修改、读脏数据和不可重复读,而根据这三种现象,划分了4种不同的事务隔离级别。
转载请注明原文地址:https://kaotiyun.com/show/FpQZ777K
0

最新回复(0)