第一范式歧义?
First Normal Form Ambiguity?
在附图中,数据的 1NF 给出为
宠物[pet_id,pet_name,pet_type,pet_age,主人]
Pet_Visit [pet_id, 访问日期, procedure_no, procedure_name]
其中 table 名称位于带有粗体主键的字段列表之前。
不过,我想知道
宠物[pet_id,pet_name,pet_type,pet_age,主人,visitdate, procedure_no,
procedure_name]
也可以,因为它似乎符合"Each record should be uniquely identified by a key"和"each cell can contain only one item"的要求?或者可能添加一个 visit_id 字段但仍保留一个 table,如
宠物[pet_id,pet_name,pet_type,pet_age,主人,visit_id, 访问日期, procedure_no,
procedure_name ] ?
更一般地说,1NF 通常是否需要将 table 和 "repeating groups" 拆分为多个 table,或者我们能否在技术上将它们全部保留在一个 table 中,如果复合键可以是 found/created?
我见过很多定义明显不同的例子。我不是在寻求有关如何学习该主题的建议,只是在寻找我提出的问题的答案。提前致谢。
你认为将所有数据放在一起仍然可以作为 1NF 的资格是正确的。拆分数据不是拥有 1NF 的必要条件。
事实上,这正是区分通用“tables”(如 Excel 和类似程序)与“关系”的区别,后者是关系模型的基本数据结构,由数据库管理系统管理的结构,并为此“发明”了不同的范式(如 2NF、3NF、Boyce-Codd 范式等):关系就像一个 table,具有三个非常重要区别:
- 每个单元格只有一个值
- 行的顺序并不重要
- 行都不同
条件2和3意味着我们存在集合,注意不需要有一个key(或者候选key,因为它通常被称为) 由属性的严格子集组成:简单的候选键可以由所有属性组成,同样在这种情况下,所有行都是不同的。
因此,从“tables”到“关系”意味着上述三个条件都成立,并允许建立所谓的“规范化理论”,即使“理论”,对数据管理技术具有重要的实际影响。
最后,请注意,对于某些人来说,只有当我们已经在谈论关系(即集合)时,才能正确定义 1NF,因此,它简化为第一个条件(每个单元格只有一个值)。因此,当一个关系不在 1NF 中时,我们可以谈论非 1NF 关系,其中每个数据可以有多个值。这并不重要,因为在归一化理论中,“重要”的范式是第三范式、Boyce-Codd 范式和更高范式。
在附图中,数据的 1NF 给出为
宠物[pet_id,pet_name,pet_type,pet_age,主人]
Pet_Visit [pet_id, 访问日期, procedure_no, procedure_name]
其中 table 名称位于带有粗体主键的字段列表之前。
不过,我想知道
宠物[pet_id,pet_name,pet_type,pet_age,主人,visitdate, procedure_no, procedure_name]
也可以,因为它似乎符合"Each record should be uniquely identified by a key"和"each cell can contain only one item"的要求?或者可能添加一个 visit_id 字段但仍保留一个 table,如
宠物[pet_id,pet_name,pet_type,pet_age,主人,visit_id, 访问日期, procedure_no, procedure_name ] ?
更一般地说,1NF 通常是否需要将 table 和 "repeating groups" 拆分为多个 table,或者我们能否在技术上将它们全部保留在一个 table 中,如果复合键可以是 found/created?
我见过很多定义明显不同的例子。我不是在寻求有关如何学习该主题的建议,只是在寻找我提出的问题的答案。提前致谢。
你认为将所有数据放在一起仍然可以作为 1NF 的资格是正确的。拆分数据不是拥有 1NF 的必要条件。
事实上,这正是区分通用“tables”(如 Excel 和类似程序)与“关系”的区别,后者是关系模型的基本数据结构,由数据库管理系统管理的结构,并为此“发明”了不同的范式(如 2NF、3NF、Boyce-Codd 范式等):关系就像一个 table,具有三个非常重要区别:
- 每个单元格只有一个值
- 行的顺序并不重要
- 行都不同
条件2和3意味着我们存在集合,注意不需要有一个key(或者候选key,因为它通常被称为) 由属性的严格子集组成:简单的候选键可以由所有属性组成,同样在这种情况下,所有行都是不同的。
因此,从“tables”到“关系”意味着上述三个条件都成立,并允许建立所谓的“规范化理论”,即使“理论”,对数据管理技术具有重要的实际影响。
最后,请注意,对于某些人来说,只有当我们已经在谈论关系(即集合)时,才能正确定义 1NF,因此,它简化为第一个条件(每个单元格只有一个值)。因此,当一个关系不在 1NF 中时,我们可以谈论非 1NF 关系,其中每个数据可以有多个值。这并不重要,因为在归一化理论中,“重要”的范式是第三范式、Boyce-Codd 范式和更高范式。