yn2011's blog

技術メモ

楽々ERDレッスンでER図の描き方を学んだ

f:id:pokuwagata:20190108100308p:plain:w500

tl;dr

  • 楽々ERDレッスン+MySQL WorkbenchでER図を描く練習が捗る

取り組む前の自分のスキル・知識

  • 業務でER図を読むことはある
  • 業務でER図を描いたことはない
  • IE記法は分かる、IDEF1X記法は分からない

動機

  • 最近、実装より上のレイヤーの設計に関わる機会が増えた
    • ER図がないとデータ構造を議論しにくい(ER図がない場合は自分で描けるようにしたい)
    • ER図がないと自分もデータ構造を理解できない・問題に気づけない・忘れると思い出すのに時間がかかる
  • というわけでER図を描く訓練したい

楽々ERDレッスンとは

...それに加えて、私が設計のスキルを付けるために実際に行ってきた「身の回りのものを題材にERDを書く」という方法のサンプルを今回は8種類書き下ろさせていただきました。手前味噌ではありますが、本書をお読みいただき実践していただくことで「実務で具体的に手が動く」というレベルに達していただけると考えています。

楽々ERDレッスン(羽生章洋)|翔泳社の本より引用

  • ER図の演習問題と解答・解説が8セットも掲載されている
    • 題材の例としてはレシート、注文書、請求書等
    • 演習問題は全体の1/3ぐらいで、DBの論理設計周りの解説もあり
  • 何事も手を動かすことは正義

どうやってER図を描くか

  • MySQL :: MySQL Workbench: ビジュアルデータベース設計を使った
  • ツールはあくまで手段なので、学習コストの低さと描きやすさがそれなりに両立していれば良いと思った
  • 多少動きに癖はあるが、練習用・イメージを掴むのに使うのに丁度よいと感じた
  • ER図からテーブル定義のDML発行可能

8回分完走してみて

所感

  • 年末年始でコツコツ8回分進めた(内7回分のER図を実際に描いた)
  • 答えの図だけでなく、始めにイベント系、次にリソース系のエンティティを見つけて項目を足してリレーションを考えて...という一定の型に沿った解説が凄く良かった
  • (規模にもよるが)慣れれば一旦議論の場に出せるレベルのER図を描くのは難しくない。ツールに慣れていれば長くても30分ぐらいでできるタスクだと思った
    • 作図のための型があったので、1,2回解説を読んで描いたら後の回は大体自力で描けて大体合ってた
    • やっぱり図にすると業務の理解不足、考慮漏れが明らかになるので絶対描いたほうが良いと思った
  • IDEF1X記法が解答や例で使われていたので少し馴染めた(MySQL Workbenchが両方の記法を切り替えできたのも良かった)
  • あと掲載されている題材の画像がもっと大きいと良いなと思ったりもした(文字が細かくて読みにくい)

苦手意識

ER図を描いていて気づいた自分の弱点

  • イベントを中心にリソースとリレーションを繋ぐ発想が浮かびにくかった
    • (例)何となくUserテーブルの項目が多くなりがちだった
  • 帳票等のサンプルからイベントを見つける/切り分けるという業務分析の考え方や経験が足りないなと思った
    • (例)図書館の予約(リクエスト)申込書が、1つの紙面に予約と置いていない本のリクエストという2つの役割を担っている等
    • これはありがちで、設計が難しくなるパターンの1つだという実感がある

次は

  • 練習したのはあくまで架空のシステムのER図なので、あとは実際に稼働している多くのシステムと対峙して経験を積んでいくかという気持ち
  • 要件定義系の演習課題集も何冊か発売されているみたいなので少し興味ある