2014-05-06 72 views
0

基本上對不起,問這樣的question.But我聽錯了,當我在我的考試大概1,2寫下這些定義,並是第三範式(條件):規範化和常態形式:數據庫

1 NF:

  1. 數據在每列應atomic.No,用逗號分隔
  2. 表多個值不應包含重複列組
  3. 使用主鍵識別每個記錄。

2 NF:

  • 必須在1 NF
  • 不能包含冗餘數據,如果是,將其移動到單獨的表
  • 使用外鍵
創建表

3 NF:

  • 必須在2NF
  • 劑量不包含未完全在主鍵

取決於我寫的東西錯列?我的老師不同意。

來源this視頻。

回答

1

我相信答案是錯的。當您應該使用與標準化相關聯的術語時,您不會使用這些術語。這樣的例子可以在你的答案中找到2NF

  • 不得含有reduntant數據,如果還沒有,將其移動到單獨的表
  • 使用外鍵

創建表時爲數據冗餘?你將哪些數據轉移到單獨的表格中?創建表格總是您在2NF獲取表格的一個步驟?

如果你會說:

  • 這不是主要標識符的一部分應該是完全依賴於整個主標識的所有屬性。

你仍然在說同樣的事情,沒有多餘的數據是允許的,但你說它的方式表明你知道規範化是關於什麼。

2

1NF

一行數據不能包含重複數據的組即每一列都必須有唯一值。每行數據必須具有唯一標識符。

2NF

的表被歸到第二範式應符合第一範式的所有需求,不能有對主鍵的任何列的任何部分依賴。這意味着對於已連接主鍵的表,表中不包含主鍵的每個列必須依賴於整個連接鍵的存在。如果任一列只取決於級聯關鍵的一個組成部分,那麼該表失敗,第二範式

3NF

第三範式應用於該表的每個非主屬性必須依賴於主鍵。應該從表中刪除傳遞函數依賴關係。該表必須處於第二範式。

更多的參考資料:

  1. http://www.studytonight.com/dbms/database-normalization.php
  2. http://holowczak.com/database-normalization
+0

基本上我想知道我寫的是對還是錯? –

0

根據考試答案:

1 NF:

a.Data中的每一列應atomic.No,用逗號分隔的多個值 (TRUE因爲1NF不支持複合和多值屬性,更重要的是,這個屬性在ER模型中默認爲關係模型轉換。)只有這個屬性足夠用於1NF。 b。表不應包含重複列組。 (不要求)

c。使用主鍵識別每條記錄。 (不是必需的)

2 NF:

a.must在1 NF (TRUE)

b.must不包含冗餘數據,如果是,將其移動到單獨的表。 (TRUE,但這裏我們只關注部分依賴關係,去除部分依賴關係對於2NF是足夠的,並且在刪除之後如果一些冗餘數據仍然存在,那麼它對於2NF是OK的。)

c.create table using foreign key (FALSE,將表格拆分爲兩部分,其中它們之間的通用屬性表現爲任何分解表的候選鍵) 示例:R(A,B,C,D)讓我們假設我們想要(AB)和(BCD),其中公共屬性(HERE:'B')表現爲(AB)或(BCD)中的任何一個的候選鍵)。

3 NF:

a.Must在2NF (不neccessarily真實的,即使它不是在2NF你可以用3NF.When去這將是3NF,它會自動滿足2NF屬性)

b.Dose不包含未完全依賴於列主鍵 (寫作的方式是不對的,你應該寫「在3NF,傳遞依賴(非主屬性派生主屬性)不允許」)

*請記住:請記住這一點:1NF到2NF,2NF到3NF,3NF到BCNF不是一個規則,它是一個慣例。意味着你可以直接去BCNF(0%冗餘)。

希望這會有所幫助。欲瞭解更多詳情,你也可以參考:Detailed explanation of Normal forms