本帖最后由 cde32 于 2014-10-13 22:49:29 编辑

解决方案 »

  1.   

    1、第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。
    而这里面,商品名,规格只依赖商品号,而作为真正的采购信息 采购单价、采购数量 需要 商品号+采购日期才能唯一确定。
    因此,你要求的第二范式,这里可以这么写,R1(采购员编号,采购员姓名),R2(商品号,采购日期,采购单价,采购数量,采购员编号,采购员姓名)
    2、第三范式是连传递依赖都不能有~~因此在上面第二范式的情况下,取消传递依赖即成了,你贴出来的第三范式
    这里面确实只有一个传递依赖:商品号→采购员编号→采购员姓名
      

  2.   

    用R来表示关系表,作为DBMS的关系表,不存在不符合第一范式,至少是第一范式了
      

  3.   

    您好:
    “真正的采购信息 采购单价、采购数量 需要 商品号+采购日期才能唯一确定。”您给出的这个R2依旧是第一范式吧?
    请问我写的第三范式的另一个传递依赖是什么?错在哪里?
    1、我#3写的那个只有传递依赖,已经是第二范式~
    2、你写的那不存在传递依赖,就没有另一个传递依赖的说法,最后,你写的这个还存在部分依赖,也就是连第二范式都不是,更不是第三范式
    谢谢您的耐心解答。但是很不明白:
    您#3写的:R2(商品号,采购日期,采购单价,采购数量),不是照样还有“而作为真正的采购信息 采购单价、采购数量 需要 商品号+采购日期才能唯一确定”的局部依赖吗?怎么就成了第二范式?

    在关系R2(商品号,采购日期,采购单价,采购数量)中,商品号,采购日期是主键,每一个这样的组合确定了唯一的采购单价、采购数量
    局部依赖要求,非主键信息只部分依赖主键,如果R2符合的话,那么意为着知道商品号就知道采购单价、采购数量,那显然不是,因为每天的同商品,他们的采购单价、采购数量都不一样,同理采购日期
      

  4.   

    是我说的有点乱,在R中,商品名、规格、采购员编号、采购员姓名是完全依赖商品号,但相对于R中的主键商品号+采购日期来说,商品名、规格、采购员编号、采购员姓名部分依赖R的主键中的商品号,也就是商品名、规格、采购员编号、采购员姓名部分依赖R的主键,这就是R中的部分依赖
      

  5.   

    好像明白了,我对主键的理解有误!
    但是这样一来又不理解我的第二个问题了:
    您刚才说我写的R1(采购员编号,采购员姓名)和R2(商品号,商品名,规格,采购日期,采购单价,采购数量,采购员编号)不存在传递依赖,这就应该是第三范式了吧?
    第三范式的定义里没有要求完全依赖,而且书上证明过只要符合第三范式就一定符合第二范式。为什么我这个R1和R2不是第三范式?
      

  6.   

    第三范式的定义里没有要求完全依赖,是直接从第一范式定义的,只要没有传递依赖就行。
    但是突然想起:R2(商品号,商品名,规格,采购日期,采购单价,采购数量,采购员编号),这里面的商品号→采购单价是不是传递依赖?是的话就可以直接肯定不是第三范式了!
    这边描述是采购单价,不是商品单价,实际中,商品单价不是固定,所以应用采购单价,所以没有传递依赖
    另外,第三范式的前提是第二范式
     第三范式(3NF)
    满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
      

  7.   

    第一范式;即每一个字段都不可再分,显然R(商品号,商品名,规格,采购日期,采购单价,采购数量,采购员编号,采购员姓名)
    这重关系,该关系式满足的
    第二范式:要求首先满足第一范式,然后每个非主属性都完全依赖于主键
    商品号可以决定商品名,规格 但与采购日期和其他属性没有直接关系,显示不满足第二范式的定义第二个问题:规范为第三范式
    R1(商品号,商品名,规格,采购员编号)   其中个人认为(商品号,采购员编号)应该是组合主键吧
    R2(采购员编号,采购员姓名)
    R3(商品号,采购日期,采购单价,采购数量)
    这样是可行的,
    首先r1其实是从表,r2和r3对应的范式表才是主表
    第三范式定义:第三范式要求在满足第二范式的基础上,非主属性都不传递依赖于主键举个例子:
    有关系模式s-l (sno,sname,ssex,sdept,sloc)
    因为 sno->sdept,sdept->sloc
    所以sno->sloc 这就存在传递依赖 不满足三范式所以s-l需要进一步分解s-d (sno,sname,ssex,sdept) 主键为sno   
    s-l (sdept,sloc) 主键为sdept 分解后s-d和s-l都没有传递依赖才为三范式
    希望你帮助你理解
      

  8.   

    第二范式
    R1(商品号,商品名,规格,采购员编号,采购员姓名)
    R2(商品号,采购日期,采购单价,采购数量)第三范式
    R1(商品号,商品名,规格,采购员编号)
    R2(商品号,采购日期,采购单价,采购数量)
    R3(采购员编号,采购员姓名)---
    可以答案应该是这样的,但是我主为R2里面应该添加了个采购批号更为恰当。当然可以题中是以采购日期做了这个功能。
      

  9.   

    第三范式的定义:如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。没有要求完全依赖,不存在以第二范式为前提啊?
      

  10.   


    如果关系模式R是2NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。
      

  11.   

    http://baike.so.com/doc/1301070.html
    如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。
    我的书上也是这么说的。
      

  12.   

    简介
      每个非关键字列都独立于其他非关键字列,并依赖于关键字,第三范式指数据库中不能存在传递函数依赖关系。
    第三范式
    关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z  Y), 使得X→Y,Y→Z,成立,Y→X不成立,则称R<U,F> ∈ 3NF。
    若R∈3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。
    如果R∈3NF,则R也是2NF。如果它的概念是这样,那它怎么推出来后面的这些呢?
    从,每个非关键字列都独立于其他非关键字列,应该认为就包含不能部分依赖的意思了
      

  13.   

    有证明,只要符合3NF就可以导出2NF。
    中午又看了看书,大体明白了,是我对主键理解不透彻。
    多谢各位,结贴了