我想知道规范封面的正常形式。我知道在进行规范化之前我们会发现规范封面,所以我认为它是第一种正常形式。但它可能不是正常形式,因为维基百科对1NF的定义是没有行应该有重复:
第一范式强制执行以下标准:
- 消除各个表中的重复组。
- 为每组相关数据创建一个单独的表。
- 使用主键识别每组相关数据
答案 0 :(得分:1)
普通形式适用于关系(值和变量),而不是规范的封面。封面是一组FD(功能依赖性),关系中的所有FD都遵循这些FD。规范封面是某种形式的封面。如果你有一个规范的封面和一个关系的属性,那么你可以找到这种关系的正常形式。
根据"关系"的定义,任何行都不能重复。关系具有行的集。 (但是,SQL表可能有重复的行。)没有列/属性可以"多值"或者重复一群"。属性具有 a 值。
维基百科在其关系文章中有很多废话,包括the one you quote。但是从this answer by me:
根据定义,关系的元组属性具有来自域的 a 值。回复:"重复群组":它不能拥有来自关系前数据库的任何东西。 Re"非原子":Codd将关系定义为能够拥有关系值域。他指出,在关系环境中,非原子性(在日常意义上)可以考虑价值的唯一方式是关系价值。即他定义了" atomic"在关系环境中意味着不是关系。他定义了#34;标准化"表示没有关系值(即非原子)属性。 (所有这一切都在1970。)后来他定义了" 1NF"正常化。并开发了#2; 2NF" &安培; " 3NF&#34 ;.然后(肯特和博伊斯之后)" BCNF"。所以他对这些术语的使用假设没有关系值域。
但归一化理论是独立于领域而提出的。也就是说,它被认为只是针对有问题的JD [join dependencies]进行分解。所以" 1NF"也被用来做一个关系。而其他" NFs"在不考虑域名的情况下使用。 (虽然如果存在关系值域,那么可能存在不同但类似于导致不同但相似异常的FD和JD的约束,并且即使在对所有有问题的JD进行分解之后也会导致组件中的约束和异常。)无论是否一个关系具有关系价值的域,无论一个人的意思是什么?1NF"或者"标准化"或者"规范化",您正在遵循的分解程序,将有问题的JD从有问题的FD中移除到您调用的内容[a] NF独立于域。
来自another:
没有"多值属性"在一种关系中。元组具有每个属性名称的 属性值。 [...]如果你有一个属性,你认为包含多个部分,即你想要一般查询部分而不使用带有类型参数的运算符,那么它通常是好的设计要有一个单独的表,其中包含这些部分的属性。但是规范化并没有解决这个问题。 任何值都可以被认为具有多个方面的多个部分,并且您的应用程序/查询确定何时停止创建其属性是其他值的部分值的表,并且只有一个属性值。类似地,如果你有一堆扮演类似角色的属性(通常具有相似的名称),那么通常良好的设计就有一个单独的表,只有一个角色属性。但是规范化没有解决这个问题。
- 醇>
候选键对FD,MVD,JD和规范化很重要。 PK [主键]不是。你可以选择一个CK作为" PK"但它的主要性与关系模型无关。它可能与某些信息建模方法或产品有关。
如果您对您的关系,属性,属性类型,规范封面或规范化过程有特别关注,那么您应该在您的问题中解释。