fc2ブログ
 

Technology へようこそ
ここは技術者の「経験」と「ノウハウ」のブログです


2005年09月26日

物理DB実装の話

「新論理DBを作成し、新物理DBに展開する」
どこかの教本に出てきそうなフレーズですが、われわれは日常、DB設計を行うときに、
ほとんど意識せず、このことを行ってしまっています。
正規化の概念、意味、意義を知って設計を行っている人はどれくらいいるでしょうか?

私のモットーは第3正規形が基本。第3正規形にするということは、
・詳細設計書を書く人ができるだけ苦労しないこと
・プログラマが苦労をせずにDBに関連したコーディングができること
を満たす最低条件です。

さらに、以下のようなガイドラインに沿って設計を進めます。

・項目名は項目辞書を使って統一する
・DBの
・char型は使わず、varchar型を使用する
・smalldatetime型は使用しない
・日付型以外はnullを許可しない
・金額に関する項目は できるだけ金額を表す型にする

・項目の初期値をおおまかに決めておく(例えばint型なら0など)
・ドメイン(有効桁数)を設定し、全体を統一する
・PKは必ず設定する
・追加するIndexは必要なもののみとし、多くても5個以上にならないようにする
・FKは基本的には設定しない
・トリガは使わない
・ユーザ関数は多用しない(無用なオーバーヘッドが発生するため)
・ユーザ定義型は多用しない

ある程度設計が進んだ時点で、機能とのすり合わせを行い、性能要件が満たせない
可能性のある部分については導出項目を設けるようにしています。

また、格納件数が数百万件を越える可能性のあるテーブルは分割方法を工夫
することも・・・。発想の転換が必要な場合もありますよ。

この記事に対するコメント


この記事に対するコメントの投稿














管理者にだけ表示を許可する



この記事に対するトラックバック
トラックバックURL
http://comfair2.blog24.fc2.com/tb.php/13-85453005
この記事にトラックバックする(FC2ブログユーザー)