実は非正規形から第一正規形への変換が全く違った考えをしていました。

http://www.netlaputa.ne.jp/~hijk/study/ae/datnom.html#A01
ここのサイトなどにあるように繰り返しを無くすとあるのですが、第一になっても繰り返しがなくなったように感じません。
何が繰り返しているのか、もしくは繰り返しとは何か、確実に何か勘違いしています。
今は上のサイトの図では繰り返してるのは
商品明細ではなくて受注番号から担当営業名のところが繰り返し出てきているように感じています。
何とか判るように教えてください

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:countdown No.1

回答回数19ベストアンサー獲得回数1

ポイント16pt

http://www.hatena.ne.jp/1091460292#

実は非正規形から第一正規形への変換が全く違った考えをしていました。 http://www.netlaputa.ne.jp/~hijk/study/ae/datnom.html#A01 ここのサイトなどにあるように繰り返.. - 人力検索はてな

URLはダミーです。

ここで問題となっている繰り返しと言うのは、一つのレコードの中での繰り返しということだと思います。

正規化されていないと

受注番号〜担当営業名、商品明細1、商品明細2、商品明細3…

と言うレコードになります。商品明細が繰り返し登場していますね。

このレコードと同じ情報をあらわすのに、

受注番号〜担当営業名を一つのレコードにし、商品明細1、商品明細2…をそれぞれ一つのレコードにするのが第一正規形への変換だと思います。

得意先番号から得意先名が、担当営業番号から担当営業名が自動的に求められるので、これもある意味繰り返しと言えますが、繰り返し度が低い(なにそれって感じですが)ので、さらに正規化したいときだけ第二、第三正規形で対応する、と言うことではないでしょうか。

まずは「一つのレコードの中での同じ項目の繰り返し」をなくすことが重要だってことだと思います。

id:aki73ix No.2

回答回数5224ベストアンサー獲得回数27

ポイント16pt

繰り返しはなくならなくていいのです

第1正規化は、むしろ冗長性は増します

正規化によって、おなじレコードの中に複数のデータが存在するのを無くす処理が第1正規化です。

ですから、上のサイトで繰り返し出てきているのは問題ありません。

URLの先をご覧になると分かりやすいと思います

id:bigmonster_hiki No.3

回答回数1ベストアンサー獲得回数0

ポイント16pt

非正規系から第一正規系にするときは、<b>同一レコード内</b>での繰り返し(複数要素列挙)をなくすようにすることがポイントです。そこで、明細部を別のテーブル(B)に分けてあります。対象のデータは、正規化の結果、Aテーブルに1レコード、Bテーブルにnレコードという形に分離されます。

受注番号→担当営業者名のところは下の図にも書いてあるとおり、推移関数従属になっていますので、ここは第二から第三にするときに分離します。

id:yellow_73 No.4

回答回数5ベストアンサー獲得回数0

ポイント16pt

たとえば、こちら参照。具体的にテーブルの中身の例も出てますし。

ご質問文中のサイトを拝見しましたが、この「繰り返し」は、商品明細(xn)の*列*グループを指していますね。

商品の種類に応じて、商品番号, 商品名, 単価, 数量, 金額 の5列がセットで右に伸びていっています(右端の「…」がそれを指していると思われます)。

商品番号1, 商品名1, 単価1, 数量1, 金額1, 商品番号2, 商品名2, 単価2, 数量2, 金額2, ..., 金額n といったかんじに、列数は、取り扱う商品の種類に応じて増えていきます。

このような固定列テーブルに対する挑戦のようなデータ構造を、なんとか固定列テーブルにしてしまうのが、第一正規化です。

第一正規化ができあがった段階では「受注番号から担当営業名のところが繰り返し出てきている」ような*行*が出ています。

って、ご質問文中のサイト、第二正規化の説明が間違ってるように思います。

id:nobukin80 No.5

回答回数9ベストアンサー獲得回数0

ポイント16pt

1個の受注番号に複数の商品明細を「繰り返し」くっつけたのが表Xですよね。

それに対して、1個の受注番号に商品明細を「1個だけ」くっつけたのが表Bです。

もともと受注番号に「1個だけ」くっついていた担当営業名などは別の表Aにまとめてます。(これで繰り返しがなくなりました!)

  • id:Zommerz
    遅くなりましたが

    遅くなりましたが皆さんどうもありがとうございました
    一軒づつのコメントをかけなくて申し訳ありませんでした
    みなさんの意見は大変参考になりました
    今後ともよろしくお願いいたします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません