阅读以下说明,回答问题1至问题3,将答案写在对应栏内。 【说明】 在一个航空公司的航班管理系统中,有以下一些事实。 (1)一个航班可能是一个或多个乘客的运输工具,每个乘客可能是一个或多个航班的旅客。 (2)一个且仅一个飞行员必须对

admin2009-02-15  31

问题 阅读以下说明,回答问题1至问题3,将答案写在对应栏内。
    【说明】
   在一个航空公司的航班管理系统中,有以下一些事实。
   (1)一个航班可能是一个或多个乘客的运输工具,每个乘客可能是一个或多个航班的旅客。
   (2)一个且仅一个飞行员必须对每个航班负责,每个飞行员可能负责一个或多个航班。
   (3)一个或多个飞行员必须对每个乘客负责,每个飞行员必须对一个或多个乘客负责。
   现有飞行员的实体如下:
   飞行员(飞行员编号,航班编号,姓名,工资,起飞地,到达地,飞行信用时间)
   说明:飞行信用时间是一个特定的航班分配给一名飞行员,授权他可以驾驶管理这个航班。
   【问题1】
   实体“飞行员”是否符合1NF,如果不符合,如何将它规范化。
   【问题2】
   由问题1得到的实体“飞行员”是否符合2NF,如果不符合,如何将它规范化。
   【问题3】
   指出最后得到关系模式的候选码。

选项

答案[问题1] 航班(航班编号,起飞地,到达地) 飞行员(飞行员编号,航班编号,飞行员姓名,工资,飞行信用时间) [问题2] 飞行员(飞行员编号,飞行员姓名,工资) 信用时间(飞行员编号,航班编号,信用时间) [问题3] 航班一航班编号;飞行员—飞行员编号:信用时间—飞行员编号,航班编号

解析 为了将飞行员实体转换成1NF,必须将它划分成两个实体:飞行员和航班。
   航班(航班编号,起飞地,到达地)
   飞行员(飞行员编号,航班编号,飞行员姓名,工资,飞行信用时间)
   问题1中得到的飞行员实体不属于2NF,因为尽管复合键是(Flight-Id,Pilot-Id),但是Flight-Time-Credited是只依赖于Flight-Id,而不依赖于Pilot-Id。因此,应将它划分为两个实体,即飞行员和信用实现。如下:
   飞行员(飞行员编号,飞行员姓名,工资)
    信用时间(飞行员编号,航班编号,信用时间)
转载请注明原文地址:https://kaotiyun.com/show/RwDZ777K
0

相关试题推荐
最新回复(0)