假定我们要建立一个航空数据库,存储如下信息: 每个机场有机场编号、所在城市; 每个航班有航班编号、起飞时间、飞行时间; 飞机有飞机编号、型号、载客人数; 飞行员有飞行员编号、姓名; 每个航班有唯一的起飞机场和降落机场,每个机场会有多个航班起降 每架飞机可飞

admin2019-07-07  26

问题 假定我们要建立一个航空数据库,存储如下信息:
每个机场有机场编号、所在城市;
每个航班有航班编号、起飞时间、飞行时间;
飞机有飞机编号、型号、载客人数;
飞行员有飞行员编号、姓名;
每个航班有唯一的起飞机场和降落机场,每个机场会有多个航班起降
每架飞机可飞行多个航班,一个航班可以由多架飞机执行飞行任务;
每位飞行员只驾驶一架飞机,每架飞机可以由多位驾驶员来驾驶
其中带下划线的属性是实体的标识属性。
将上面的ER图转换为满足3NF的关系模式。

选项

答案由于题目要求满足3NF范式,ER图向关系模式转换采用方法一,转换后的关系模式名称采用实体名或联系名。本题中有两个一对多、一个多对多联系。对于每一个一对多联系,都与多端的实体的关系模式合并,即将一端关系的码和联系的属性加入到多端的实体的关系模式内,码不变。对于多对多联系来说,只能单独转换成一个新的关系模式,转换后的关系模式的属性由联系本身的属性及两个实体的主码构成,转换后的关系模式的主码由两端实体的主码组合而成。 转换后的关系模式: 机场(机场编号,所在城市)。其中,机场编号是主码; 航班(航班编号,起飞时间,飞行时间,起飞机场编号,降落机场编号)。 其中,航班编号是主码,起飞机场编号、降落机场编号是外码; 飞机(飞机编号,型号,载客人数)。其中,飞机编号是主码; 飞行(飞机编号航班编号)。其中,飞机编号、航班编号共同作为主码,飞机编号、航班编号同样也是外码; 飞行员(飞行员编号,姓名,飞机编号)。其中,飞行员编号是主码,飞机编号是外码。

解析 在将ER图向关系模式转换时规则如下:
①1:1(一对一)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;关系模式的码由两个实体中的任意一个码构成。
方法二:联系与一端的实体的关系模式合并,将另一实体的码和联系的属性加入到实体的关系模式内,码不变。
②1:m(一对多)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;模式的码由m端实体的主码组成。
方法二:与m端的实体的关系模式合并,即将一端关系的码和联系的属性加入到m端的实体的关系模式内,码不变。
③m:n(多对多)联系。
只有一个方法:联系转换成独立的关系模式,模式的属性由联系本身的属性及两个实体的码构成,关系模式的码由两端实体的主码组合而成。
关系模式满足3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递依赖于码。简而言之,第三范式就是消除主属性对码的部分和传递函数依赖。
转载请注明原文地址:https://jikaoti.com/ti/6i37FFFM
0

最新回复(0)