阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。【说明】某航空公司要开发一个订票信息处理系统,以方便各个代理商销售机票。开发小组经过设计,给出该系统的部分关系模式如下:航班(航班编号,航空公司,起飞地,起飞时间,目的地,到达时间,剩余票数,票价)代理商(代理商编号,代理商名称,客服电话,地址,负责人)机票代理(代理商编号,航班编号,票价)旅客(身份证号,姓名,性别,出生日期,电话)购票(购票单号,身份证号,航班编号,搭乘日期,购票金额)在提供给用户的界面上,其核心功能是当用户查询某航班时,将该航班所有的代理商信息及其优惠票价信息,返回给用户,方便用户购买价格优惠的机票。在实现过程中发现,要实现此功能,需要在代理商和机票代理两个关系模式上进行连接操作,性能很差。为此开发小组将机票代理关系模式进行了扩充,结果为:机票代理(代理商编号,航班编号,代理商名称,客服电话,票价)这样,用户在查找信息时只需对机票代理关系模式进行查询即可,提高了查询效率。【问题1】(6分)机票代理关系模式的修改,满足了用户对代理商机票价格查询的需求,提高了查询效率。但这种修改导致机票代理关系模式不满足3NF,会带来存储异常的问题。1)请具体说明其问题,并举例说明。
【问题1】(6分)1)答案:不满足3NF会产生函数的传递依赖,造成数据冗余和修改异常等问题。(1)数据冗余一个代理商会代理多家航班的机票销售业务,在机票代理模式中,该代理商的代理商名称,客服电话就会被存储多次,造成数据的冗余。(2)修改异常当需要修改该代理商的名称或客服电话时,就要修改所有相应元组中的名称或客服电话,否则就会出现客服电话值不一致的现象,产生修改异常。2)答案:可使用触发器在修改时,检查并新更对应数据的方式来解决数据不一致的问题。