所以我把这张桌子正常化了。我开始意识到存在着暂时性的依赖。因为学院的名称和城市取决于学院的代码。因此,我必须创建新的表,并将这些列移到那里。但问题是,不同机构的机构代码重复。那么是否有必要为这个新创建的平板电脑创建我自己的唯一ID呢?或者我可以只带外键去吗?
发布于 2015-12-29 17:15:40
传递依赖是形式A→B→C的依赖关系,其中A是键,B是非键属性。我认为您所指的传递依赖关系是Countt instituteCode→instituteName。
但是,您可以说“机构代码重复用于不同的机构”,这似乎表明instituteCode和instituteName之间不存在依赖关系。相依性要求行列式的任意给定值(左侧)的依赖(右侧)属性正好有一个可能的值。想必,如果同一instituteCode可以用于不同的机构,那么这些不同的机构可能有不同的名称?如果是这样的话,则传递的依赖项Countt instituteCode instituteName→instituteName将不保持,并且在相同的表中使用这些属性不会违反3NF。这只是我的假设;您需要自己找出实际应用的依赖项。
如果Countt→instituteCode→instituteName确实有效,那么您可以为instituteCode和instututeName创建一个新的关系,其中instituteCode是主键(因为instituteCode→instituteName)。
是否需要为这个新创建的表创建我自己的唯一ID?
不是的。规范化从不要求创建新的属性。
https://stackoverflow.com/questions/34514642
复制相似问题