我有关系
CAR_SALE(Car#, Date_sold, Salesperson#, Commission%, Discount_amt)
Primary Key: {Car#, Salesperson#}
Additional Dependencies: Date_sold -> Discount_amt
Salesperson# -> Commission%
我必须确定它是否在1NF,2NF或3NF。我们只给出没有数据的关系模式。我无法确定这是否在1NF。为了使某些东西在1NF中,它不能具有属性的重复组。鉴于这种关系模式没有实际数据,是不是不可能分辨出来?我不需要实际数据来确定它是否是1NF?或者主键的存在是否让我知道不会重复任何属性?
我知道对于2NF,它必须在1NF中,并且所有非关键属性必须依赖于主键,对于3NF,它必须是2NF且没有转换依赖性。
答案 0 :(得分:0)
许多人使用" 1NF"表示属性类型的一些模糊概念,这些概念都是一种模糊的方式,称为" atomic"。 Codd原本意味着"标准化",后来" 1NF",意味着没有属于他们自己的关系。 " atomic"的所有其他用途困惑无益的不合理的接受的智慧,以及价值是否是原子"最终在实践中是否没有任何部分,您希望成为查询结果关系中元组中某些属性的值。在任何一种情况下,您都无法从属性中判断关系是否在1NF中。如果你被告知属性的类型,并清除" atomic"的标准。 (这是Codd给出的:不是关系)然后你可以告诉。其他人发现" 1NF"无益或将其定义为"是一种关系"。只要确保在听到/看到" 1NF"用过的。 (祝你好运得到#34; atomic"。)
有时人们错误地使用"重复组" for" non-atomic"。 (但重复组实际上是来自关系前非关系数据库的概念,不能出现在关系中。)
有时人们模糊地错误地错误地认为关系不能包含元组中属性的多个值,这无论如何都是不可能的,因为定义关系对于元组中的属性有一个值。 / p>
有时人们模糊地混淆地无意中错误地包含在他们的" 1NF"对于某些相似概念,没有多个相似的属性。
请参阅this answer和this one。