1、设有一个记录各个球队队员每场比赛进球数的关系模式
R(队员编号,比赛场次,进球数,球队名,队长名)
如果规定,每个队员只能属于一个球队,每个球队只有一个队长。
(1)试写出关系模式R的基本函数依赖和主码。
F={队员编号→球队名,球队名→队长名,
(队员编号,比赛场次)→进球数}
主码:(队员编号,比赛场次)
(2)说明R不是2NF模式的理由,并把R分解成2NF。
因为含有部分函数依赖,队员编号→球队名,(队员编号,比赛场次)→球队名。
2NF:R1={队员编号,球队名,队长名}
R2={队员编号,比赛场次,进球数}
(3)进而将R分解成3NF,并说明理由。
在2NF中,R1的主键是:队员编号,队员编号→队长名,是传递函数依赖关系。
3NF:R11={队员编号,球队名}
R12={球队名,队长名}
R2={队员编号,比赛场次,进球数}
2. 如下关系模式,其中:SNO为学号,CNO为课程号,CTITLE为课程名,INAME为教师名,ILOCA为教师地址,GRADE为成绩。
1NF(第一范式),基本函数依赖关系F如下:F={SN0,CNO}→GRADE,CNO→CTITLE,CNO→INAME,INAME→ILOCA}
主键:SNO,CNO
存在插入异常,当增设一门新课程时,还没有学生选修该课程,缺少码的一部分,SNO学号不能执行插入操作;
存在删除异常,删除某门课程名时会删除教师名和教师地址。课程名和教师名,教师地址存在传递依赖关系。
3.将它分解为高一级范式,分解后的关系能否解决操作异常问题?
SNO |
CNO |
GRADE |
80152 |
C1 |
70 |
80153 |
C2 |
85 |
80154 |
C1 |
86 |
80154 |
C3 |
72 |
80155 |
C4 |
92 |
CNO |
CTITLE |
INAME |
ILOCA |
C1 |
OS |
王平 |
D1 |
C2 |
DB |
高升 |
D2 |
C3 |
AI |
杨杨 |
D3 |
C4 |
CL |
高升 |
D2 |
基础函数关系中没有部分依赖但是有传递依赖。主属性:(SNO学号,课程号CNO)
非主属性:(CTITLE课程名,INAME 教师名,L=ILOCA教师地址,GRADE成绩)。
分解后可以解决操作异常问题。
3 假设某商业集团数据库中有一关系模式R如下:
R(商店编号、商品编号、商品库存数量、部门编号、部门负责人)
如果规定:
每个商店的每种商品只在该商店的一个部门销售。
每个商店的每个部门只有一个部分负责人
每个商店的每种商品只有一个库存数量。
请回答以下问题:
F={商店编号,商品编号}→部门编号,(商店编号,部门编号)→部门负责人,(商店编号,商品编号)→商品库存数量
候选码:商店编号,商品编号
2NF,因为R中存在传递依赖,非主属性“部门负责人”对候选码的传递函数依赖。
R1=(商店编号,商品编号,部门编号,商品库存数量)
R2=(商店编号,部门编号,部门负责人)
4. 设有关系模式R(A,B,C,D,E),其函数依赖集为F={A→B,CE→A,E→D}
请回答如下问题:
候选码:CE,非主属性A完全依赖于CE
1NF,因为非主属性A、B、D部分函数依赖于码CE,且存在传递依赖。
(3)将R分解到3NF。
R1=(C,E,A)
R2=(E,D)
R3=(A,B)
5假设某公司销售业务中使用的订单格式如下:
订单号:1145订货日期:09/15/2002 客户编号:1001客户名称:ABC 客户电话:8141763
产品编号 品名 价格 数量 金额
A 电源 100.00 20 2000.00
B 电表 200.00 40 8000.00
C 卡尺 40.00 50 2000.00
总金额:12000.00
公司的业务规定:(1)订单号是唯一的,每张订单对应一个订单号;
(2)一张订单可以订购多种产品,每一种产品可以在多个订单中出现;
(3)一张订单有一个客户,且一个客户可以有多张订单;
(4)每一个产品编号对应一种产品的品名和价格;
(5) 每一个客户有惟一的客户编号。试根据上述表格和业务规则设计关系模式:
R(订单号,订货日期,客户编号,客户名称,客户电话,产品编号,品名,价格,数量)
问题:
F={订单号→订货日期,订单号→客户编号,客户编号→客户名称,客户编号→客户电话,产品编号→品名,产品编号→价格,(订单号,产品编号)→数量}
该关系模式的范式级别为:1NF,存在部分函数依赖,产品编号→品名,产品编号→价格等。
(3)按3NF的定义将其分解为3NF.
R1=(订单号,客户编号,订货日期)
R2=(客户编号,客户名称,客户电话)
R3=(产品编号,品名,价格)
R4=(产品编号,订单号,数量)