按照你的思路来看题目:(配件编号,配件名称,型号规格,供应商名称,供应商地址,单价,库存量)思路:
配件类(配件编号,配件名称,型号规格,供应商名称,单价,库存)、
供应商(供应商名称,供应商地址);分析:
对于第三范式来说需要确保属性不依赖于其它非主属性。
楼主给出的配件类,对于某个配件来说可以由多个供应商提供,而且一个供应商肯定可以提供多个配件,之间的关系明显是多对多的关系,那么配件编号和供应商编号都无法作为主属性存在,因为之间是互相依赖的关系。
对第三范式楼主也可以理解为将需求中的最小元组作为基础表,再从基础表上延伸出它们之间的关系表。
该题目中有两个元组,一个配件,一个供应商,首先把配件和供应商的基本信息单独作为基础表,也就是配件表和供应商表,将相关字段都存放进去。其次,当这两个元组产生关系时会伴随着题目中的单价和库存的发生,那么需要一个关系表来存放这些行为的发生,也就是答案中的第三张关系表。

解决方案 »

  1.   

    谢谢版主解答,理解了题目思路。
      

  2.   

    答案中把单价和库存量放到配件库存关系表中我觉得不是很合理,因为这两个属性跟配件信息是强相关的。这样划分是不是更合理?
    配件关系(配件编号,配件名称,型号规格,单价,库存量
    供应商关系(供应商名称,供应商地址)、
    配件供应关系(配件编号、供应商名称)。
      

  3.   

    第二范式是在1NF的基础上消除非主属性对码的部分依赖,也就是非主属性完全依赖于码,
    第三范式又是在2FN的基础上消除了非主属性对码的传递依赖。
    根据关系(配件编号,配件名称,型号规格,供应商名称,供应商地址,单价,库存量)可以得出下列依赖关系:
    1、配件编号-->配件名称,型号规格,供应商名称,供应商地址,单价,库存量
    2、供应商名称-->供应商地址
    3、配件编号,供应商名称-->单价,库存量
    所以根据第三范式划分:
     配件关系(配件编号,配件名称,型号规格)
     供应商关系(供应商名称,供应商地址)
     配件库存关系(配件编号、供应商名称,单价,库存量)