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

相關問題