下面是一个旅行社的业务描述:
(1)每一个旅游线路有唯一的线路号,有一个起点和终点;
(2)一个旅游线路可有多个旅游团,每个团只属于一个线路, 出发日期,回程日期和单价; (3)一个游客有一个编号,并记录其姓名、电话和地址,一个旅游团可有多个游客,一个游客只能参加一个旅游团;
根据上述业务描述得到关系模式R(线路号,起点,终点,团号,出发日期,回程日期,报价,游客编号,游客姓名,电话,地址)请完成: (1)写出R的基本函数依赖集和候选码。 (2)判断R最高可达到第几范式,为什么? (3)它有插入异常吗,请举例说明 (4)将R分解为一组满足3NF的模式。
解: (1)基本函数依赖集是:{线路号→起点,线路号→终点,团号→线路号,团号→出发日 期,团号→回程日期, 团号→报价,游客编号→游客姓名,游客编号→电话,游客编号 →地址,游客编号→团号} R的候选码是:游客编号
(2) 因为R中存在着非主属性如“回程日期”对候选码游客编号的传递函数依赖,所以R属于2NF,R不属于3NF。
(3)存在插入异常,如要开设一个新的旅游线路,这时还没有游客。这时游客编号为空,又因为它是主属性,所以新开设的线路信息是无法存入到数据库中的。 (4) 将R分解成3NF:
R1(线路号,起点,终点) F1={线路号→起点,线路号→终点} R2(团号,线路号,出发日期,回程日期,报价)
F2={团号→线路号,团号→出发日期,团号→回程日期,团号 →报价) R3(游客编号,游客姓名,电话,地址,团号)
F3={游客编号→游客姓名,游客编号→电话,游客编号→地址 ,游客编号→团号}
设有关系模式R(A,B,C,D,E),函数依赖集 F={AB→C,C→D,D→E}, 试判断ρ={ABC, CD,DE} 是否具有 (1) 无损连接性 (2) 函数依赖保持。
解:(1) 初始表如表1 ABC CD DE A a1 b21 b31 B a2 b22 b32 C a3 a3 b33 D b14 a4 a4 E b15 b25 a5 根据AB→C 不能改变表1 根据C→D,可将表1修改为表2 ABC CD DE A a1 b21 b31 B a2 b22 b32 C a3 a3 b33 D E b15 b25 a5 a4 a4 a4 根据D→E,可将表2修改为表3 ABC CD DE A a1 b21 b31 B a2 b22 b32 C a3 a3 b33 D a4 a4 a4 E a5 a5 a5 在表3中可以看出第一行为全a,即表示分解ρ具有无损连接。 (2) 考察分解的依赖保持性 F在ABC上的投影为AB→C F在CD上的投影为 C→D F在DE上的投影为 D→E
三个投影的并正好为F,所以分解ρ函数依赖保持。
设有关系模式R=ABCDE,F={A→D,E→D,D→B,BC→D,DC→A},现有如下分解: ρ={AB, AE,CE, BCD,AC}。请给出求解过程。 ? 判断上述分解ρ是否无损连接。
? 给出函数依赖集F在ρ的各个模式上的投影。 ? 判断分解ρ是否保持函数依赖。 AB AE CE BCD AC A a1 a1 b31→a1 b41→a1 a1 B a2 b22→a2 b32→a2 a2 b52→a2 C b13 b23 a3 a3 a3 D b14→a4 b24→b14 b34→b14→a4 a4 b54→b14→a4 E b15 a5 a5 b45 b55 A→D :b24→b14 , b54→b14
E→D :b34→b14D→B: b22→a2 , b32→a2 , b52→a2 BC→D : b14→a4 , b34→b14→a4 , b54→b14→a4 DC→A:b31→a1 , b41→a1
由函数依赖A→D,可将b24和b54都改为b14,由函数依赖E→D,可将b34改为b14,由函数依赖D→B,可将b22、b32和b52改为a2,由函数依赖BC→D,可将所有的b14改为a4,由函数依赖DC→A,可将b31和b41改为a1,这时第3行成为全a行,所以该分解ρ具有无损连接性。
函数依赖集F在各关系模式上的投影如下: 在AB上的投影:F1={ A→B } 在AE上的投影:F2=?? 在CE上的投影:F3=??
在BCD上的投影:F4={ BC→D, D→B } 在AC上的投影:F5=??
因F1 ? F2 ? F3 ? F4? F5={A→B, BC→D,D→B }与F不等价,所以该分解不具有函数依赖保持。
1某体育运动有来自多个体育代表团参加比赛项目。其中: 代表团包含的属性:团编号,地区,住所; 运动员包含的属性:编号,姓名,年龄,性别; 比赛类别包含的属性:类别编号,类别名,负责人; 比赛项目包含的属性:项目编号,项目名,级别; 并规定:
(1) 一个代表团可有多个运动员,一个运动员只能属于一个代表团; (2) 一个比赛类别可有多个比赛项目,一个比赛项目只能属于一个比赛类别;
(3) 一名运动员可参加多个比赛项目,一个比赛项目可有名运动员参加,并且要记录比赛时间和成绩。
(1)设计该计算机管理系统的E-R图
(2)将该E-R图转换为关系模型结构,并指出每个关系的主码及外码。
运动员(编号,姓名,年龄,性别,团编号) 外码:团编号 代表团(团编号,地区,住所)
比赛类别(类别编号,类别名,负责人)
比赛项目(项目编号,项目名,级别,类别编号) 外码:类别编号 参加(编号,项目编号,比赛时间,成绩) 2个外码:编号、项目编号
2 下面是一个货运公司的车队管理系统,有车队、司机、车辆和维修公司等数据,具体描述如下:
(1) 一个车队有多名司机,一个司机只能在一个车队工作,要记录聘用日期; (2) 一个车队拥有多个车辆,一个车辆只能属于一个车队;
(3) 一个维修公司可以维修多个车辆,一个车辆可以在多个维修公司维修。要记录维修日期和费用。
描述车队的属性有:车队号、名称、地址; 描述司机的属性有:司机号、姓名、执照号、电话; 描述车辆的属性有:车牌号、车型、颜色、载重;
描述维修公司的属性有:维修公司号、名称、地址。请完成: (1)设计该计算机管理系统的E-R图
(2)将该E-R图转换为关系模型结构,并指出每个关系的主码及外码。
车辆(车牌号,车型,颜色,载重,车队号) 外码:车队号 维修公司(维修公司号,名称,地址) 车队(车队号,地址,名称)
司机(司机号,姓名,执照号,电话,聘用日期,车队号) 外码:车队号 维修(车辆号,维修公司号,维修日期,费用)2个外码:车辆号、维修公司号