0

我有一个关系确定是否关系是1NF没有数据

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

http://stackoverflow.com/a/23202535/562459 –

+0

你在2NF&3NF定义的尝试是如此草率,以至于它们不代表什么。 (即使“翻译”被修正为“传递性”。)阅读一些实际的教科书定义。细节很重要。 PS另请参阅[我的答案](http://stackoverflow.com/a/26952821/3404097)的问题,评论由MikeSherrill'CatRecall'链接到。 – philipxy

回答

0

许多人使用“1NF”来表示属性类型的模糊概念,这些概念都是模糊的,称为“atomic”。 Codd最初的意思是“规范化”,后来的“1NF”意味着没有本身就是关系的属性。 “原子”的所有其他用途都混淆了毫无道理的不合理的接受智慧,并且一个值是否是“原子”最终在实践中,无论它是否没有你想要成为一个关系中元组中某个属性值的部分,查询结果。无论哪种情况,您都无法从属性中判断一个关系是否属于1NF。如果你被告知属性的类型,并且明确了“原子”(Codd给出的:不是关系)的标准,那么你可以说。其他人发现“1NF”无益或将其定义为“是一种关系”。只要确保在听到/看到“1NF”时使用,就能发现其含义。 (祝你好运,永远得到一个明智的定义“原子”。)

有时人们错误地使用“重复组”为“非原子”。 (但是重复组实际上是前关系非关系数据库的一个概念,即不能出现在的关系。)

有时让人依稀稀里糊涂帮倒忙错误地包括一个关系不能有多个值的属性元组,这是不可能的,因为根据定义的关系对于元组中的属性具有一个值。

有时候人们含糊地无意中错误地在他们的“1NF”中包含了不存在多个相似属性的情况,因为有些相似性概念。

请参阅this answerthis one

相关问题