ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Hello World程度のデータベース 準備編(正規化くずし)

2006-12-20 02:45:57 | 土日シリーズ

 前に書いた、Hello World程度のデータベースのための準備として、思ったことをメモするコーナーです。



■第四、第五正規形について

ここがくわしい
第四正規形と第五正規形
http://itpro.nikkeibp.co.jp/article/lecture/20061128/255079/?ST=lecture&P=4


自分へのメモ:
第四正規形は、順番にやっていくと、多くは第一正規形でひっかかることを
書くかどうか、検討する。




■正規化をくずすとき

 一般に、第二正規形は行うのですが、第三正規形は、行わない場合があります。
 その理由は以下のとおりです。
1.(昔言われていた理由)第三正規化まですると、テーブルがふえ、検索が遅くなる
 →いま、この考えの信憑性は?といわれている。
  正規化をして、インデックスを多く張り、インデックスだけでSelectしたほうが、
  結果としては早くなるというのが、佐藤氏の考え

2.第三正規化まですると、テーブルがふえ、”更新が”遅くなる
 インデックスが増えると、インデックスの書き出しもしないといけない。
 なので、テーブルがふえると、遅くなる。

3.第三正規形を行ったあとで、仕様変更になった場合、手が付けられなくなる。
 エンティティによって分ける第二正規形の場合、実体がある(エンティティがある)ので、
これが、なくなる可能性は低い(従業員が急になくなったり、商品がなくなることは、まずない)

 一方、第三正規形は、関係によって成り立っている。たとえば、部署と内線番号の場合、部署が決まれば、内線番号が決まるといったとき、第三正規形として、部署テーブルを作成し、そちらに内線番号を持っていくこともできる。

 しかし、この場合、部署が決まれば、内線番号が決まるという関係は、現時点の話であり、たとえば、「開発部に新人が入って大きくなったので、開発部は、内線を2つもつことにする」といって、部署と内線が、1対Nの関係になり、部署が決まっても(開発部と決まっても)、内線が決まらない(2本のどっちかわからない)っていう話は、あり得る。

 また、逆のケースも考えられる。「今日からリストラ部というのをつくったけど、ウィリアムのいたずら1人だけ配属なので、開発部といっしょに、電話を使ってくれ」といわれたら、1つの内線番号で2つの部署、どっちかわかんなくなる。

 つまり、もし、内線番号と部署の間に第三正規形が成立すると思って、元のテーブルに部署IDだけを入れておいた後で、上記のように、その「関係」を崩す事態が起こったら。。テーブルをきりなおすことになる。

 このように、第三正規形はエンティティの裏づけではなく、関係(1部署1内線)にもとづいて作成される場合があり、このようなケースでは、将来的なリスクを考えて、今、再三正規形にできても、あえてしないこともある。




自分へのメモ:

・データの説明から、3層スキーマにもっていって、概念スキーマから、
その作り方の方法として、正規化理論と、佐藤氏の方法を紹介する。

・データのところ、説明については、
 NASAの命名言語、OF LANGUAGEのありかがわかったら、
 書いておく(主要語(ドメイン)-分類語)




すみません。おもいつきをかいてるだけなので、意味通じないですよね。
ちゃんと、来年に入ったら、まとめますので、
こうご期待

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« メルマガについて&コメント... | トップ | Javaの画面表示-その4:J... »
最新の画像もっと見る

土日シリーズ」カテゴリの最新記事