データモデリングの手法をあなたは持ってますか? at 関西IT勉強宴会
関西IT勉強宴会で、データモデリングについて聞いてきた。
データモデリングの手法をあなたは持ってますか?と皆に聞かれた気がした。
ラフなメモ書き。
【参考】
やさしいデータベース設計 要件定義から運用までの勘どころ | 衛藤 豊 |本 | 通販 | Amazon
「やさしいデータベース設計」出版記念講演 in 新大阪 - connpass
事業分析・データ設計のためのモデル作成技術入門 | 佐藤 正美, TMの会 |本 | 通販 | Amazon
システム開発・刷新のための データモデル大全 | 渡辺 幸三 |本 | 通販 | Amazon
業務別データベース設計のためのデータモデリング入門 | 渡辺 幸三 |本 | 通販 | Amazon
生産管理・原価管理システムのためのデータモデリング | 渡辺 幸三 |本 | 通販 | Amazon
業務システムのための上流工程入門 | 渡辺幸三 |本 | 通販 | Amazon
【1】渡辺さんのライブモデリングは、いつ見ても、すごいと感じる。
佐野さんよりいきなり、お題は、大学生に対するストレスチェックみたいなアンケートシステムに対し、データモデルを書いてみましょう。
渡辺さんは、大学と学生のテーブルを書いた後、こんな感じでホワイトボードに書き始める。
アンケートと質問が必要ですね。
質問はアンケートごとに作られるので行番号があり、アンケート回答ごとの何らかの制約は回答値制約、アンケートに基づき大学生の心身状態に対応する必要があるので、対応区分と対応制約があるね。
次に、アンケート実施した結果は、学校別アンケートが必要で、その元ネタは生徒別回答だね。
ここで、生徒別回答テーブルのカラムを書き出した時、さらっと「(対応区分)」と書いて、動的参照関係が出てくるね、と書き下す。
そして、アンケート結果から、学生の心身状態に対応する集計結果が必要なので、対応区分別SUM(サマリ)も必要だね。
最後に、学校別にもアンケート集計結果が必要で、学校別対応区分SUMがいるね。
ここで、学校別対応区分SUMへ、外部キー制約や親子関係を貼っていく。
では、このデータモデルを皆で見てみましょう。
ここで、「対応区分」という言葉が、アンケートシステムの目的にフィットしていないことに気づき、本来は学生の心身状態に応じて支援する対策を立てることであるから、「支援区分」と書きましょう、と赤字で書き直した。
衛藤さんが絶賛されていた点は、一度書いたデータモデルを赤字で「支援区分」に見直して修正したこと。
まさにモデラーですね。
データモデルに対し、最後まで美学というか、こだわりをもって、少しでも用語に違和感があれば最後まで粘って、用語を修正し、モデルを修正する。
ドメイン駆動設計で言う、ユビキタス言語にこだわっている。
モデラーの美学、コンサルの美学を僕も感じた。
【2】渡辺さんのデータモデリングの最大の利点は、DBMSの制約条件が自然に出てくることだ。
具体的には、外部キー制約だけでなく、ユニーク制約などだ。
ユニーク制約は、国民年金番号みたいに別の主キーがもう一つあるね、とか、取引管理番号みたいにもう一つの主キーがいるはず、という業務ルールを意識して考えなければ、出てこないだろう。
特に、動的参照関係という、DBMSでは実装できず、論理的なER図だけでしか表現できないような制約条件も、渡辺さんのデータモデリングでは自然に出てくる。
動的参照関係は、TM手法でも他のデータモデリング手法でも、明示的に導出される場面を見た時がない。
たぶん、渡辺さんの過去の経験値から、こういう手法が編み出されているのかなと想像する。
こういうシーンは過去にも見た時がある。
10年以上前だが、花束問題のデータモデルに、テーブルの派生関係にさらに2次識別子を設けて、受払いの過去データと予定データを1つにまとめる手法は、目からウロコだった。
第39回IT勉強宴会の感想~花束を作る花屋の業務モデルをT字形ERと三要素分析法で比較する: プログラマの思索
【3】TM手法と渡辺さんの関数従属性だけのモデリング手法は、どちらが優れているのか?
見た感じでは、渡辺さんの関数従属性だけのモデリング手法が生産性が高く、分かりやすい。
実際、今日はいきなり、佐野さんから、アンケートシステムのお題を出されて、渡辺さんはあっという間にホワイトボードにデータモデルを書き上げた。
しかも、実際にアンケートシステムは既に作られていて、その画面を見ながら答え合わせすると、そのデータモデルはほぼ同じ。
一方、TM手法では、2つのリソースの対照表を作っては、業務レベルで必要なのか吟味する作業を延々と続けるので、正確ではあるが、モデルを完成させるまでに手間がかなりかかる。
また、外部キー制約、ユニーク制約とか、特に動的参照関係の制約までは、業務ルールを意識しなければ出てこない。
【4】ただし、TM手法では、2つのメリットがあると思う。
1つは、リソース数とイベント数を数えて、リソース数>イベント数であれば、新しいイベントを生み出すことで新しい事業を生み出す可能性があると指摘できること。
リソース数がビジネスの可能性に関係する理由: プログラマの思索
もう一つは、「データモデリング入門-astah*を使って、TMの手法を使う-」はとても良いモデリング資料: プログラマの思索に書いたように、2つの業務の順番を入れ替えることで、コストやリードタイムを劇的に改善できる可能性を指摘できること。
たとえば、「伝統的なセーターの製法は「糸を染めてからセーターを編む」」だが、「染色から販売まで6ヶ月もかかるので、見込生産になる。在庫が蓄積されやすい。」
しかし、「ベネトンは「セーターを編んでから染める」手法へ製造順序を逆転した」ことで「製造期間を短縮できるので、受注生産や直販が可能になった。在庫も減らせる。」
「データモデリング入門-astah*を使って、TMの手法を使う-」はとても良いモデリング資料: プログラマの思索
つまり、TM手法では、データモデルから新しい事業や業務を提案できる仕掛けを持っている。
その点が非常に面白いと思っている。
【5】渡辺さんのデータモデリングは何度か見ているが、今日みたいに、いきなりライブモデリングしていく姿に刺激を受けた。
関数従属性というたった一つのルールだけで、データモデルをTOBEとして描くことができるわけだ。
真似できないが、色々考えてみたいと思う。
【補足】
データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けて | 杉本 啓 |本 | 通販 | Amazon
実践的デ-タモデリング入門 (DB Magazine SELECTION) | 真野 正 |本 | 通販 | Amazon





最近のコメント