システム構築の手順の基本になる考え方は、大きく分けて2つあります。 1つはプロセス中心、もう1つがデータ中心と呼ばれる設計方針です。
以前はプロセス中心設計の手法が多く、データ管理はファイルシステムを使用していました。
プロセス中心設計の目標は「いかに速くプロセスを動かすか」であり、プロセスを速く動かすために最適になるよう、ファイル設計が行われていました。プロセスをいかに速く動かすかを中心に設計が行われていたので、データが複数のファイルに冗長に存在することが普通の状態でした。
プロセス中心のデータ管理方法で一番の問題点は、データの冗長性にあります。あるデータが更新されるときには、複数箇所に存在するデータを漏れなく更新するための追加のアプリケーションを作成する必要があります。
また、アプリケーションを追加する際には、関連するすべてのファイルの影響を確認する必要があり、拡張性に問題が残ります。
これらの問題点を解決することができるのが、データ中心の設計方針です。データ中心の設計は、データの一元管理を重視した設計になっており、1データ1個所の原則に基づいてデータが管理されます。
企業で管理すべきデータを一元管理し、プロセスはそれを共有するという形になります。データが必ず1個所にのみ存在するようにするためには、データベース設計をする際に正規化という手順を踏み、冗長性を排除する必要があります。
正規化の作業を行うと、データを管理する表は、列数の少ない小さな表の単位に分けられます。ユーザーが求める画面のイメージや帳票を作成するためには、これらの表を再度、意味のある形で結合して加工する必要があります。ところが、この結合に時間がかかるため、必ずしもアプリケーション開発者にとってはうれしいことだけではないのです。
そこで、大量のデータを対象にデータを操作する必要がある場合には、データベースから必要なデータのみを抽出してファイルの形にし、それをインプットとしてアプリケーションをバッチジョブの形で処理し、アウトプットを成形することも考えます。
オンラインでデータを直接参照、加工するだけではなく、このようにオフラインでデータを処理する例としては、レポート出力や帳票の大量作成、分析のためのデータ抽出などが挙げられます。今でもこの方法は使用されています。
中村才千代
エディフィストラーニング インストラクター。データベース設計、システム構築の上流工程〜下流工程全般のコースを担当。「実践で使える」講義を行うことを心掛けている。
現在は、複数のSIerの人材育成を担当している。SE時代の経験を生かし、「業務を知っているエンジニアこそデータベース設計に関わるべきだ」ということ、「データベース設計に携わるエンジニアは、逆に業務を知っている人に知恵を貸してもらう必要がある」ということを伝えていきたい。
Copyright © ITmedia, Inc. All Rights Reserved.