私たちパクテラ・コンサルティング・ジャパン(以下:パクテラ)は世界基準のナレッジを有し、デジタル領域に強みを持つグローバルカンパニーです。
大規模のプロジェクトを進めていく上で、従業員のボトムアップが常に求められている現状から、社内研修制度の一環としてITのスペシャリストによるセッション「PETS」を開催しております。
本投稿ではその第4回目の内容をレポートさせていただきます。是非、ご一読ください。
PETSとは?
PETSとはPactera Engineer Training Session のそれぞれの頭文字を取ったITのエキスパートを養成するためのパクテラ・ジャパン独自の社内研修です。毎回、外部講師を招待し、日本のDX化を促進させる上での専門性や思考力をセッションを通じて身に付けてまいります。
講師
川島 義隆
株式会社ウルフチーフ 代表取締役
大手SIerで20年間、多数のWebアプリケーション開発プロジェクトのアーキテクチャ設計を担当、また社員教育、技術者採用、研修講師などを努め、2018年10月アーキテクチャ設計専業の株式会社ウルフチーフを創業する。その他、技術コミュニティを中心に登壇多数。
前回の振り返り
今回の内容は前回のPETSでの演習問題の解説が中心になります。上のスライドの条件を基に、旅行予約サイトのER図作成をしていただきます。
まだ、前回の講義内容をご覧になられていない方は、下記のストーリーをご一読ください。
解説
エンティティの抽出
ER図作成にあたりまずはシステム上記録する必要のあるエンティティを抜き出します。
以上のようにリソース・イベントエンティティを抜き出してみます。ここで重要なのがまずはイベントエンティティを漏れなく抽出することです。今回の場合、旅行予約サイトの第一目的はユーザーが予約でき、その予約に対し問題なく入金が行われることです。そのため一連の業務フローを遂行し、キャッシュが生みだされるイベントエンティティをしっかりと認識しておかなければなりません。条件が複雑でも、最初に動詞(イベント)を抜き出し、そのイベントに必要な名詞(リソース)を新たに抽出しましょう。
イベントエンティティからER図の作成
各エンティティを抽出した後、予約~入金までの業務フローを時系列準に左→右へ並べ、ER図のアウトラインを設計します。
以上のER図を作成するポイントが以下になります。
・予約は複数日程まとめてできるので、明細を作る。(注文明細と同じくヘッダー=ディティールのパターン)
・予約が複数日の場合、連泊になるので、チェックインとチェックアウトのイベントを別にする。
・宿泊実績は、必ず予約キャンセルかチェックイン・アウトのどちらかになるので、スーパータイプとして「宿泊orキャンセル実績」を作り、請求とリレーションを持たせる。
・宿泊実績から作られた時点で請求額が確定するので、請求イベントとして請求額を持たせる。
・当日持ち合わせが無いなど、入金が複数回にまたがることなどを考慮して、1つの請求について複数の入金ができるようにする。
イベントに必要なリソースの参照
ER図の骨格ができた次は、イベントに必要な記録するべきリソースを図に落とし込みます。
まずは、イベントに必要なリソースを洗い出し、それを踏まえ、エンティティを作成します。
今回の場合、「予約」というイベントに対して記録の必要性があるリソースを抽出していきます。イベントは予約だけではなく、チェックインや請求と他にもあるので、それぞれのイベントに必要なリソースを抜き出し、整理していきましょう。
そして、この作業を繰り返していき、業務フローに従って整合するエンティティ同士を繋ぎ合わせていくとER図の完成になります。
ER図の完成
以上のプロセスを踏みながら作成した完成形が以下になります。
一見複雑に見えるかもしれませんが、イベントを抽出し時系列順に並べ、ER図のアウトラインを作り、イベントに必要なリソースを細分化していくことで効率的なシステム保守を実現させるデータモデリングの設計ができるのです。
終わりに
以上が今回のPETSのレポートでした。いかがでしたか?
こちらをご覧になられた方の力に少しでもなれたら幸いです。
難解な条件でも以上のようなプロセスを丁寧に歩めば、ER図は比較的容易に作成できます。
パクテラでは引き続き、日本のDX化を促進させる活動の一環として社内研修の内容をご報告させていただきます。是非、今後ともよろしくお願いいたします。
最後になりますが、ご一読いただきありがとうございました。
今までのPETSに関する投稿はこちらになります。ご興味のある方は、是非ご覧ください。
パクテラ・コンサルティング・ジャパン株式会社's job postings