今回は前回に引き続き、小学二年生の息子に概念データモデリングを体験してもらった時の話をしたいと思います。前回は簡単なデータモデルを使い、読み方を教えてみましたが、思ったよりも理解できている様子でした。今回は、少々無茶かもしれませんが、実際にデータモデルを描いてもらうことにしました。
データモデリングをしてもらうためには、まず題材を決めないといけませんが、小学二年生が無理なくモデリングできる題材とは何でしょうか。
弊社の概念データモデリング手法では、業務で使われているシステムの画面や帳票の他、システム化されていない台帳や紙の伝票などもモデリングの題材に用います。つまり、ボトムアップ分析を基本としたモデリング手法です。経験を要するトップダウンモデリングと比べて、ボトムアップモデリングは確実性の高い手法ですが、使用する伝票の類は小学生にとっては馴染みが無く、現実的とは言えません。そこで、ボトムアップ手法よりも洞察力は必要になりますが、まずは自分自身の身の回りの「モノ」を対象にモデリングしてもらうことにしました。
さて、データモデリングの対象が決まったので、小学二年生の息子がどのような管理対象、つまりエンティティを認識しているのか、紙に書いてもらいました(息子にはエンティティという言葉は使わず、入れ物を入れるイメージで「箱」という教え方をしています)。すると、学校、クラス、生徒、友達、家族、おじいちゃんとおばあちゃん、習い事の先生、習い事の生徒、という箱が出てきました。小学二年生らしくシンプルな感じですが、この程度でも箱同士の関係性は表現できそうなので、箱同士の関係には「1対多」や「1対1」の関係があることをおさらいしてから、箱と箱の間に関係線を引いてもらいました。
まず、学校からクラス、クラスから生徒に1対多の関係線を引きました。次に、習い事の先生から習い事の生徒に1対多の関係線を引きました。実際には習い事(水泳と英会話)もクラス分けがあるのですが、この時は、どの生徒がどの先生に教わっているのかということを表現したかったようです。と、ここまでは前回教えた通りなので問題無かったのですが、「家族」と「おじいちゃんとおばあちゃん」や「友達」との間に関係線を引いてもらったところ、線が入り乱れてまるで人物相関図のようになってしまいました。どうやら、ここでの「家族」は世帯単位ではなく、私や妻、息子自身と弟といった世帯の構成員を表していたようで、そのために少々混乱してしまったようです。
息子には世帯という概念がまだ無いので、このように考えるのは当然ですが、このまま家族からあちこちに関係線を引いてしまうと、例えば息子個人とその友達の関係というものを正確に表現できなくなるため、家族(=世帯構成員)の一部、つまり息子自身という部分集合から、友達(=息子の友達)に1対多の関係線を引いてもらうことにしました。
「友達」についても「学校の友達」つまり生徒の一部と、「違う学校の友達」が含まれていることが分かったため、それら部分集合を合わせた全体集合を「友達」ということにしました。集合の勉強をしたことが無い息子にとっては難しかったのかもしれませんが、「学校の友達」+「違う学校の友達」=「友達」という足し算で説明したところ理解できたので、集合関係の表現も意外といけるのでは?という感触を得ることができました。
実際に描いてもらったモデルでは、家族や生徒、習い事の生徒の一人が息子自身であることや、違う学校の友達が通っている学校も表現したいなど、それなりに複雑な集合関係の表現が必要になりました。
今回、実際にモデリングのまねごとをしてもらって、一番不思議に思ったのが、息子が楽しそうにモデリングしている点でした。単純にお絵かきが楽しいのか、目に見えない箱同士の関係性を可視化することに楽しさを感じていたのかは定かではありませんが、いずれにせよ、もう少しモデリングしてもらわないと真意は分からなそうです。
ということで、親の仕事に付き合ってもらっている感じがして少し後ろめたいところはありますが、次回は「モノとコト」の「コト」、つまり出来事の方もモデリングしてもらい、「データ」という概念を少しは理解してもらった上で、小学二年生としての概念データモデルを一旦完成させてもらおうと考えています。