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