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