データモデルは時空を越える
TRANSCRIPT
てらひで 2015/2/21
#syoboben
データモデルは
時空を超える!?
~移動する情報と追跡可能性~
てらひで @terahide27
認定スクラムマスター認定スクラムプロダクトオーナー
アジャイルコンサルタントアーキテクト
てらひで @terahide27
http://gigazine.net/news/20141206-anime-2015winter/
深夜アニメのカバレッジ90%以上
今日お話すること
•データモデルってなんだっけ?
•履歴と更新
•データと移動
やらないこと
•むずかしいお話
•詳しい説明
•アニメのお話
データモデル
データ - Wikipedia伝達、解釈、処理などに適するように形式化、符号化されたもの、または再度情報として解釈できるものをいう。
-snip-
端的に言うと、意味のあるデータが
「情報」となる。→情報
http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF
モデル - Wikipedia-snip-
システムやプロセスに関して、計算や予測の助けとするために、単純化した記述のことで、特に数学的なそれのこと[1]。現実よりも単純化した説明 →モデル (学術)、数理モデル。
http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%AB
データモデル
意味のあるデータ=
『情報』 を
単純化した記述のこと
今日のお題1
つぶやきシステム
ここ!
35,582回ツイート
35,582件の履歴
簡単なモデル
ユーザ
ツイート
1
0..*
履歴
ツイート値更新日時
履歴 おまけ
ツイート
変更履歴1..*
1
今日のお題2 受発注
むずかしい(>_<)
整理•データ–注文、発注、商品、などなど
•やりたいこと–注文があった商品を発注先へ納品する–二重出荷、未出荷などの誤出荷はNG
•考えること–倉庫に商品がなかったらどうなるんだろう?–などなど
やり方
•一番細かい単位でデータを保持
–トランザクションの単位
•すべての履歴を残す
Sample
注文
*
1
明細商品
個数値
1 *
※いろいろ割愛
明細を更新する可能性のある最少単位で
使いづらい(>_<)
なにが起こるか
•更新はCreateとDeleteだけになる
•参照はがっちゃんこしてみればいい
用法容量をお守りの上適切にお使いください
性能には気を付けてね
•時間(現在・過去・未来の受注)
•空間(倉庫から発送先へ)
つまり移動!
時空を超える
TEA
•AccountPattern–アナリシスパターン(ISBN:4894716933)
•絶版orz
•Transaction(トランザクション)
•Entry(エントリー)
•Account(資源)
資源
移動の対象となるもの
名前 :商品商品名:みかん単位 :箱個数 :在庫数+入荷数ー出荷数
エントリー
資源をどのくらい変更したか
個数:30 個数:-1
入荷の時 出荷の時
ここまで
エントリー 資源* 1
トランザクション
どこからどこへ移動したか
名前:入荷 名前:出荷
入荷は入荷元から倉庫への移動
出荷は倉庫から出荷先への移動
ここまで
エントリー 資源* 1トランザク
ション
*1
倉庫には今いくつみかん箱がありますか?
質問
1 30箱
2 -1箱
3 -3箱
エントリー
26箱
資源
1 入荷
2 出荷
3 出荷
トランザクション
今日のお題1
つぶやきシステム
つぶやき
ツイート変更
ツイート
<Account><Entry>
* 1ツイート変更
<Transaction>
11
※冗長だね
つぶやき
ツイート変更 ツイート<Account><Entry>
クソモデルw1 追加 クソモデルw
* 1
つぶやき
ツイート変更 ツイート<Account><Entry>
天使モデル1 追加 クソモデルw
2 変更 天使モデル
* 1
つぶやき
ツイート変更 ツイート<Account><Entry>
1 追加 クソモデルw
2 変更 天使モデル
3 削除
* 1
天使モデル
履歴
ツイート値更新日時
ご参考•オージス総研 アナパタ勉強会のページ
–第6章 在庫管理と会計 -前半-
http://www.ogis-ri.co.jp/otc/hiroba/others/AnaPatStudy/
まとめ
•データモデルはテーブル設計とは限らない
•履歴を残そう
•更新を無くそう
•必要があればトレーサビリティにも気を使おう
われわれによい 学びの場を与えてくださったしょぼちむはえらい
拍手!