0

クラスでノーマライゼーションを学んでいます。そして、私はこの記事でこの演習を見つけましたここに

次の表を 3NF に正規化してください。
ここに画像の説明を入力

これが私がやった方法です。ここに画像の説明を入力

表の整理方法が正しいかどうか知りたいです。

4

1 に答える 1

0

表の整理方法が正しいかどうか知りたいです。

いいえ、ちがいます。

まず、BCNF による正規化は、機能の依存関係に基づいています。機能的な依存関係を特定していません。

第 2 に、正規化によって、元の関係になかった新しい属性が導入されることはありません。新しい属性「sFirstName」、「sLastName」、「dateOfBirth」、「tuteId」、「tutorName」、「bookId」、および「bookName」を導入しました。

最後に、リンク先のようなオンライン演習はあまり役に立ちません. 作成者は、提供された小さなテーブルからすべての機能依存関係を導き出すことを明らかに期待していますが、データが代表的でない限り、それを確実に行うことはできません。たとえば、検査によって部屋 -> 日付を判断できますが、現実の世界ではあまり意味がありません。

正規化はセマンティクスに基づいています。データは何を意味するのでしょうか? ここでの「日付」とはどういう意味ですか? データは、これらすべての解釈をサポートしています。(もっと。)

  • 部屋が使用される唯一の日付。(部屋->日付)
  • 部屋が最初に使用される日付。(部屋->日付)
  • 本が出版された日付 (Book->Date)
  • 学生がユニットにサインアップした日付 (StudentId、UnitId->Date)

データのみに基づいて、Grade->Date と主張することはできますが、それは意味がありません。そのようなナンセンスは、データが代表的ではなく、作成者が提供しなかった情報を使用してのみテーブルを正規化できることを示しています.

于 2015-02-15T15:54:06.120 に答える