第3范式形式混乱

时间:2015-12-29 16:03:10

标签: database erd

所以我正在规范这张桌子。我开始意识到存在传递依赖。因为学院名称和城市取决于学院代码。所以我必须创建新表并将这些列移到那里。但问题是,不同机构的机构代码重复。那么有必要为这个新创建的平板电脑创建自己的唯一ID吗?或者我只能使用外键???? This Image

1 个答案:

答案 0 :(得分:1)

传递依赖是A→B→C形式的依赖,其中A是键,B是非键属性。我认为你在这里提到的传递依赖是Countt→instituteCode→instituteName。

但是,你说“机构代码重复不同的机构”,这似乎表明在instituteCode和instituteName之间存在依赖关系。依赖性要求对于任何给定的行列式值(左侧),依赖(右侧)属性只有一个可能的值。据推测,如果相同的学院代码可以用于不同的机构,那么这些不同的机构可能会有不同的名称?如果是这样,则传递依赖关系Countt→instituteCode→instituteName不成立,并且通过在同一个表中具有这些属性不会违反3NF。这只是我的假设;你需要自己找出实际应用的依赖项。

如果Countt→instituteCode→instituteName 成立,则可以为instituteCode和instututeName创建一个新关系,其中,instituteCode是主键(因为instituteCode→instituteName)。

  

是否有必要为新创建的帐户创建自己的唯一ID   表

没有。规范化从不需要创建新属性。