Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yoshitaka Kawashima
40,611 views
イミュータブルデータモデル(世代編)
第1回 しょぼべん ( http://connpass.com/event/10849/ ) で話しした、イミュータブルデータモデル(世代編)です。
Software
◦
Read more
90
Save
Share
Embed
Embed presentation
Download
Downloaded 208 times
1
/ 16
2
/ 16
3
/ 16
4
/ 16
5
/ 16
6
/ 16
Most read
7
/ 16
8
/ 16
9
/ 16
10
/ 16
Most read
11
/ 16
Most read
12
/ 16
13
/ 16
14
/ 16
15
/ 16
16
/ 16
More Related Content
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
by
Yoshitaka Kawashima
PDF
PostgreSQLアンチパターン
by
Soudai Sone
PPTX
データモデリング・テクニック
by
Hidekatsu Izuno
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
強いて言えば「集約どう実装するのかな、を考える」な話
by
Yoshitaka Kawashima
PostgreSQLアンチパターン
by
Soudai Sone
データモデリング・テクニック
by
Hidekatsu Izuno
What's hot
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
PDF
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
PDF
なぜデータモデリングが重要なのか?
by
Yoshitaka Kawashima
PDF
MySQLで論理削除と正しく付き合う方法
by
yoku0825
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
Tackling Complexity
by
Yoshitaka Kawashima
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
PDF
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
PDF
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PDF
データベース設計徹底指南
by
Mikiya Okuno
PDF
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
PDF
ユーザーストーリー駆動開発で行こう。
by
toshihiro ichitani
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
PDF
例外設計における大罪
by
Takuto Wada
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
by
Koichiro Matsuoka
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
なぜデータモデリングが重要なのか?
by
Yoshitaka Kawashima
MySQLで論理削除と正しく付き合う方法
by
yoku0825
Where狙いのキー、order by狙いのキー
by
yoku0825
Tackling Complexity
by
Yoshitaka Kawashima
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
ドメイン駆動設計 本格入門
by
増田 亨
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
データベース設計徹底指南
by
Mikiya Okuno
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
ユーザーストーリー駆動開発で行こう。
by
toshihiro ichitani
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
例外設計における大罪
by
Takuto Wada
Viewers also liked
PDF
JobStreamerではじめるJavaBatchのクラウド分散実行
by
Yoshitaka Kawashima
PDF
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
PDF
Droid kaigiプレゼン
by
Suguru Oho
PDF
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
by
kyon mm
PDF
データモデルは時空を越える
by
terahide
PDF
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
by
Shinichi Kozake
PDF
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
PDF
プログラミング言語Clojureのニャンパスでの活用事例
by
sohta
PDF
Java web application testing
by
Tokuhiro Matsuno
PDF
DB設計でこだわりたい三つの要素
by
Takahiro YAMADA
PDF
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
by
Yuki Anzai
PDF
マテリアルデザインを用いたデザインリニューアル [フリル編]
by
YUKI YAMAGUCHI
PDF
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
by
Shuji Kikuchi
PDF
Dependency injection in PHP 5.3/5.4
by
Fabien Potencier
PPTX
良いコードとは
by
Nobuyuki Matsui
PDF
エスイーが要件定義でやるべきたったひとつのこと
by
Yoshitaka Kawashima
PDF
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
by
bitter_fox
PDF
片手間MySQLチューニング戦略
by
yoku0825
PDF
If文から機械学習への道
by
nishio
PPTX
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
by
Hiroshi Ito
JobStreamerではじめるJavaBatchのクラウド分散実行
by
Yoshitaka Kawashima
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
Droid kaigiプレゼン
by
Suguru Oho
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
by
kyon mm
データモデルは時空を越える
by
terahide
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
by
Shinichi Kozake
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
プログラミング言語Clojureのニャンパスでの活用事例
by
sohta
Java web application testing
by
Tokuhiro Matsuno
DB設計でこだわりたい三つの要素
by
Takahiro YAMADA
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
by
Yuki Anzai
マテリアルデザインを用いたデザインリニューアル [フリル編]
by
YUKI YAMAGUCHI
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
by
Shuji Kikuchi
Dependency injection in PHP 5.3/5.4
by
Fabien Potencier
良いコードとは
by
Nobuyuki Matsui
エスイーが要件定義でやるべきたったひとつのこと
by
Yoshitaka Kawashima
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
by
bitter_fox
片手間MySQLチューニング戦略
by
yoku0825
If文から機械学習への道
by
nishio
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
by
Hiroshi Ito
More from Yoshitaka Kawashima
PDF
Grokking Simplicity探訪
by
Yoshitaka Kawashima
PDF
ブルックスのいう銀の弾丸とは何か?
by
Yoshitaka Kawashima
PDF
Are Design Patterns Dead?
by
Yoshitaka Kawashima
PDF
ソフトウェアにおける 複雑さとは何なのか?
by
Yoshitaka Kawashima
PDF
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
PDF
ソフトウェア設計における 意思決定とそのレビューの秘訣
by
Yoshitaka Kawashima
PDF
本番障害に至る病
by
Yoshitaka Kawashima
PDF
システムダウンのひみつ
by
Yoshitaka Kawashima
PDF
Mavenの真実とウソ
by
Yoshitaka Kawashima
PDF
アンチフラジャイルの世界
by
Yoshitaka Kawashima
PDF
Atomic Architecture
by
Yoshitaka Kawashima
PDF
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
by
Yoshitaka Kawashima
PDF
ウォーターフォールとアジャイルのフェアな比較
by
Yoshitaka Kawashima
PDF
How to find tech books
by
Yoshitaka Kawashima
PDF
Antifragile Java - Java Day Tokyo 2017 D1-E1
by
Yoshitaka Kawashima
PDF
たとえ日本人同士でも必要な異文化理解力
by
Yoshitaka Kawashima
PDF
SIerにとっての越境 @ DevLOVE 199
by
Yoshitaka Kawashima
PDF
Antifragile Clojure
by
Yoshitaka Kawashima
PDF
Boilerplate vs Magic
by
Yoshitaka Kawashima
PDF
既婚プログラマの時間捻出術
by
Yoshitaka Kawashima
Grokking Simplicity探訪
by
Yoshitaka Kawashima
ブルックスのいう銀の弾丸とは何か?
by
Yoshitaka Kawashima
Are Design Patterns Dead?
by
Yoshitaka Kawashima
ソフトウェアにおける 複雑さとは何なのか?
by
Yoshitaka Kawashima
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
ソフトウェア設計における 意思決定とそのレビューの秘訣
by
Yoshitaka Kawashima
本番障害に至る病
by
Yoshitaka Kawashima
システムダウンのひみつ
by
Yoshitaka Kawashima
Mavenの真実とウソ
by
Yoshitaka Kawashima
アンチフラジャイルの世界
by
Yoshitaka Kawashima
Atomic Architecture
by
Yoshitaka Kawashima
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
by
Yoshitaka Kawashima
ウォーターフォールとアジャイルのフェアな比較
by
Yoshitaka Kawashima
How to find tech books
by
Yoshitaka Kawashima
Antifragile Java - Java Day Tokyo 2017 D1-E1
by
Yoshitaka Kawashima
たとえ日本人同士でも必要な異文化理解力
by
Yoshitaka Kawashima
SIerにとっての越境 @ DevLOVE 199
by
Yoshitaka Kawashima
Antifragile Clojure
by
Yoshitaka Kawashima
Boilerplate vs Magic
by
Yoshitaka Kawashima
既婚プログラマの時間捻出術
by
Yoshitaka Kawashima
イミュータブルデータモデル(世代編)
1.
イミュータブルデータモデル ジェネレーションズ(世代編) kawasima
2.
たくさんの方々に見ていただきありがとうございます! http://www.slideshare.net/kawasima/ss-40471672
3.
入門編の続編として、 リレーショナルデータモデルで もっとも厄介な「世代」を扱いかた についてお話します。 入門編まだの方はそちらをまずご覧ください!
4.
ありがちな例 日付属性をもったリソース? イベントではないよなぁ… 商品コード 適用開始日 商品名 価格 注文番号 注文日 注文番号 商品コード 適用開始日 注文 注文明細 商品(R)
5.
「イベントは更新不可」の性質を利用 「過日のイベント」と「未来の予定イベント」 は区別して扱おう ● 過去の価格は変更できない ● 未来の価格は変更できるし、変更の予定を取り消すこともできる
6.
イベントの予実として扱う 商品コード 商品名 商品コード 適用予定日 価格 注文番号 注文日 商品コード 適用開始日 (適用終了日) 価格 値付け実績(E) 商品(R) 注文番号 商品コード 予定価格 注文明細 注文 適用予定日が来たものを値 付け実績として反映させる
7.
簡単ですね!
8.
もう少し複雑な例
9.
例題 番組ID 番組名 番組ID 芸能人ID 芸能人ID 芸能人名 番組名も、出演者の名前も改編期やウッチャンによって変え られるが、名前が変わっても同じものとみなして扱いたい。 番組 レギュラー出演 芸能人 番組名
適用開始日 ウンナンの気分は上々。 1996年7月19日 - 1999年3月19日 新・ウンナンの気分は上々。 1999年3月26日 - 2003年3月28日 ウンナンの気分は上々。 2003年4月4日 - 2003年9月26日 芸能人名 適用開始日 海砂利水魚 〜2001年9月27日 くりぃむしちゅ〜 2001年9月28日〜
10.
ありがちな汚モデル 番組ID 適用開始日 (適用終了日) 番組名 番組ID 番組適用開始日 芸能人ID 芸能人適用開始日 レギュラー出演開始日 レギュラー出演終了日 芸能人ID 適用開始日 (適用終了日) 出演者名 番組 芸能人レギュラー出演 ※ちなみにこの適用開始日・終了日の問題は、”動的参照関係”を考慮しなくて はならないという、難しめの問題もあります。 http://watanabek.cocolog-nifty.com/blog/2011/12/post-a77b.html
11.
サロゲートキーを導入する 番組ID 番組コード 適用開始日 (適用終了日) 番組名 番組コード 芸能人コード レギュラー出演開始日 レギュラー出演終了日 芸能人ID 芸能人コード 適用開始日 (適用終了日) 出演者名 番組 芸能人レギュラー出演 課題: ID属性がIdentifiableではない。 少しはスッキリしたが…
12.
イミュータブルモデル fashion 番組ID 番組ID 出演者ID レギュラー出演開始日 レギュラー出演終了日 番組ID 適用開始日 番組名 芸能人ID 芸能人ID 適用開始日 芸能人名 番組 芸能人 レギュラー出演 番組属性 芸能人属性
13.
こういうモデルを キレイめに扱いたくば イミュータブルなデータベースを使おう!
14.
こういうモデルを キレイめに扱いたくば イミュータブルなデータベースを使おう!
15.
Datomic ● UPDATEというものは存在しない。 ● スキーマ全体でトランザクション管理され ており、履歴が積み重なっていてもデフォ ルトで最新のデータにアクセスされる。 ● すべてのデータはEAVTのタプルで格納 される。 http://www.datomic.com E Entity A Attribute V
Value T Transaction
16.
ノーデプロイ分散ジョブ実行環境 JobStreamer job-streamer.github.io 近日発表 そんなDatomicを使ったプロダクトを作っております… よろしくお願いします!
Download