できるエンジニアになるためのちょい上DB術/第2章 概念設計
2.3 概念設計の手順(1/3)
実際の手順としては次のような処理手順を考えることができます。
【STEP1】
対象領域を明確にする
【STEP2】
エンティティを洗い出す
【STEP3】
リレーションシップを検討する
【STEP4】
属性と一意識別子を洗い出す
【STEP5】
概念データモデルを検証する
具体的に手順を追って説明します。
2.3.1 対象領域を明確にする
まず、対象領域を明確にします。
トップダウンでシステム構築を考えると、範囲はその企業全体、または関連企業を含めた広範囲になる場合も少なくありません。
また、いくつかの組織を横断して構築されているマスタの再構築などを考えると、あれもこれもと範囲が無制限に広がってしまう場合があります。
そこで、システム構築を始める際には、最終的なシステム化の全体像やシステム化の目標をつかんでおいて、フェーズを区切って開発対象範囲を絞っていきます。
対象領域が定義できたら、概念設計の手順に入ります。
ここでは、トップダウンとボトムアップを組み合わせた設計工程を紹介します。
詳細設計の作業に入る前に、概念設計全体の処理の流れをつかんでください。
トップダウンとボトムアップ
概念設計は、理想的なあるべき姿をモデル化したいというフェーズですが、現実に存在しているシステムを無視するわけにはいきません。
理想と現実のバランスをとる必要があります。
しかし、いきなり現在の業務の細かい仕様の確認から入ってしまうと、現実に縛られた設計しかできなくなってしまうため、まず高い視点から広い視野でシステム化の作業を行う姿勢が大切です。
対象業務範囲の中で大まかな業務フローを事前に決め、その方針に従ってモデル化していきます。
これがトップダウンにあたるフェーズです。
その後、具体的な業務に従って、詳細に現在の業務を分析し、必要なデータを漏れなく洗い出していきます。
これがボトムアップにあたるフェーズになります。
トップダウンで概略ER図を作成する
システム化の範囲を決め、企業として管理すべき情報の方向性を検討します。
方向性が決まったら、それに従って必要なエンティティを抽出します。
たとえば、コンビニエンスストアで販売分析を強化するという方針であれば、分析の軸となるエンティティを抽出する必要があります。
今までは店舗の情報だけ管理していたところを、地域性を考慮して店舗ごとに売れ筋商品を分析するという観点から、店舗の上位に地域情報をエンティティとして追加するなどの施策を追加します。
地域情報としては、住所情報だけではなく、近辺の公共施設(学校、公園、駅、病院)や各施設のイベントカレンダーの情報なども付加して、人や車の流れを予測できるようにすると購買計画にも役立てることができるかもしれません。
利益率を重視するのであれば、会計の支出を構成する勘定科目をもう少し詳細に定義し直すところから分析が必要かもしれません。
トップダウンでの分析は、今までの業務では考慮されていなかったエンティティの抽出が主な目的です。
このため、トップダウンで作成する概略ER図では、まだ正規化を考慮する必要はありません。
エンティティと一意識別子程度の属性が抽出されていれば十分です。
リレーションに関しては、多対多が残っていても問題ありません。
詳細な属性の検討や正規化は、この後のボトムアップのフェーズで検討します。
トップダウンのフェーズで作成するER図を概略ER図と呼びますが、概略ER図ができた時点で、下記の点に留意してユーザに対するレビューを行い、確認します。
この時点でレビューを行う相手は主に経営者または管理職と呼ばれる人たちで、細かい点ではなくシステムの将来性を思い描ける人たちを対象にします。
- ユーザと開発者の間でシステム化の方針や方法に誤解、誤認識がないか
- 将来的な拡張性は考慮されているか
- 追加すべきエンティティはないか。現行と比較して追加したエンティティがあるとしたら、その判断基準は何か
ボトムアップで詳細ER図を作成する
大まかにエンティティの抽出ができたら、詳細にエンティティとリレーションシップを見直します。
エンティティは属性を漏れなく抽出し、リレーションは多対多を見直して、1対多に分解します。
属性を抽出するために、帳票や伝票、画面などを分析してすべての属性と識別子を抽出します。
リレーションシップを見直して多対多を分解することによって、正規化の作業が実行され、このフェーズでは現在の業務で使用されているすべての情報を整理して正規化された詳細ER図を完成します。
ER図は、初期の議論の段階からER図を検討したドキュメントを残しておきます。 時間が経つと、議論した当人でさえ、なぜこのようなエンティティがあるのか、なぜ関連があるのかわからなくなるのはよくあることです。
途中から参加した人がいたり、担当者が変わってしまう場合はなおさらです。
これらのドキュメントがないと、毎回最初に戻ることさえあり得るのです。
また、概念設計では、シノニムはそのままエンティティ名や属性名として残しておきます。
1つの名前に決めるのは、論理設計の最終フェーズでかまいません。
ドキュメント | 内容 |
---|---|
全体概略ER図 | 全エンティティと関連がわかる図 属性は識別子まで |
全体詳細ER図 | 全エンティティと関連がわかる図 全属性も表示 1枚に収まらないので、全体を貼り合わせる |
概略議事録 | すべてのエンティティと関連がなぜこうなったのかを示す特に重要キュメント なぜこうなったのかという大筋の方針、理由を表す |
詳細議事録 | 各エンテイティごとに議論した内容を示す |
データ項目 新旧対応辞書 |
シノニム、ホノニムや新規データ項目を明らかにする 新旧対応が目的 異なる部署間で、同一のモノを異なる呼称にしているデータ項目があれば、その呼称の意味するところを説明する |
データ項目 対応辞書 |
データ項目、属性、桁数、解説 |
表2-1 概念設計で作成されるドキュメント
解説トレーナー