誰にでもできる!システム開発  RSSを登録する

73%は失敗と言われている、システム開発プロジェクトを成功させるためのテクニックや考え方をお届けします。新人エンジニアが失敗しやすいポイントも詳しく解説しています。

現在休刊中です    
解除

規約に同意して

2008/12/22

【誰にでもできる!システム開発】ボイスコッド正規化

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

      『誰にでもできる!システム開発』 2008/12/22 号

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 ご愛読、ありがとうございます。

 このメールマガジンは、システム開発を始めたばかりの方、これから始める
 方向けに、筆者が日頃から心がけていることをお話しています。

 扱う内容については、テクニックと考え方を半分ずつで構成しています。

 思っていた内容と違う、つまらない、読む気力が無くなったという方、
 購読解除はこちらからできます。
  http://www.mag2.com/m/0000263428.html


 著者プロフィール
  http://www.shiga-it-office.com/mailmagazine/writer.html

 事務所概要
  http://www.shiga-it-office.com/profile.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■第28回 ボイスコッド正規化
────────────────────────────────────

 第1〜第5正規化まで説明してきましたが、第4正規化の前に、ボイスコッド
 正規化というのもあります。

 ボイスコッド正規形は一見すると第3正規形と良く似ており、同じものとし
 て紹介している書籍などもあるようですが、そもそもの目的が違っており、
 全くの別物です。

 ボイスコッド正規化も、第4・第5正規化と同様に、実際の業務でお目に掛か
 ることが少ないのですが、何故そうなのか、今回も考えながら読んでみると
 良いかと思います。


●ボイスコッド正規形

 こんなテーブルがあったとします。
 --------------------------------
 | 学籍番号 |  科目  | 担当教員 |
 --------------------------------
 | 00000001 | 数学   | 荒木教授 |
 --------------------------------
 | 00000001 | 物理   | 鈴木教授 |
 --------------------------------
 | 00000002 | 数学   | 近藤教授 |
 --------------------------------
 | 00000002 | 物理   | 横山講師 |
 --------------------------------
 | 00000002 | 化学   | 山田教授 |
 --------------------------------
 | 00000002 | 心理学 | 斉藤教授 |
 --------------------------------

 学籍番号と科目が決まると担当教員が決まりますので、キーは{学籍番号、
 科目}と考えられると思いますが、担当教員が決まると科目も決まります。

 ・第2正規化は、キーの一部から非キー項目への関数従属を排除
 ・第3正規化は、非キー項目から非キー項目への関数従属を排除

 ですが、ボイスコッド正規形では、非キー項目からキー項目への関数従属を
 排除することが目的となります。

 上記の例では、非キー項目の担当教員からキー項目の科目への従属関係があ
 りますので、これを排除します。

 ---------------------  ---------------------
 | 学籍番号 |  科目  |  | 担当教員 |  科目  |
 ---------------------  ---------------------
 | 00000001 | 数学   |  | 荒木教授 | 数学   |
 ---------------------  ---------------------
 | 00000001 | 物理   |  | 鈴木教授 | 物理   |
 ---------------------  ---------------------
 | 00000002 | 数学   |  | 近藤教授 | 数学   |
 ---------------------  ---------------------
 | 00000002 | 物理   |  | 横山講師 | 物理   |
 ---------------------  ---------------------
 | 00000002 | 化学   |  | 山田教授 | 化学   |
 ---------------------  ---------------------
 | 00000002 | 心理学 |  | 斉藤教授 | 心理学 |
 ---------------------  ---------------------

 となるのですが、実は大変な問題があることに気づきましたでしょうか。

 この2つの表をJOINすると、元のデータに戻らなくなってしまいます。

 例えば、学籍番号00000001の生徒は数学を履修しているのですが、数学担当
 は荒木教授と近藤教授がいますので、2人の先生の授業を受けることになっ
 てしまう訳です。

 このように、安易にボイスコッド正規化を行うと、データの整合性が崩れる
 可能性がありますので注意が必要になります。


 ところで、この表は「元に戻せなくなることがある」ということを説明する
 ためのもので、実際にはこういう表を見かけることはほとんどないと思いま
 す。

 ボイスコッド正規形にすると、ビジネスロジックをセットにしないといけな
 くなったりしますので、業務上は第3正規形の方が使いやすいことが多いで
 しょう。

------------------------------------------------------------------------
■編集後記

 最後までお読みいただき、ありがとうございました。


 今年の配信はこれで最後になります。
 来年最初の配信は1/5です。

 おかげさまで本業が忙しくなり、このメルマガは今年いっぱいで終了するこ
 とを考えていたのですが、先日まぐまぐ編集部のおすすめをいただいたこと
 もありまして、もう少し続けることにしました。

 来年からは、第1・第3月曜日の配信とさせていただきます。
 配信頻度は低下しますが、内容は低下させませんので、これからもよろしく
 お願いいたします。


 ご感想・ご意見・ご要望などありましたら、気軽にご連絡ください♪
 では、また次回お会いしましょう!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
『誰にでもできる!システム開発』 2008/12/22 号

 本日のメールマガジンを読んだ感想をお聞かせください。
 お寄せいただいた感想は、メールマガジン上で紹介させていただくことが
 ありますので、ご了承ください。

 配信中止はこちらから↓
  http://www.mag2.com/m/0000263428.html
 メールアドレスの変更はこちらから↓
  http://www.mag2.com/m/0000263428.html
 ご意見&ご感想はこちらから↓
  http://www.shiga-it-office.com/mailmagazine/ImpressionFrom.html
 コンサルティングのご相談はこちらから↓
  http://www.shiga-it-office.com/inquiry.html


 発行元 志賀IT事務所
   http://www.shiga-it-office.com/

 関連メールマガジン 「誰にでもできる!インターネット活用術」
   http://www.mag2.com/m/0000263426.html

 関連ブログ
  ☆コンサル日和
   http://d.hatena.ne.jp/kei_onpu/
  ☆爆裂!C#野郎
   http://csharp.yaminabe.info/
  ☆10年戦える開発技術
   http://10year.yaminabe.info/
  ☆情報処理技術者試験午前対策
   http://am.yaminabe.info/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
現在休刊中です
解除

規約に同意して

最近の記事

上へ戻る