答案 0 :(得分:2)
因为
没有归一化
对于已签署多门课程的学生,表格中的条目为:
23 Jake Smith CS101 B +
23 Jake Smith B102 C +
显然数据正在重复(冗余数据)。它导致异常(插入,更新,删除异常)。
例如:
当您必须更改学生名称Jake Smith时,您必须修改所有行,这称为更新异常。
规范化用于避免这些异常和冗余数据存储。
第二行右侧的表以更好的方式处理这种情况,因为它将id, name and DOB
存储在一个单独的表中,使用id
属性可以轻松地进行编辑一排。
有几种常规形式,如1NF,2NF,3NF等。每种常规形式都有一些与之相关的约束。每个高级形式都比前一个更严格。
答案 1 :(得分:0)
我想这是学生成绩的表格。它没有标准化,因为它直接包含学生姓名,而不是对学生记录的引用。
最好不要将student_name
包含在此表中,而是将所有学生数据存储在单独的students
表中,并通过student_id
外键引用它(类似于第二行中的第一个表除外) ids。)。
答案 2 :(得分:0)
它未正常化,因为id
和student_name
都不是密钥(两者都有重复项),因此密钥必须是其中之一(可能是id
)科目编号。另一个(name
)则不依赖于该密钥,而只依赖于id
。
3NF的简单规则是每个非关键列必须依赖于键,整个键,除了关键字" - 我们都庄严地誓言"所以帮助我Codd"!
较高的普通形式处理密钥部分内的依赖关系。
答案 3 :(得分:-1)
因为在你的第一个右表中你有两次值
23 - j.smith
重复并且不遵守Codd 1正常形式