デブサミ2006-1日目の所感まとめ
以下、1日目のセミナーについてまとめてみました。
(セミナー内容の詳細はあまり触れてません。他Blogで誰かがまとめてくれてるはず...(^^;)
◆楽々ERDレッスンLive(スターロジック:羽生さん)
セミナーで学んだ点、気になった点
- DBは超グローバル変数。いろんなプログラムがいろんなタイミングでアクセスしてくる。
- 従って保証する必要があるため、良いDB設計が必要!
- DB設計でのデータモデルをビジネスモデルと勘違いしない。あくまでDB設計は技術のひとつ
- 良いDB設計者になるために必要なこと
- SQLがすらすら書けること(副問い合わせが余裕で書けるくらい)
- プログラミングが当然のように出来る(プログラムからどんなことが求められているか知ることができないため)
- プログラムの都合で設計しない(変なテーブル構成になりやすいから)
- データはプロセスの後を追う。つまり、記録とは過去である。
- 綺麗なDB設計をするためにはネゴる力も訓練する必要あり(メンテを誰がやるかで揉めるから)
- マスタとはバリデーションか入力支援といったイベントのための支援機能のための情報
- マスタメンテでDB設計を練習しちゃダメ!
- イベント(〜する)、リソース(〜名)、属性(イベント、リソース以外)で振り分ける。これで7割はカバー可能。
- イベント、リソースはテーブルになる
- 属性はテーブルの列になる
- 決していきなり完璧を求めない。
- UIは必ずアウトプットのほうからインプットのほうで逆に流して調査すべし。アウトプット側に必要な情報を出すためにインプット画面があるわけで、まず「どんな情報が必要か?」見極めるためには後ろからせめるほうが確実。
- 100画面あったら、まずは1画面毎にテーブルの洗い出しを行い、最後にとりまとめるほうが結果的に早い上に進捗も管理しやすい。
- アジャイルDB設計!!
- 交差エンティティも別テーブルで外だし!!
- ABDのポイント
- 依存関係を全て外だしにする
- 依存関係を一元管理するテーブルは各アクティビティのイベント表すエンティティとなる
- まずは食事のレシート、伝票でERDの素振りをしる!!
所感
タブレットPCマンセー!!が第一印象。
だって、自分の周りでは37歳から38歳にいきなり書き直してるときに「え?」とか、「おおお」とか小声で言ってる人がいましたから。羽生さん曰く、「タブレットの良さを伝えるために命をかけた」と言ってましたが、成果出てますよん(w
ABDですが、実は以前渋谷の居酒屋でこっそり聞いていました。でも、再度整理された形で説明を受けるとより詳しくイメージが湧きました。あのCodd先生とかの理論や主キーのID化の説明を聞いてからABDの概念を図で説明されると相当インパクトがでかい上にすんなり理解できた人も多いのではないでしょうか?
個人的に主キーをコード体系で設定したがためにコード替えで非常につらい運用作業を経験したことがある自分からすると、主キーID化は絶対やっておいたほうがいいと考えています。EJB3やRailsとも相性が良いですしね。