Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
データモデリング入門
-astah*を使って、TMの手法を使う-
【実習編】
2013年 1月 7日(初版)
2014年 7月12日(微妙に修正入れた版)
稲見 浩一
astah*を使って、TMの手法を使う Koichi Inami 2013 1
astah*を使って、TMの手法を使う Koichi Inami 2013 2
はじめに
本書は、「データモデリング入門」の実習編です。
TMの文法などは、本編を御覧ください。
書く道具として、チェンジビジョン社のastah*
Profes...
本書を使えば、astah*Professionalを使って、
TMの手法でER図を書いてみることができます。
それ以上のことは期待できません
一度書いてみれれば、自分の課題について書き始める
ことができるでしょう
その先は、良き先導者を...
astah*を使って、TMの手法を使う Koichi Inami 2013 4
ともかく書き始めよう(準備)
astah*を起動して、図→ER図で始める。
ダイアグラムエディタ
プロジェクトビュー
プロパティビュー
ツールパレット
表記は、I...
エンティティの色分け
TMの手法では、箱に色々と意味を持たせていま
す。astah*では、エンティティの色を使います
astah*を使って、TMの手法を使う Koichi Inami 2013 5
 左図は、ツール→プロジェクト
設定→プロ...
astah*を使って、TMの手法を使う Koichi Inami 2013 6
作図操作
次の図を書いてみる。
① ツールパレットからエンティティのアイコンを選
び、ダイアグラムエディタ上に置く
② 名称を「従業員」に変更する
③ 右クリック...
astah*を使って、TMの手法を使う Koichi Inami 2013 7
知っておくべきこと
モデルと図
エンティティを作成すると、プロジェクトビューに作成したもの
が現れていることに注意する
図から削除とモデルから削除は違う
...
モデルと図
astah*を使って、TMの手法を使う Koichi Inami 2013 8
①こっちがモデル
②こっちは、単に
図に過ぎない
③図から、単純に
Deleteしても、モデル
からは削除されない
プロジェクトビューから
「従業員」...
astah*を使って、TMの手法を使う Koichi Inami 2013 9
演習1
まずは、作図の練習です
次の画面からデータモデルを作成せよ
受注入力画面
品目コード 品目名称 受注数品目単価 受注金額
XXXXXX ××××××××...
astah*を使って、TMの手法を使う Koichi Inami 2013 10
先ずは、仕分ける
受注入力画面
顧客№
受注№
品目コード
顧客区分
顧客名称
受注日
品目名称
品目単価
受注数
受注金額
入力の複雑度合いに
よっては、この...
astah*を使って、TMの手法を使う Koichi Inami 2013 11
更に分解する
ラピュタの中から属性を割り振っていく
要確認
astah*を使って、TMの手法を使う Koichi Inami 2013 12
エンティティの類別と関係の作成
日付を持つのは受注のみで、イベントエンティティである
顧客と品目はイベントでないので、リソースエンティティ
受注入力画面で...
astah*を使って、TMの手法を使う Koichi Inami 2013 13
演習2
もう一問、こちらは過程を一通り追う問題です
次の画面からデータモデルを作成せよ
申請情報
品目コード:XXXXXX 品目名称: ××××××××××
...
astah*を使って、TMの手法を使う Koichi Inami 2013 14
以下を前提条件とする
①単価は、品目単価のことである
• 単価には、「正価格(種別コード=1)」と、「割引価格(種
別コード=2)」が有る
②付属品が「あり」に...
astah*を使って、TMの手法を使う Koichi Inami 2013 15
書いてみよう
では、画面と前提条件を基に書いてみましょう
まず、情報を仕分けし、エンティティを捕捉する
属性をわかる範囲で、エンティティに割り当てていく
...
astah*を使って、TMの手法を使う Koichi Inami 2013 16
仕分ける
申請
申請番号
品目コード
購入先コード
部門コード
配送場所コード
代替配送場所コード
申請日
品目名称
購入先名称
数量
単価種別コード
単価
希...
astah*を使って、TMの手法を使う Koichi Inami 2013 17
そのまま図にする
仕分け表の左側からエンティティに
astah*を使って、TMの手法を使う Koichi Inami 2013 18
属性を割り当て、エンティティを類別する
タイムスタンプが有るのは、「申
請」エンティティだけ。
他は、リソースとする
取り敢えず、関連する項目は全
て配置してみた
astah*を使って、TMの手法を使う Koichi Inami 2013 19
関係を考え、リレーションシップを引く
前提条件④より、
再帰の構造が読
み取れる
前提条件⑤より
astah*を使って、TMの手法を使う Koichi Inami 2013 20
単価の多義を解消する
astah*を使って、TMの手法を使う Koichi Inami 2013 21
部分集合や構造を検討する。
前提条件②より
前提条件③より
希望納期が無い場
合を認めるなら外に
出す(候補は1
つ?)
astah*を使って、TMの手法を使う Koichi Inami 2013 22
検証と考察
練習問題だから、事実に対する検証はできないので、形
式的なものである
考察すべき点や疑問点は、次の通り
その時点の単価を申請に記録しないか?
...
astah*を使って、TMの手法を使う Koichi Inami 2013 23
演習3
次のテーブル定義を基にデータモデルを作成せよ
取引番号
注文番号
注文日
顧客番号
顧客名
商品番号1
商品名1
商品単価1
注文数量1
注文金額1
出...
astah*を使って、TMの手法を使う Koichi Inami 2013 24
ルール通り書けば、こんな感じかな
少し前提を変えてみる
①いくつかの注文をまとめて
出荷したい
②月毎にまとめて請求したい
astah*を使って、TMの手法を使う Koichi Inami 2013 25
考慮すべき点は何か?
取引番号で一連に括っているこ
とで、逆にまとめて扱うことがで
きなくなっている
① 取引番号を廃止してみる
② 注文に対する出荷である
③...
astah*を使って、TMの手法を使う Koichi Inami 2013 26
例えば、こんな図にして検討する
まとめ出荷に対応
まとめ請求に対応
どうしても、これらが一連の
「取引」と示したい場合に
概念的なスーパーセットと
して置くこと...
「TM」って何?
ちょっと考察してみましょう
TMでは、「対象表」「対応表」や「みなしエンティティ」と名前
を付けていますが、astah*で書くと、どれも同様にエンティ
ティに見えます(TMとして使うには色分け必須)
TMでは、関係の仕方...
astah*を使って、TMの手法を使う Koichi Inami 2013 28
ご参考:関連図書
どちらも、是非ご一読ください
データベース設計論 T字形ER
関係モデルとオジブェクト指向の統合をめざして
佐藤正美 著
出版社: ソフトリサ...
最後に
本編の「最後に」でも書きましたが、独自に始めるより、
既に実践できる人と一緒に始めることが肝心です。
本書は、あくまでも書き方、及びastah*の使い方の練
習です。できるだけ早く、自分が課題としている実際の
業務を一部でも書いてみ...
astah*を使って、TMの手法を使う Koichi Inami 2013 30
おまけ
現行システムの良し悪しを見極める一つの基準
夜間バッチが朝までに終わらないとか以外にも・・・
• OLTP系のシステムに関し、
RDBMSを使っている...
Upcoming SlideShare
Loading in …5
×

