Web教材一覧>
システム調達>
入出力設計
コードの重要性
キーワード
識別機能、分類機能、順番機能、連番法、桁別分類法、10進分類法、表意法
コードの必要性
- 識別機能
例えば、同姓同名の人がいる場合、コード化することにより一意性が得られます。
- 分類機能
例えば、商品コードの先頭を大分類、2桁目を中分類・・・などとすることにより、大分類が食品だけのデータを処理するとか、売上高を大分類で大計、中分類で中計・・・をとるなどグループ化が容易になります。
- 順番機能
一覧表を出力する順番になります。商品売上表や商品在庫表など多様な表があるとき、同じ順番で並んでいるほうが便利です。
例えば、売上データと商品名称と照合処理をする場合、売上データファイルと商品マスタファイルを商品コートでソート(整列)すると処理効率がよくなります。
- 入力簡素化機能
長い商品名や特殊文字のある氏名などを誤りなく入力するのは困難です。例えば6桁の数字コードにしておけば、正しく簡単に入力できます。さらに、コードにチェックディジットを設定しておけば、誤りチェックができます。
- 固定長化機能
商品名には短いものも長いものがあります。長いものに合わせれば記憶容量の無駄になりますし、さらに長い商品名が出現したら、プログラムを変更しなければなりません。可変長項目にすることもできますが、取り扱いが面倒になります。
コード設計の重要性
- 多様な利用と多様な関係者
例えば商品コードや得意先コードは、販売システムでも会計システムでも使います。営業部の都合だけで設定すると経理部では使いにくいものになる危険性があります。関係先が集まり、全社的な観点から設計する必要があります。
これが徹底していないと、「部品の購入先に製品をどの程度買ってもらっているか」というような資料を作成したいとき、仕入先コードと得意先コードの体系が異なると、名寄せができず、資料が作れなくなります。
企業が合併したとき、同じ部品に異なるコードが付いているのが通常です。これでは、部品在庫もつかめず、適切な発注もできません。これらの共通化が大きな問題になります。
- 体系変更の困難性
西暦2000年問題というのがありました。それまで1995年を95としていたのですが、2000年になると2095年と誤認して処理される危険が大きな問題になったのです。年の項目を2桁から4桁に変更するだけの対策に、大企業では数億円の費用と数年の期間を必要としたのです。
商品が多様化して商品コードを長くするにもかなりのコストがかかります。
- コード再利用の危険性
それを避けるために、取り扱いをやめた商品のコードを新商品で使おうとするのは危険です。データウェアハウスなど、長期的なデータを分析する場合に、誤った判断をする危険が生じます。
- 不適切な例
社員コードに所属部門や役職を含ませたらどうなるでしょうか? この瞬間では、部門別集計が容易になるし、名簿が部長や課長が先にくるといった効果があります。ところが人事異動や昇格はよく発生しますし、部門の再編成も発生します。そのため、過去の人事データが事実上使えなくなってしまいます。
- コードの多様性
コードは商品や得意先など物理的なモノだけでなく、販売、出荷、移動、返品、廃棄などイベントに関するコード化も必要になります。これらのコードが適切でないと、情報システムが必要以上に複雑になってしまいます。
- コード設定の先行性
情報システムを開発するとき、プログラムの仕様設計やデータベースの設計より以前にコードが確定している必要があります。さらには、コード体系が明確になっていれば、要件分析や外部設計において誤解を少なく簡潔な表現ができるのです。
標準コード
コードには、JISの都道府県コードやEDIによる商品コード(JANコード)など、標準化されたコードがあります。企業間取引など社外とのデータ受け渡しに使う場合には、可能な限り、それを用いるのが適切です。
これに関しては、別章で取り扱っています。
コードの種類
- 連番法(シーケンスコード)
最も基本的な方法で、コードの対象を発生順に番号を振る方法です。顧客コードや社員コードなどに使われます。都道府県コードは北から南に北海道(01)~沖縄(47)になっています。
利点:単純である。空きが少なく桁数を少なくできる。
欠点:グループ化ができない。コードからの連想が困難
- 桁別分類法(グループクラシフィケーションコード)
商品コードなどによく使われます。コードの先頭を大分類、次を中分類などにして、後を連番にするのが通常です。
利点:グループ処理がしやすい。コードの意味が分かりやすい。新商品が適切な分類に収まる。
欠点:桁数が長くなる。ある分類に集中しがちである。分類方法の変化への対応が困難
対策:多くの特性を取り込もうとせず安定的な分類だけに限定。その他の特性は商品マスタなどマスタファイルの属性として持つのが適切。
- 10進分類法(デシマルコード)
図書館の図書分類が代表的。全体を10分割し、更にそれを10分割する。
利点:階層化した分類が無限に追加できる。
欠点:階層化できない分類には無理がある。桁数が可変長になり扱いにくい。固定長にすると桁数が長くなる。
- 区分分類法(ブロックコード)
市区町村コードや電話番号など。ある共通の特性に基づいて、任意の大きさのブロックに区分して、各ブロック内に順番号を割り振ります。
長所:桁別分類法よりも柔軟
短所:桁で分類できないので、処理プログラムが複雑になる
- 表意法(ニモニックコード)
略称をコードにしたもの。統一的な観点から略称命名基準を設定することが多い。
長所:意味が分かりやすい。記憶しやすい。
短所:桁数が長くなる。分類機能や順序機能が使えない。
- 合成法
各種の方法を組み合わせたもの。社員コードを入社年度と連番法を組み合わせるなど。多くのコードは、何らかの合成をしている。