1

これは、データベースの正規化に関する私の質問です。これは、機能の依存関係に非常に関連しています。

私の質問は、以下の表に関するものです。

{ID、NR_ID、IMPRESSION_TYPE、VALUE}

Say ID -> NR_ID, ID->IMPRESSION_TYPE, ID->Value. 
Also, { NR_ID, IMPRESSION_TYPE } -> VALUE.

ID -> { NR_ID, IMPRESSION_TYPE }つまり、推移的な依存関係があってはならないという 3NF のルールを破っていると言えますか?

4

2 に答える 2

1

つまり、ID-> {NR_ID、IMPRESSION_TYPE}と言えば、推移的な依存関係があってはならないという3NFのルールに勝っていますか?

いいえ、用語を再配置することで推移的な依存関係をなくすことはできません。

依存関係はセットに基づいています。式A->Bは、「「A」と呼ばれる属性のセットが「B」と呼ばれる属性のセットを決定する」ことを意味します。日付によると、「基本的に、関数従属性は、特定のrelvar内の属性のセットから別のセットへの多対1の関係です。」(日付、データベースシステムの概要、第7版、330ページ。強調が追加されました。)

第二に、アームストロングの公理(分解)は、それID -> { NR_ID, IMPRESSION_TYPE }がと同等であると言っていID -> NR_ID, ID->IMPRESSION_TYPEます。これは、IDが値を決定しなくなったこと、または{NR_ID、IMPRESSION_TYPE}が値を決定しなくなったことを意味するものではありません。

于 2012-12-30T13:48:25.687 に答える
1

はい、もちろん推移的な依存関係があります。なぜなら

ID で値を決定できます。つまり(ID-->Value) 、NR_ID と IMPRESSION_TYPE で値を決定できます。

 ( NR_ID, IMPRESSION_TYPE --> Value)

したがって、これは 2NF 形式であり、推移的な依存関係を削除して 3NF にする必要があります。私の提案は、別のテーブルに ID と値を含めることです。

于 2012-12-30T13:02:11.320 に答える