2012-04-11 5 views
3

私の非公式の表現は以下のとおりです。2番目の正規形とは何ですか?これらの

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 –

+0

私はしばらく私を受けましたが、私は今理解していると思います。 2NF:それはキー全体に依存しますが、3NFでは「キーだけです」です。 :) –

答えて

3

すべての非プライム属性がすべてのキーに完全に機能的に依存する場合、リレーションスキーマは2NFになります。

1

Wikipediaは言う:

表は2NFにある場合と、それは1NFにあり、テーブルのすべての非プライム 属性は、候補 キーの全体的にどちらか依存している、または場合にのみ、別の非プライム属性に置き換えます。

のはHead First SQLから適応おもちゃの目録のためのテーブルを使用してみましょう、という概念を説明するために:

TOY_ID| STORE_ID| INVENTORY| STORE_ADDRESS 

主キーは、属性TOY_IDとSTORE_IDで構成されています。非プライム属性のINVENTORYを解析すると、inがTOY_IDとSTORE_IDに同時に依存することがわかります。カッコいい。

一方、非主属性のSTORE_ADDRESSはSTORE_ID属性にのみ依存します(つまり、主キー属性TOY_IDには関係しません)。それは2NFの明確な違反ですので、2NFに文句を言うために私たちのスキーマは次のようにする必要があります

Inventoryテーブル:TOY_ID| STORE_ID| INVENTORY

とストアテーブル:STORE_ID| STORE_ADDRESS

+0

この例では3NFは何でしょうか? –

+0

3NFスキーマは、推移的な依存関係(別の非キー列に依存する非キー列)を持ちません。私が使用した例ではキー以外の属性が1つしかないので、すでに3NFになっています –