2012-04-11 56 views
3

我的這些非正式的表示是:什麼是第二範式?

1NF:該表分爲所以沒有項目將出現不止一次。

2NF:?

3NF:值只能通過主鍵來確定。

我無法從我發現在網上或在我的書中摘錄它的意義。我如何區分1NF和2NF?

+3

看看這個帖子:HTTP ://stackoverflow.com/questions/723998/can-someone-please-give-an-example-of-1nf-2nf-and-3nf-in-plain-english – 2012-04-11 20:59:02

+0

我花了一段時間,但我想我現在明白。 2NF:它依賴於整個密鑰,但在3NF中它只是「密鑰」。 :) – 2012-04-11 21:10:20

回答

3

一個關係模式是在2NF如果每個非主屬性完全函數依賴於每一個關鍵。

1

Wikipedia說:

表是在2NF,當且僅當它是1NF且表中的每一非黃金 屬性爲依賴於整個候選 關鍵的,或者另一個非主要屬性。

爲了解釋這個概念,讓我們使用一個表改編自Head First SQL玩具的庫存:

TOY_ID| STORE_ID| INVENTORY| STORE_ADDRESS 

主鍵由屬性TOY_ID和STORE_ID組成。如果我們分析非主屬性INVENTORY,我們會看到同時取決於TOY_ID和STORE_ID。這很酷。

但另一方面,非主要屬性STORE_ADDRESS僅依賴於STORE_ID屬性(即與主鍵屬性TOY_ID無關)。這是一個明顯違反2NF的,所以要告狀2NF我們的架構必須是這樣的:

的庫存表:TOY_ID| STORE_ID| INVENTORY

和Store表:STORE_ID| STORE_ADDRESS

+0

這個例子中的3NF會是什麼? – 2012-04-11 22:18:08

+0

甲3NF架構中有沒有傳遞依賴(即依賴於另一個非鍵列的非鍵列)。我使用的示例只有一個非關鍵屬性,因此它已經在3NF中 – 2012-04-11 23:04:10