システムの寿命はコードで決まる!:データベースエンジニアへの道(4)(1/3 ページ)
本連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する。(編集局)
主な内容
▼はじめに
▼コードの基礎知識
▼安定したコード体系を設計する
▼データベースをコードに依存しないように設計する
▼まとめ
コードはシステムの寿命に大きな影響を与えます。今回は、コードとデータベースエンジニアの関係を通してこのことを解説します。ここでいうコードとは、顧客ID、受注伝票番号など、業務上利用されるデータを識別・分類するため、各データの本来の名前とは別に割り当てられる記号のことです。
データベースエンジニアにはデータ設計とデータベース設計の2つの役割があります。そして、データベースエンジニアにはデータ設計の一環として安定したコード体系を設計し、データベースをコード体系に依存しないように設計することが求められます。
システムを長く使い続けるためには、
- コード体系を長期にわたり変更せず利用できるようにすること
- コード体系とデータベース設計との結合度を小さくすること
が重要です。なぜなら、コードのけたが足りなくなったり、コードの分類が業務にそぐわなくなったりして、コード体系の見直しを行うことになると、業務・システムの変更に大きなコストがかかってしまうからです。しかも、このときコード体系とデータベース設計との結合度が大きいと、システム改修やデータ移行にさらに膨大なコストがかかってしまいます。逆にいえば、コード体系が安定し、データベース設計との関係が疎であれば、上記のリスクが減り、業務ルールが安定し、システムの寿命が延びることにつながるのです。
それでは、コードとはどのようなものかをまず整理したうえで、コード設計の手法を筆者の経験から得た雑学的知識を交えつつ解説します。
Point
コードに関するデータベースエンジニアの役割は以下の2つ。
- 安定したコード体系を設計すること
- コード体系に依存しないデータベースを設計すること
コードの基礎知識
まず、コードの特徴をいくつかの観点からまとめ、コードの基礎知識を整理しましょう。
(1)機能
コードには識別機能と分類機能の2つがあります。どんなコードも識別あるいは分類の少なくともどちらか一方の機能を持ちます。
(2)文字種、チェックディジット
文字種は数字が多いようです。そして見た目の分かりやすさや入力ミス防止のため、適宜英字や区切り文字を使用したり、末尾にチェックディジットを付けたりするものもあります。
(3)各けたの有意性
特定のけたに意味を持つものを「有意コード」といい、持たないものを「無意コード」といいます。有意コードは複数の無意コードを組み合わせたものともいえます。
(4)標準コード・独自コード
コードは企業が独自に作成するものもありますが、ISOやJISといった標準化団体・各種業界団体が作成する標準コードもあります。標準コードはそれ自体、各企業の業務に利用されるものですが、企業独自にコードを作成する際にも大いに参考になります。
コラム1
インストアコード〜標準コードの独自コードへの応用例〜
現在私たちが手に入れることができる商品のほとんどにはバーコードが付いています。バーコードに使われているコードは日本ではJANコードというもので、流通コードセンターという組織が管理しています。しかし、JANコードは全13けたで、しかもメーカーコードと商品コードを合わせても10けたにすぎないのに、どうしてこれだけ多くの商品に割り当てられるのでしょうか。
それを可能にしているのがインストアコードです。インストアコードはJANコードのうち、先頭4けたが0220〜0229のものを特定企業の内部でのみ有効なコードとし、それぞれの企業が独自に採番できるようにしています。こうすることでスーパーの魚の切り身1つまでバーコードで管理できます。グローバルIPアドレスとローカルIPアドレスの関係に似ていますね。
Copyright © ITmedia, Inc. All Rights Reserved.