问答题
现有这样一个关系,用来表示某工厂工人家庭的信息。记录每个工人的工作证号、姓名和家庭住址,还包含他/她的每个孩子的身份证号、姓名和年龄,以及他/她所拥有的每部电话的电话号码和型号。
已知:有一些人可能有很多部电话,这些电话可能是同一型号,也可能不是同一型号;有一些人没有电话;如果某人有电话,他的每部电话都有一个电话号码。有一些人可能有很多个孩子,有一些人没有孩子。
初步设计的关系模式如下:R(身份证号,姓名,家庭住址,H身份证号,H姓名,H年龄,电话号码,型号),其中“H身份证号,H姓名,H年龄”分别是孩子的身份证号、姓名和年龄。
问答题
[问题1]
请将该关系模式分解成第二范式的关系模式,确定主关系键。
【正确答案】
【答案解析】首先关系模式R的所有属性都是不可分的数据项,得到第一范式的关系模式:
R1(
身份证号
,姓名,家庭住址,
H身份证号
,H姓名,H籍贯,
电适号码
,型号)
其中身份证号、H身份证号、电话号码是主关系键。但是由于存在着非主属性对主属性的部分函数依赖,采用投影分解法,R1被分解为R2、R3、R4、R5得到第二范式的关系模型:
R2(
身份证号
,
H身份证号
,
电适号码
)
R3(
身份证号
,姓名,家庭住址)
R4(
H身份证号
,H姓名,H籍贯)
B5(
电话号码
,型号)
问答题
[问题2]
请将该关系模式分解成第三范式的关系模式,确定主关系键。
【正确答案】
【答案解析】R3中H籍贯传递函数依赖于H身份证号。再采用投影分解法,R4被分解为R6、R7得到第三范式的关系模型:
R2(
身份证号
,
H身份证号
,
电话号码
)
R3(
身份证号
,姓名,家庭住址)
R5(
电话号码
,型号)
R6(
H身份证号
,H姓名)
R7(
H姓名
,H籍贯)
问答题
[问题3]
请将该关系模式分解成BCNF的关系模式,确定主关系键。
【正确答案】
【答案解析】由于存在主属性部分依赖于码的问题,再采用投影分解法,R2被分解为R8、R9,将得到BCNF范式的关系模型:
R8(
身份证号
,
H身份证号
,
电话号码
)
R9(
身份证号
,
电话号码
)
R3(
身份证号
,姓名,家庭住址)
R5(
电话号码
,型号)
R6(
H身俭正号
,H姓名)
R7(
H姓名
,H籍贯)
问答题
[问题4]
请简要说明各范式之间的关系。(文字和图标形式皆可)
【正确答案】
【答案解析】首先当一个关系模型R的所有属性都是不可分的基本数据项的时候,得到第一范式。
通过消除非主属性对候选码的部分函数依赖关系,得到第二范式。接着通过消除非主属性对候选码的传递依赖关系,得到第三范式。最后,通过消除对任何属性对码的部分函数依赖和传递函数依赖得到BCNF范式。
[解析] 关系数据库规范化;关系模式的分解。