阅读以下说明 回答问题1至问题3 将答案写在对应栏内。 【说明】 在一个航空公司的航班管理系
问题详情
阅读以下说明,回答问题1至问题3,将答案写在对应栏内。
【说明】
在一个航空公司的航班管理系统中,有以下一些事实。
(1)一个航班可能是一个或多个乘客的运输工具,每个乘客可能是一个或多个航班的旅客。
(2)一个且仅一个飞行员必须对每个航班负责,每个飞行员可能负责一个或多个航班。
(3)一个或多个飞行员必须对每个乘客负责,每个飞行员必须对一个或多个乘客负责。
现有飞行员的实体如下:
飞行员(飞行员编号,航班编号,姓名,工资,起飞地,到达地,飞行信用时间)
说明:飞行信用时间是一个特定的航班分配给一名飞行员,授权他可以驾驶管理这个航班。
【问题1】
实体“飞行员”是否符合1NF,如果不符合,如何将它规范化。
【问题2】
由问题1得到的实体“飞行员”是否符合2NF,如果不符合,如何将它规范化。
【问题3】
指出最后得到关系模式的候选码。请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:[问题1]航班(航班编号起飞地到达地)飞行员(飞行员编号航班编号飞行员姓名工资飞行信用时间)[问题2]飞行员(飞行员编号飞行员姓名工资)信用时间(飞行员编号航班编号信用时间)[问题3]航班一航班编号;飞行员—飞行员编号:信用时间—飞行员编号航班编号
[问题1]航班(航班编号,起飞地,到达地)飞行员(飞行员编号,航班编号,飞行员姓名,工资,飞行信用时间)[问题2]飞行员(飞行员编号,飞行员姓名,工资)信用时间(飞行员编号,航班编号,信用时间)[问题3]航班一航班编号;飞行员—飞行员编号:信用时间—飞行员编号,航班编号 解析:为了将飞行员实体转换成1NF,必须将它划分成两个实体:飞行员和航班。
航班(航班编号,起飞地,到达地)
飞行员(飞行员编号,航班编号,飞行员姓名,工资,飞行信用时间)
问题1中得到的飞行员实体不属于2NF,因为尽管复合键是(Flight-Id,Pilot-Id),但是Flight-Time-Credited是只依赖于Flight-Id,而不依赖于Pilot-Id。因此,应将它划分为两个实体,即飞行员和信用实现。如下:
飞行员(飞行员编号,飞行员姓名,工资)
信用时间(飞行员编号,航班编号,信用时间)