8

このERDを5番目の通常の形式で取得する方法を教えてもらえますか?昨日クラスの課題を行い、実際のクライアントが来て、彼の必要性を説明してくれました。私のグループがこのモデルを思いついたので、さらに一歩進んで、5番目の通常の形式にできるかどうかを確認します。来週は5nfである必要がある別のグループERDを行うので、それをよりよく理解できます。問題は、どこから始めればよいかわからず、本が私に届かないということです。助けてくれませんか。Erdモデルhttp://img534.imageshack.us/img534/2118/capturekk.jpg

新しい情報「偽のクライアントのニーズ」

クライアントには、手袋やパイペットなどの医療品を注文する2つの部門「ラボ1、ラボ2」があります。部門は成長しており、ベンダーが販売している在庫にあるものを追跡したいと考えています。最高の価格とそれがどのコストセンターから来たのか。

彼がアイテムが注文されていることを説明した方法は、個人が彼のところに行き、物資を求め、次にその人がどのラボであるかを人の名前から書き留め、どのコストセンターに請求するかということです。しかし、彼はまた、日付ごとに何が購入され、何が在庫にあり、何を購入する必要があるかを追跡したいと考えています。彼はまた、一部のユーザーが特定のベンダーからの最高の価格ではない可能性のあるアイテムを望んでいる例を示しました。また、追跡したい価格のカタログもメールで受け取ります。

ごちゃごちゃしてしまったことをお詫びしますが、これはすべて記憶からです。

4

2 に答える 2

4

私は首を突き出して、あなたの現在のスキーマには実際には5NFの資格がないと言います。ウィキペディアから引用すると、ほとんどの4NFテーブルはすでに5NFに準拠しているとのことです。

使用法まれな状況でのみ、4NFテーブルが5NFに準拠しません。これらは、4NFテーブルの属性値の有効な組み合わせを管理する複雑な実世界の制約が、そのテーブルの構造に暗黙的に含まれていない状況です。このようなテーブルが5NFに正規化されていない場合、テーブル内のデータの論理的な一貫性を維持する負担は、テーブルの挿入、削除、および更新を担当するアプリケーションが部分的に負担する必要があります。また、テーブル内のデータに一貫性がなくなるリスクが高まります。対照的に、5NF設計では、このような不整合の可能性が排除されています。

http://en.wikipedia.org/wiki/Fifth_normal_form

おそらく、目的はデータベースを5NFにすることではなく、5NFと比較したデータベースの構造を理解し、データベースがすでに5NFにある理由について議論することです。

更新:コメントから何らかの形のコンセンサスを読むと、設計によるものであれ、以前の正規化パスからの偶然によるものであれ、設計はすでに5NFになっている可能性があります。

于 2010-08-05T15:45:48.940 に答える
1

免責事項:あなたのビジネスロジックを知らなければ、私は以下の提案のいくつかで完全に間違っている可能性があります。

データベーススキーマで見たいくつかのことを確認してください。

  1. コストセンターテーブルは、ルックアップテーブルと関連付けテーブルの両方のように見えます。したがって、コストセンターの数が設定されている場合、たとえば5人でユーザーが1000人の場合、このテーブルには5000個のレコードがあり、すべてにコストセンター名が格納されます(これは、コストセンターの割り当てが各ユーザーに固有ではないことを前提としています)。ユーザーの関連付けを、costcenterIdとuserIdの独自のPKとFKを持つ別のテーブルに分割することをお勧めします。
  2. アイテムの手持ち在庫の量を格納していると私が想定している在庫テーブルでは、説明が何であるかわからない手持ちの数量のみが必要です。説明が各アイテムの在庫に固有でない場合は、それを独自のルックアップテーブルに分割し、在庫テーブルで参照することをお勧めします。
  3. 「lineQuantity」をベンダーテーブルに保存しています。この列は何のためにありますか。何らかの形で特定の注文に関連しているようです(購入したアイテムの数量?)その場合は、それを独自のテーブルに分割し、ベンダーではなく注文に関連付けます。lineQuantityが何であるかを正確に知らなくても、この提案は完全に間違っている可能性があります。
  4. これがあなたのクラスにとって重要かどうかわからない最後の提案。すべてのデータ型をCHAR(10)として定義しているので、これらをデータベースに使用する実際のデータ型に変更することができます。
于 2010-08-05T16:41:49.840 に答える