1

它经常说要达到 1nf,必须创建一个新实体,并且该实体必须有一个复合键

LeadID | leadDate | Name | DOB | streetAddress | city | state | residenceType

如果我要规范化streetAddress, city, state, residenceType为一个新实体,我将不得不立即创建一个新的主键。我不能使用LeadID,因为这意味着如果没有潜在客户就无法创建地址,这是不正确的。而且我不能使用streetAddress,因为街道不是很好的候选者(5123 glowsville way st. n ave。根本不是一个好钥匙)。

所以我不得不简单地为这个新实体创建一个密钥。这可以吗?

4

2 回答 2

5

第一范式意味着:

如果每个属性的域仅包含原子值,并且每个属性的值仅包含来自该域的单个值,则关系处于第一范式。

因此,除非您在streetAddress列中存储多条街道,否则您已经符合第一范式。

于 2013-04-28T06:53:35.710 回答
3

1NF 与复合键的存在无关。为了满足 1NF,表必须是关系的准确表示,因此必须至少有一个候选键,可能包括也可能不包括复合键。

您可能想到了通用关系假设,这是数据库设计理论中的一个概念,有时用于通过分解来教授规范化。URA 假设存在一个关系,从该关系可以通过无损分解获得所有所需的关系。通用关系通常具有复合键。请注意,URA 本身是有争议的并且肯定是有问题的,但它是思考设计理论问题的一种方式。

规范化理论从不严格要求引入新属性。原则上,假定属性和依赖关系是给定的。

于 2013-04-28T10:24:24.267 回答