FC2ブログ

コード化、マスタ化

 今回はコード化、マスタ化について考えてみたいと思います。

 前回までに作成した生徒名簿テーブル、家族テーブルで既にコード化されているものがあります。それは「生徒番号」と「家族番号」です。コードとはそれ単体で意味を持つものではなく、他の項目やテーブルとの関連において役割を果たすものと考えてもらえばいいと思います。

 TELやメールアドレスもコードの一つと考えられなくもないですが(現実にはTELを顧客テーブルの主キーにしている例もあります)、その値内容自体に意味があり、単独で存在理由があるので、ここで言うコード化とはちょっと意味が違います。
 コードとは本来無ければないでも済む場合も多く(事実EXCELなので名簿を管理するだけなら、必要ないかもしれません)、データベースシステムとして厳密にデータを管理する上で必要となってくるものです。

 実は他に既にコードとしての意味をもっている項目があります。それは「郵便番号」です。郵便番号とはそれに対応する住所があってこそ意味をもつものです。ACCESSには郵便番号辞書テーブルというのが内蔵されていて、郵便番号を入力すると、それをキーに辞書テーブルが索引され、住所を引っ張ってくるようになっているのです。郵便番号辞書テーブルのように名称等、コードが持つ固定の情報を管理するテーブルをマスタといいます。その意味で言えば、生徒名簿自体も生徒の固有情報を管理しているわけでマスタといえます。マスタに対応する用語としてはトランザクション(テーブル)というものがあります。生徒名簿に起因するトランザクションとしては例えば成績テーブルなどです。

 トランザクションの例をもっと揚げますと、顧客マスタに対する受注データ。会計の世界で言えば勘定科目マスタに対する仕訳データ。Webのアクセスログもトランザクションデータです。つまり、日々刻々流動する取引や情報の流れを記録したデータという事になりますか。(そういう意味では何らかの日付は必須項目になります)

 コード化(マスタ化)する目的の一つにはデータ量の節約があります。郵便番号が必ず入力されると仮定すれば、都道府県・市区郡までは生徒名簿テーブルに保持しなくとも、本来は良いことになります。必要な時に郵便辞書マスタから取り出せば良いわけです。又、もう一つの目的としてはマスタの内容が変更されても整合性を保てるというのがあります。つまり、市区郡名が変わることになってもマスタの方を修正すれば、生徒名簿自体のデータは変更する必要はありません。
 ただ一般的には郵便番号と住所フィールドは両方持ちます。郵便番号が入力されないケースもあり得るし、辞書テーブルが保有している住所と実際の住所の表記が微妙に違う事も想定できるからです。

 つまりマスタが持っている情報をコードを持っている側のテーブルでも保有した方がいいかどうかはケースバイケースになります。例えば商品コードと商品マスタで例えれば、通常商品名や商品の価格は商品マスタで持ちますが、価格が頻繁に変わるようなケースですと、受注データに単価にもっていなかった場合(その都度商品マスタから索引する)、価格を変更すると過去の取引データの価格まで変わってしまいます。やはりその時々の単価を記録しなければなりませんので、通常は受注データにも価格をもちます(商品名はマスタ持ちで構わないと思いますが)。

 生徒名簿テーブルと家族テーブルで他にコード化出来るものがあるかどうかですが、厳密に言えば、性別・クラス・続柄等があります。つまり、性別であれば「男」「女」と値そのものをデータとして持つのではなく、コードとして「1」「2」ともつわけです。そして名称を管理するマスタを別に作り、そのマスタに「男」「女」を保有します。ただ、この場合に関して言えばそこまでするメリットはあまり感じません。データ量的にも大した違いはないし、性別の種類が今後増えるわけでもなく、呼び名が頻繁に変わるわけでもないからです。

 よってコードとしてはこれ以上追加しないことにします。念の為、他に追加する項目がないか確認しておきます。生徒が入学した日と卒業した日を記録しておいた方がいいと思われるので、「入学年月日」と「卒業年月日」を追加しておきます。

 最新の生徒名簿のマインドマップを掲示しておきます。
生徒名簿テーブル 家族テーブル
 次回では洗い出した項目の属性の決定について考察していきます。
関連記事
スポンサーサイト



テーマ : データベース
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
全記事表示リンク

全ての記事を表示する

月別アーカイブ
カテゴリ
お問い合わせ
まずはこちらのフォームより御一報下さい。

名前:
メール:
件名:
本文:

検索フォーム
RSSリンクの表示
アクセスランキング
[ジャンルランキング]
コンピュータ
560位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
80位
アクセスランキングを見る>>
ブログランキング

FC2Blog Ranking