データモデリング入門【実習編】-astah*を使って、TMの手法を使う-

6,859 views

Published on

先日公開しました「データモデリング入門」の実習編です
本編の方では「astah*を使って」の部分がみえにくかったかと思います
自習もできますが、できるだけ教えてくれる人を見つけてください

Published in: Data & Analytics
  • Be the first to comment

データモデリング入門【実習編】-astah*を使って、TMの手法を使う-

  1. 1. データモデリング入門 -astah*を使って、TMの手法を使う- 【実習編】 2013年 1月 7日(初版) 2014年 7月12日(微妙に修正入れた版) 稲見 浩一 astah*を使って、TMの手法を使う Koichi Inami 2013 1
  2. 2. astah*を使って、TMの手法を使う Koichi Inami 2013 2 はじめに 本書は、「データモデリング入門」の実習編です。 TMの文法などは、本編を御覧ください。 書く道具として、チェンジビジョン社のastah* Professinalを使います。 Community版ではER図が書けないので、必ず Professional版を使ってください ダウンロードし、起動後50日までは、試用版として利用可 能です 最も理想的な実習は、既に書ける誰かに相談しながら 実際の業務を書いてみることです 演習では、架空のお話にしかできません。事実なのか検証 できないし、可能性の検討にも意味を持ちません
  3. 3. 本書を使えば、astah*Professionalを使って、 TMの手法でER図を書いてみることができます。 それ以上のことは期待できません 一度書いてみれれば、自分の課題について書き始める ことができるでしょう その先は、良き先導者を見つけるのが問題解決の近 道だと思います astah*の使い方自体は、チェンジビジョン社のサイ トを見てください。 チュートリアルのページ データモデリング編 或いは、リファレンスマニュアルをご覧ください astah*を使って、TMの手法を使う Koichi Inami 2013 3
  4. 4. astah*を使って、TMの手法を使う Koichi Inami 2013 4 ともかく書き始めよう(準備) astah*を起動して、図→ER図で始める。 ダイアグラムエディタ プロジェクトビュー プロパティビュー ツールパレット 表記は、IEを選択 しておいてください
  5. 5. エンティティの色分け TMの手法では、箱に色々と意味を持たせていま す。astah*では、エンティティの色を使います astah*を使って、TMの手法を使う Koichi Inami 2013 5  左図は、ツール→プロジェクト 設定→プロジェクトのプロパ ティ設定→新規ERエンティ ティの型の色、で設定してい る例です  ツール→システムプロパティ→ 新規ERエンティティの型の色 での設定も有ります  複数人でモデルを書く場合に は、あらかじめ設定を共有し ておきましょう
  6. 6. astah*を使って、TMの手法を使う Koichi Inami 2013 6 作図操作 次の図を書いてみる。 ① ツールパレットからエンティティのアイコンを選 び、ダイアグラムエディタ上に置く ② 名称を「従業員」に変更する ③ 右クリックメニューから主キーの追加、或い はCTRL+Kキーで、「従業員番号」を入 力する ④ 右クリックメニューから属性の追加、或いは CTRL+Rキーで、「従業員名」を入力する ⑤ 「部門」も同様に作成する ⑥ エンティティを1つ置き名称を「従業員.部 門.対照表」とする ⑦ 依存型リレーションシップを従業員から引く ⑧ 依存型リレーションシップを部門から引く
  7. 7. astah*を使って、TMの手法を使う Koichi Inami 2013 7 知っておくべきこと モデルと図 エンティティを作成すると、プロジェクトビューに作成したもの が現れていることに注意する 図から削除とモデルから削除は違う ダイアグラムエディタ上のエンティティを単純にDELキーで消して もプロジェクトビュー上の定義は変わらない 右クリックメニューから「モデルから削除」すれば、プロジェクト ビューからも削除される プロパティビューの活用 先ず、エンティティにしろ、リレーションシップにしろ、各属性 にしろ、「定義」が書けるので活用すること エンティティの型であったり、多重度であったり、依存と非依 存の切り替えなども、ここでもできる オンラインマニュアル参照
  8. 8. モデルと図 astah*を使って、TMの手法を使う Koichi Inami 2013 8 ①こっちがモデル ②こっちは、単に 図に過ぎない ③図から、単純に Deleteしても、モデル からは削除されない プロジェクトビューから 「従業員」を選んで、ダ イアグラムエディタにド ラッグ&ドロップすると、き ちんと甦る
  9. 9. astah*を使って、TMの手法を使う Koichi Inami 2013 9 演習1 まずは、作図の練習です 次の画面からデータモデルを作成せよ 受注入力画面 品目コード 品目名称 受注数品目単価 受注金額 XXXXXX ×××××××××× 9999,999 9,999,999 受注№:9999 受注日:9999-99-99 顧客№: 999999 顧客区分:×× 顧客名称:×××××× 書き方や意味については、(更に自分で学習できる様に) 佐藤正美氏の「データベース設計論ーT字形ER」の実践編に 有る例題を題材にしています。詳しくは、図書を参照下さい。
  10. 10. astah*を使って、TMの手法を使う Koichi Inami 2013 10 先ずは、仕分ける 受注入力画面 顧客№ 受注№ 品目コード 顧客区分 顧客名称 受注日 品目名称 品目単価 受注数 受注金額 入力の複雑度合いに よっては、この段階を省 き、直接エンティティを 作っていっても良い
  11. 11. astah*を使って、TMの手法を使う Koichi Inami 2013 11 更に分解する ラピュタの中から属性を割り振っていく 要確認
  12. 12. astah*を使って、TMの手法を使う Koichi Inami 2013 12 エンティティの類別と関係の作成 日付を持つのは受注のみで、イベントエンティティである 顧客と品目はイベントでないので、リソースエンティティ 受注入力画面で、顧客№と品目コードを入力している 単価の置き場所以外 には、基本的に事実と の確認のみである。
  13. 13. astah*を使って、TMの手法を使う Koichi Inami 2013 13 演習2 もう一問、こちらは過程を一通り追う問題です 次の画面からデータモデルを作成せよ 申請情報 品目コード:XXXXXX 品目名称: ×××××××××× 申請日:9999-99-99申請番号: 999999 購入先コード:XXXXXX 購入先名称: ×××××××××× 数量:999 単価種別コード:XXX 単価:99,999 希望納期:9999-99-99 あり なし付属品: あり なし添付資料: 部門コード:XXXXXX 部門名称: ×××××××××× 使用者氏名:××××× 使用者電話番号: 9999999999 配送場所コード:XXXXXX 代替配送場所コード:XXXXXX
  14. 14. astah*を使って、TMの手法を使う Koichi Inami 2013 14 以下を前提条件とする ①単価は、品目単価のことである • 単価には、「正価格(種別コード=1)」と、「割引価格(種 別コード=2)」が有る ②付属品が「あり」について、資料添付が対象となる • 付属品が「なし」については、資料添付が対象にならない ③使用者は「社員」に限らないので、「社員番号」を使わな いで、氏名を記述する ④配送場所は、申請した品目を配送して貰う場所のことで ある • 配送場所には、それぞれに代替場所の指定が可能で、代替 場所コードには、配送場所コードを使う ⑤品目毎に購入先が決められている
  15. 15. astah*を使って、TMの手法を使う Koichi Inami 2013 15 書いてみよう では、画面と前提条件を基に書いてみましょう まず、情報を仕分けし、エンティティを捕捉する 属性をわかる範囲で、エンティティに割り当てていく 配置先が明らかでないものは、ラピュタに置いておく エンティティを類別する タイムスタンプが置ければイベント、でなければリソース 関係を考え、リレーションシップを引いていく リソースとリソースの関係の場合は、対照表を置く 多値と多義を考える 部分集合や構造を検討する サブセットになるものを検討する みなしに該当するものを探す
  16. 16. astah*を使って、TMの手法を使う Koichi Inami 2013 16 仕分ける 申請 申請番号 品目コード 購入先コード 部門コード 配送場所コード 代替配送場所コード 申請日 品目名称 購入先名称 数量 単価種別コード 単価 希望納期 付属品(あり/なし) 添付資料(あり/なし) 部門名称 使用者氏名 使用者電話番号 ※ 前提条件の①で、単価種別コードの値が1か2しかないこと から、敢えて一つの識別子と考える必要は無いと考える
  17. 17. astah*を使って、TMの手法を使う Koichi Inami 2013 17 そのまま図にする 仕分け表の左側からエンティティに
  18. 18. astah*を使って、TMの手法を使う Koichi Inami 2013 18 属性を割り当て、エンティティを類別する タイムスタンプが有るのは、「申 請」エンティティだけ。 他は、リソースとする 取り敢えず、関連する項目は全 て配置してみた
  19. 19. astah*を使って、TMの手法を使う Koichi Inami 2013 19 関係を考え、リレーションシップを引く 前提条件④より、 再帰の構造が読 み取れる 前提条件⑤より
  20. 20. astah*を使って、TMの手法を使う Koichi Inami 2013 20 単価の多義を解消する
  21. 21. astah*を使って、TMの手法を使う Koichi Inami 2013 21 部分集合や構造を検討する。 前提条件②より 前提条件③より 希望納期が無い場 合を認めるなら外に 出す(候補は1 つ?)
  22. 22. astah*を使って、TMの手法を使う Koichi Inami 2013 22 検証と考察 練習問題だから、事実に対する検証はできないので、形 式的なものである 考察すべき点や疑問点は、次の通り その時点の単価を申請に記録しないか? リソース間の関係を点検する 購入先と配送場所に関係は無いか? 品目と配送場所に関係は無いか? 各リソースエンティティと申請への関係が、非依存か依存か? TMには無い考え方、ルールであるため規定しにくい 結果的に、イベント1つだけなので、配置に関する言及は できない。複数のイベントが有るなら、時系列に並べる
  23. 23. astah*を使って、TMの手法を使う Koichi Inami 2013 23 演習3 次のテーブル定義を基にデータモデルを作成せよ 取引番号 注文番号 注文日 顧客番号 顧客名 商品番号1 商品名1 商品単価1 注文数量1 注文金額1 出荷番号 出荷日 請求番号 請求日 請求金額 商品番号2 商品名2 商品単価2 注文数量2 注文金額2 商品番号3 商品名3 商品単価3 注文数量3 注文金額3 注文金額計 前提: ① 注文番号、出荷番号、請求番号は、 取引番号とは別に、独自に裁番さ れている ② 注文については、同時に3つまで の商品が注文可能である ③ 注文ごとに出荷する ④ 注文ごとに請求する 続く 続き
  24. 24. astah*を使って、TMの手法を使う Koichi Inami 2013 24 ルール通り書けば、こんな感じかな 少し前提を変えてみる ①いくつかの注文をまとめて 出荷したい ②月毎にまとめて請求したい
  25. 25. astah*を使って、TMの手法を使う Koichi Inami 2013 25 考慮すべき点は何か? 取引番号で一連に括っているこ とで、逆にまとめて扱うことがで きなくなっている ① 取引番号を廃止してみる ② 注文に対する出荷である ③ 注文に対する請求である モデルを変更してみよう!
  26. 26. astah*を使って、TMの手法を使う Koichi Inami 2013 26 例えば、こんな図にして検討する まとめ出荷に対応 まとめ請求に対応 どうしても、これらが一連の 「取引」と示したい場合に 概念的なスーパーセットと して置くこともできる という様な「検討にも、モデルが使える 可能性がある」という演習問題でした 既に3つまでと いう制限は不 要にできる
  27. 27. 「TM」って何? ちょっと考察してみましょう TMでは、「対象表」「対応表」や「みなしエンティティ」と名前 を付けていますが、astah*で書くと、どれも同様にエンティ ティに見えます(TMとして使うには色分け必須) TMでは、関係の仕方に名前を付けることで、整理、分析し やすくなっているのだと思います TMという手法は、非常に独自なものに見えるけど、表記と しては標準的なものでも使えるのです 手順としてわかりやすく、間違いなくできるようにルールを作り、 示したものと考えることができます 正美さんの図書などの解説には何やら難しい言葉が出てき ますが、実際にモデルを書いてみると、どんなに実践的な手 法なのかわかることと思います astah*を使って、TMの手法を使う Koichi Inami 2013 27
  28. 28. astah*を使って、TMの手法を使う Koichi Inami 2013 28 ご参考:関連図書 どちらも、是非ご一読ください データベース設計論 T字形ER 関係モデルとオジブェクト指向の統合をめざして 佐藤正美 著 出版社: ソフトリサーチセンター (2005/09) ウィトゲンシュタイン『論理哲学論考』を読む 野矢茂樹 著 出版社: 筑摩書房 (2006/04) 佐藤正美さんが言う「f-真」とか「l-真」って何だよ?と 思った方、是非こちらの本の前から1/3位を読んでみ てください。 何故モデルを書くのか、一発で納得できるはずです。
  29. 29. 最後に 本編の「最後に」でも書きましたが、独自に始めるより、 既に実践できる人と一緒に始めることが肝心です。 本書は、あくまでも書き方、及びastah*の使い方の練 習です。できるだけ早く、自分が課題としている実際の 業務を一部でも書いてみましょう その際に、支援してくれる人を見つけてください 最も良い選択肢は、佐藤正美さんに相談することです そこは何となく敷居が高いかもと思った方は、私にでもご 連絡ください データマネジメントの一環として始めるなら、DAMA日 本支部にコンタクトする方法も有ります astah*を使って、TMの手法を使う Koichi Inami 2013 29
  30. 30. astah*を使って、TMの手法を使う Koichi Inami 2013 30 おまけ 現行システムの良し悪しを見極める一つの基準 夜間バッチが朝までに終わらないとか以外にも・・・ • OLTP系のシステムに関し、 RDBMSを使っている場合の判 断基準と考えて下さい • データベース設計書の各テーブル 定義の列数を見てみる • 特殊な例を除き、20列を超える 様なテーブルが有るのは、危険な 兆候!(更新日など、どのテーブ ルにも設けてある固定的な列は 除く) • 100列以上のテーブルが幾つも 有るのは、残念としか言えません

×