英语的价值一次又一次地重复。这是重复的吗
组?
没有。 SUBJECT_MODULE 中多次出现的英语不是重复组,甚至不是人们错误地认为重复组的两件事中的任何一个。它们也不是冗余或缺乏标准化的证据。这种多次出现可能与冗余或规范化有关,但它们总是在没有冗余和各种规范化级别时出现。
如果 SUBJECT_MODULE 是“[SUBJECT_NAME] 具有 [MODULE_NAME] 由 [MODULE_ID] 标识”的行,并且一个主题可能有多个模块,那么您必须在某处多次提及该主题(也许通过它的名字)提到不同的模块(可能是名字或id)。这不会涉及冗余。
Student Age Subject
Adam 15 Biology
Adam 15 Maths
Alex 14 Maths
Stuart 17 Maths
此示例中问题的第二个“this”链接的冗余不是 Adam 出现在两行中,也不是 Adam 出现在两行中的 15。如果表格是“[Student] 是 [Age] 岁并采用 [Subject]”的行,那么 Student(例如 Adam)可以出现在多行中但总是以相同的年龄出现 (例如 15)。但是,如果表格是“[Student] 在 [Subject] 中有一个 [Age] 岁的朋友”的行,那么表格可能已经完全规范化了。
当然它消除了重复值,但我不确定这是否是
正确的事情。
它适用于您的示例数据,但它可能不适用于其他示例数据。你告诉我们的还不够多。 (无论如何,正如我上面所说,多次出现可能甚至不需要标准化。)
在 SUBJECT_MODULE 中是否存在任何与规范化相关的冗余,甚至是否存在任何有效的分解,包括您给出的分解,取决于规范化到 1NF 以上所需的通常信息。即它的某些列是否是其他列的函数(函数依赖)以及它的行是否也是“...”和“...”(连接依赖)的那些。
通过给出可能的分解,您已经说过“...[Subject_Name]...[Module_ID]...” AND “...[Module_Name]...[Module_ID].. 。”你已经给出了一些分解数据的例子。但我们只知道它可以如此分解,因为您添加了分解。而且分解加上数据仍然不足以让我们知道它是否应该应该如此分解。
我阅读了不同的教程并看到了不同的示例
规范化,特别是第一个中的“重复组”的概念
正常形式。
“重复组”是来自前关系数据库的东西,不可能出现在关系表(关系)中。它们就像一组命名的值,就像记录的一个字段,但不完全是。关系表总是在 1NF 中。行的每一列都有一个列类型的值。非关系数据库被“规范化”为表,即 1NF(“规范化”的第一意义上),它摆脱了重复组。然后这些表/关系被“规范化”为更高的规范形式(“规范化”的第二种意义)。
具有多个相似列或具有具有多个相似部分的列类型的关系表每个都只是让人想起在非关系数据库中具有重复组。并且多个列和部分应该成为单独表中的多行,就像重复组的多个成员一样。但这些问题与关系设计质量有关,而不是重复组或规范化(在任何一种意义上)或关系(即处于 1NF 中)。
请注意,非关系数据库本身可能在多个相似字段和/或命名集或字段值的多个相似部分存在类似问题。消除重复组时,对表格的规范化并没有消除这些。
无论它们是如何进入关系设计的,删除它们都会提供“更好”的设计。正是因为这些设计问题让人想起重复组,人们才会感到困惑,并想象一个表格可能包含一个重复组。因此,具有多个相似部分(或部分)的多个相似列和值被错误地称为“重复组”。
见this answer re "atomicity"。