设关系模式R(学号,课程号,成绩,教师姓名,教师地址)规定:每个学生每学一门课只有一个成绩,每门课只有一个教师任教,每个教师只有一个地址,且教师没有同名同姓。
(1)写出R的基本函数依赖:
解:存在如下基本函数依赖:
(学号,课程号) →成绩
课程号→教师姓名
教师姓名→教师地址
(2)写出R的侯选码:
解:R的侯选码:(学号,课程号)
(3)确定R属于每几范式,并说明理由
解:∵课程号→教师姓名
∴(学号,课程号)→ 教师姓名 (由于非主属性存在部分依赖)
∴ R不属于2NF,R属于1NF
(4)若R不属于2NF,则将R分解为2NF,并说明理由
解:把R分解为如下二个关系模式:
R1 (学号,课程号,成绩)
R2 (课程号,教师姓名,教师地址)
∵R1的侯选码为:(学号,课程号),非主属性:成绩
又∵(学号,课程号) → 成绩
∴ R1属于2NF
同理∵R2的侯选码为:课程号,非主属性:教师姓名,教师地址
又∵ 课程号→ 教师姓名,课程号→ 教师地址 (由于存在传递依赖)
∴ R2属于2NF,而不属于3NF
(5)若R不属于3NF,则将R分解为3NF,并说明理由
解:∵R1不存在非主属性对码的传递函数依赖,
∴ R1属于3NF
把R2分解为如下二个关系模式:
R21 (课程号,教师姓名)
R22(教师姓名,教师地址)
∵R21的侯选码为:课程号,非主属性:教师姓名
课程号→ 教师姓名
且不存在非主属性对码的传递函数依赖
∴ R21属于3NF
同理∵R4的侯选码为:教师姓名,非主属性:教师地址
又∵教师姓名 → 教师地址
且不存在非主属性对码的传递函数依赖
∴ R22属于3NF