本記事の概要
本記事は、杉本啓氏の著作『データモデリングでドメインを駆動する』の、参考資料や関連資料を各章ごとにまとめたものです。
『データモデリングでドメインを駆動する』の読者が、さらに好奇心を持って学びたい方の一助になれば幸いです。
また、他にお勧めの書籍があれば当記事にコメントか、私(@tunemage on X)にDMいただけると幸いです。
本記事の読み方
[参考資料]として挙げている資料は、『データモデリングでドメインを駆動する』中で直接言及されている資料です。
[関連資料]として挙げている資料は、『データモデリングでドメインを駆動する』の各章と内容が関連していると考えられる資料を、一読者の私が独自に選んだものです。
後者は私の独自判断なので、『データモデリングでドメインを駆動する』のメインテーマから逸れていたり著者の杉本啓氏のスタンスや見解と違っていたりする可能性があります。
「本書で」など、書名が明記されていない箇所は『データモデリングでドメインを駆動する』についての言及です。
「◯◯と思います」など、文中で主語が省略されている箇所は私(@tunemage)の見解です。
「はじめに」の参考資料・関連資料
[関連資料]『パッケージから学ぶ4大分野の業務知識』(梅田 弘之)
「はじめに」中で、本書を読み進めるのに多くの前提知識がなくてもいいとしつつも、
組織の中で営業や製造、経理といった部門の方々がどのように分業しているかについて、ある程度の理解があったほうが読みやすいとは思います。(杉本 , 2024 ,p.ⅴ)
と書かれています。
たしかに本書を通読していく中で、会社組織の役割分担や、伝統的にどのような業務領域がシステム化の対象になってきたかなどを知っていた方がイメージが湧きやすく、かつ著者の意図も理解しやすいと感じました。
そういった事を俯瞰的に知るために私が最も良書と感じる書籍が『パッケージから学ぶ4大分野の業務知識』です。
実際のパッケージソフトウェア(いわゆるERPソフトウェア)をもとに、「会計」「販売」「生産」「人事」の4大分野について、それぞれの業務知識をコンパクトにまとめた良書です。個人的にも情報システム部門担当者として業務全体を俯瞰するために大変役立ちました。
なお、『データモデリングでドメインを駆動する』では基幹系システムから会計システムを除いたシステムを業務システムと呼称していますが、資料によって業務システムを指す範囲は異なる点は、注意が必要です。
[関連資料]「業務システムの概要とその選択肢」(tunemage)
私の作成した資料も挙げておきます。こちらも伝統的な業務システムの区分を俯瞰的に見る参考になると思います(『パッケージから学ぶ4大分野の業務知識』と比較するとかなり荒削りではありますが)。
[関連資料]「情報系基幹システム」(株式会社フュージョンズ)
謝辞中に、情報系基幹システムという概念の言及があります。
氏が提案した「情報系基幹システム」という概念は、本書におけるSoMとよく対応しています。(杉本 , 2024 ,p.ⅵ)
この用語は著者の杉本啓氏が経営するフュージョンズ株式会社が提唱するコンセプトであり以下のページに説明があります。
「情報系基幹システム」概念の理解は、本書の理解に必須ではありませんが、本書の区分でいうSoMの理解を深めるのに役立つかもしれません。
[関連資料]『Web世代が知らないエンタープライズシステム設計』(IT勉強宴会)
こちらはNPO法人IT勉強宴会の編著です。謝辞にお名前が並ぶ、佐野初夫氏、渡辺幸三氏も寄稿しています。
こちらも本書を読み進めるのに必須ではありませんが、杉本氏が多くの着想を得たコミュニティの空気感を知るのに役立つかと思います。
「第1章」の参考資料・関連資料
[関連資料]「ローコード開発コミュニティ」
データモデリングの対象となる一例として挙げられた「宅配クリーニング」については、ローコード開発コミュニティで共有された事例を参考にしているそうです(杉本 , 2024 ,p.8)*1。
同コミュニティのホームページは以下です。
[関連資料]「オムニチャネル」
P.9で言及されているオムニチャネルは、2010年代より小売業界を中心に浸透した概念です。
IDC Retail Insightsのレポートでたびたび強調された事で業界に浸透していったそうです。
個人的な経験では2016年頃には業務システム(特に販売管理システム)の開発現場においても、たびたび話題に上がっていた記憶があります。
オムニチャネルについては下記の記事の説明が分かりやすかったので掲載します。
[関連資料]「ベスト・オブ・ブリード」
ベスト・オブ・ブリードは、システム業界においてはERP等の統合製品と対比的に用いられている概念です。
『データモデリングでドメインを駆動する』においても、基幹システムの選択肢として「ベスト・オブ・ブリード」と「統合ソフトウェア」の2つが対比的に言及されています(P.15)。
ベスト・オブ・ブリードの概念については、Okta社様の企業ブログにおける記事が分かりやすかったため掲載します。
「第2章」の参考資料・関連資料
[関連資料]「関心の分離」Dijkstra, E.W. (1974). E.W. Dijkstra Archive: On the role of scientific thought (EWD447)
関心の分離は有名な概念で、『データモデリングでドメインを駆動する』ではP.22-24に、本書の重要な提案である「SoAとSoMの分離」を説明する文脈で登場しています。
本概念は1974年のダイクストラの論文が初出とされており、Webで閲覧可能です。
[参考資料]『オブジェクト指向UIデザイン』(ソシオメディア株式会社 , 上野 学, 藤井 幸多 )
ユーザーインターフェイスデザインの優れたリファレンスの例として、『オブジェクト指向UIデザイン』が挙げられています(P38)。
著者の杉本氏は、SNS上でも『オブジェクト指向UIデザイン』のコンセプトにたびたび共感を表明しており、『データモデリングでドメインを駆動する』の7章(P.163, P.188)でも再度言及しています。
[参考資料] Systems of Engagement and the Future of Enterprise IT(2011)
『データモデリングでドメインを駆動する』で度々言及されるSoE/SoRの概念は「キャズム」で有名なジェフリー・ムーア氏のホワイトペーパー「Systems of Engagement and the Future of Enterprise IT」が初出です。
下記のサイトから無料ダウンロードが可能です。
[参考資料] 『グラス片手にデータベース設計 販売管理システム編』(梅田弘行)『販売管理システムで学ぶモデリング講座』(渡辺幸三)
『データモデリングでドメインを駆動する』中でSoAの中心概念に位置付けられる「残」の概念は、著者の発案ではなく下記2冊中でも言及されています(P43)。
[関連資料] 梅田弘行氏のその他の著作
『グラス片手にデータベース設計』は前出の販売管理システム編に加え、生産管理システム編・会計システム編とあわせて3部作を構成しています。
業務システムに関わる方であれば全てお勧めです。
[関連資料] 渡辺幸三氏のその他の著作
渡辺幸三氏が著したデータモデリングに関する著作には他に以下のようなものがあります。
『システム開発・刷新のための データモデル大全』については『データモデリングでドメインを駆動する』中でもたびたび言及されています。
データベース設計の書籍は世の中に多数ありますが、データベース設計と業務知識の関連を具体的な設計例で詳細に書かれた書籍は、梅田弘行氏・渡辺幸三両氏の著作しかなかったように思えます。
私も実はこの中で2冊ほど未読のものがあるため、この機会に読んでみようと思います。
なお、『データモデリングでドメインを駆動する』では「データモデリング」と「データベース設計」を明確に区別していますが、この視点で両名の著作を読み直すとと新しい発見があるかもしれません。
[参考資料] 「最新の建材で刷新された竪穴式住居」(渡辺幸三)
P.45でまたも渡辺幸三の発言に言及されています。
以下にリンクを記載します(P.45の注記と同じリンクです)。
「第3章」の参考資料・関連資料
[参考資料] 『実践ドメイン駆動設計』(ヴォーン・ヴァーノン)
『データモデリングでドメインを駆動する』のサロゲートキーと同趣旨の主張として、『実践ドメイン駆動設計』に記載の代理識別子に言及されています(p.60)。
また、『実践ドメイン駆動設計』は第8章(P.201, 203)、第12章(P.305)でも参照されています。
「第4章」の参考資料・関連資料
第4章では「残」の概念を中心にSoAに関して詳述されています。
直接的に言及されている資料はありませんが、多くの書籍や現場経験から醸成された知見と思われます。
「第5章」の参考資料・関連資料
[関連資料] 『SEのためのMRP』(鳥羽 登)
P.113で言及されているMRP(資材所要量計画)は生産管理の分野で重要な概念です。
以下の書籍でアルゴリズムを含めて詳述されています。
[関連資料] 「多次元データモデル」(良い資料があれば教えてください、、)
第5章ではSoMには多次元データモデルが向いている旨が説明されています。
私は多次元データベース・多次元データモデリングは、現職で初めて経験しました。
今後もより深く学んでいきいきたい分野ですが、リレーショナルデータモデリングと比較して資料が少ないため、お勧めの資料があれば教えていただけると幸いです。
[関連資料] 「トランザクションベースド・プランニング」
P.129では杉本啓氏のチームが提唱するトランザクションベースド・プランニング(TBP)について言及されています。
『データモデリングでドメインを駆動する』の文脈では、「伝統的にSoAでは細粒度・SoMでは粗粒度のデータが使用される傾向があったが、SoM(のうち上位層である財務的な計画管理)でも細粒度のデータ活用が進んでいる」旨が説明されており、その一例としてTBPが取り上げられています。
TBP自体の詳細を理解しなくとも本書を読み進める事は可能ですが、詳細に知りたい場合は下記企業ページに記載があります。
「第6章」の参考資料・関連資料
[関連資料] 「財経分離」
本書中で、いわゆる経理業務について、狭義の会計と財務計画に区分しています。
経理畑の方の相当割合は両者を別の仕事と認識しているし、大企業においては、組織上も担当チームが分かれている場合が多いです。(杉本 , 2024 ,p.151)
本書の文脈とは別に、IPO準備においては不正防止の観点から組織上経理部門と財務部門を分ける財経分離が課題となる場合が多いです。
文脈は異なりますが、財務と経理を毛色の違う業務であると多くの実務家が認識している傍証と言えるかもしれません。
[参考資料] 『損益計算の進化』(渡辺 泉)
P.153で中世イタリアの帳簿の歴史的背景の参考資料として以下の書籍が挙げられています。
帳簿や会計の歴史を扱った書籍は多数ありますが、現代の簿記概念の直接の祖先が中世イタリアであるのは異論は見当たらないようです。
「第7章」の参考資料・関連資料
7章は、最も技術的な内容でありエンジニアにとってはお馴染みの書籍も複数登場します。
[参考資料] 『システム開発・刷新のための データモデル大全』(渡辺幸三)
P.164でまたまた渡辺幸三氏の登場です。
フィーチャーオプションの事例として『システム開発・刷新のための データモデル大全』に言及されています。
更に後の12章でも2回(P.273、P.283)言及されています。
渡辺幸三氏の著書は6冊あり、同書が最新のため最初に読む本としては良いかもしれません。*2。
[参考資料] 『コードコンプリート 上』(スティーブ・マコネル)
テーブル駆動方式の説明例(P.169)として『コードコンプリート』の18章を挙げています。同書はあまりに有名なため説明不要でしょう。
[参考資料] 『達人プログラマー』(スティーブ・マコネル)
すぐ後のP.171では、『達人プログラマー』に言及があります。こちらも同様に説明不要でしょう。
[関連資料] 「コンパイラ」(A.V.エイホ)
DSLの開発に触れた文脈で、
文法構造を備えたDSLを開発することは荷が重いと考える読者も多いでしょう。この点について反論するつもりはありませんが(※中略)文法構造を備えた言語を解釈し、実行可能な形式に変換する方法は、知識領域として確立されている(杉本 , 2024 ,p.174)
としています。
要するに、「言語処理系の開発は多くの人にとっては難しく感じるだろうし実際難しいかもしれないけど、既に枯れたノウハウがあるので、皆さんが普段やってる業務機能の開発と比較して難しいというのは思い込みかもしれないよ。」(※@tunemageによる解釈)として、興味を持った人にチャレンジを勧めているのだと思います。
杉本氏が直接的に影響を受けたコンパイラの書籍は『コンパイラ : 原理・技法・ツール』です。*3
ドラゴンブックについては、書籍内では言及されていませんが、下記ネットラジオ内で影響を受けた書籍として言及されています。*4
[参考資料] 『SQLアンチパターン』(Bill Karwin)
本書では批判的に言及されていますが、『SQLアンチパターン』自体は名著なので未読の方は読んで損はないと思います。
その際は『データモデリングでドメインを駆動する』における「偶有的複雑性」やデータモデリング/データベース設計の区別といった視点をもって読むと更に多くの発見があるかもしれません。
[参考資料] 『アナリシスパターン』(マーチン・ファウラー)
P.185で、『アナリシスパターン』の第三章のほとんどがEAVパターンの応用と解説であるという見解が述べられています。
『アナリシスパターン』も業務システムの設計者にとっては必読書かと思います。
[参考資料] 『ジェネレーティブプログラミング』(クシシュトフ チャルネッキ, ウールリシュ W.アイセンアッカー)
P.191ではソフトウェアの可変性の追求した先の類型としてジェネレーティブなソフトウェアに言及されています。
『ジェネレーティブプログラミング』は重厚で内容も難しいですが、ソフトウェア基盤についての詳細な解説書として大変興味深いもので、個人的にもお勧めです。
[関連資料] 『マルチパラダイムデザイン』(ジェームス・O・コプリン )
本章で繰り返し言及される共通性・可変性概念については、コプリン氏*5の『マルチパラダイムデザイン』も参考になります。
『マルチパラダイムデザイン』は正直読みやすい本とは言い難いですが大変示唆に富む名著です。先述の『ジェネレーティブプログラミング』中にも同書は『マルチパラダイムデザイン』の直接の影響下にあると明言されています。
「第8章」の参考資料・関連資料
[参考資料] 『RESTful Webサービス』(Leonard Richardson, Sam Ruby )
P.202でWebAPIの冪等性について言及している中で参照されています。
「第9章」の参考資料・関連資料
[参考資料] 「DCI - Data Context Interaction」
P.219でエンティティとロールを分離した上で両者を動的に結合する」アイディアの古い事例としてDCI(Data Context Interaction)が紹介され、公式サイトが参照されています。
[関連資料] 『DXを成功に導くマスターデータマネジメント』(データ総研 (著), 伊藤 洋一 )
P.224のコラムにてMDM(マスターデータマネジメント)ソフトウェアについて考察されています。*6
マスターデータマネジメントのみをテーマに扱った書籍は意外と少なく、現在入手可能なのものは今年1月に出版された『DXを成功に導くマスターデータマネジメント』くらいかと思います。
「第11章」の参考資料・関連資料
[関連資料] 『実践的データモデリング入門 』(真野 正)
本章ではメタモデリングについて、以下のような説明があります。
データモデル自体をデータベースとみて、その構造をリレーショナルモデルで記述すればその結果がメタモデルになります。(杉本 , 2024 ,p.256)
いわゆる大規模開発の現場では、区分値・金額・コードといった項目の種別ごとに型や定義域が与えられていたりしますが、これもメタモデリングのルールと言えます。
現場のメタモデリングについて最も具体的に書かれた書籍は『実践的データモデリング入門』かと思います。
「第12章」の参考資料・関連資料
[参考資料] 『人月の神話』(Jr FrederickP.Brooks )
偶有的複雑性という言葉のネタ元としてP.271で『人月の神話』への言及があります。この本もあまりにも有名ですが偶有的複雑性の話題で『人月の神話』に言及されるケースは割と少なかったように思えます。
[参考資料] 『データベース実践講義』(C.J.Date)
P.286では、リレーショナルモデルの概念定義について知りたい読者向けに、本書が勧められています。
「第13章」の参考資料・関連資料
本章では、リレーショナルモデリングの古典と言える書籍に多く言及されています。私は未読のものが多く、勉強不足を痛感しました。
[参考資料] 『データマネジメント知識体系ガイド 第二版』(DAMA International)
P.311で言及されています。
[参考資料] 『データ中心システム入門』(椿正明)
P.312で椿正明氏の『データ中心システム入門』に言及があります。
椿正明氏はDOA(Data Oriented Approach)の先駆者的な方で、渡辺幸三氏や杉本啓氏の更に先駆者と呼べる方かと思います。
椿正明氏には他にも著書が多数ありますが、私は未読です。(どの本が最初にお勧め、などありましたら教えていただけると嬉しいです。)
[参考資料] 「三層スキーマ」
P313.では 「三層スキーマ」について言及があり、元ネタなった論文タイトルも記載されています。
ANSI/X3/SPARC Study Group on Data Base Management Systems: (1975), Interim Report. FDT, ACM SIGMOD bulletin. Volume 7, No. 2,
[参考資料] 「A Relational Model of Data for Large Shared Data Banks 」(Codd, 1970)
P.316ではリレーショナルモデル自体を発明したコッド氏の論文に触れています。
https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf
[参考資料] 「A Relational Model of Data for Large Shared Data Banks 」(Codd ,1976)
P.317でもコッド氏の別の論文に言及されています。
https://dl.acm.org/doi/10.1145/320434.320440
[参考資料] 『リレーショナルデータベース入門』(増永 良文)
P.318で言及。
本書内では2003年の新訂版が引用されていますが、当記事では比較的最近(2017)の第三版を貼っておきます。
[参考資料] 「概念・論理・物理データモデルの違いは人によって異なる?データ総研の考え方をご紹介」(株式会社データ総研,芳賀 恒太)
P.320では株式会社データ総研様の下記記事が参照されています。なお先述の椿正明氏は、株式会社データ総研様の創業者です。
「第14章」の参考資料・関連資料
本章では、全編にわたって、『エリック・エヴァンスのドメイン駆動設計』および、エリック・エヴァンス氏のWeb文書について考察されています。
[参考資料] 「Domain-Driven Design Reference Definitions and Pattern Summaries」(Eric Evans)
https://www.domainlanguage.com/wp-content/uploads/2016/05/DDD_Reference_2015-03.pdf
[参考資料] 『エリック・エヴァンスのドメイン駆動設計』(エリック・エヴァンス)
[参考資料] 『UMLによる統一ソフトウェア開発プロセス: オブジェクト指向開発方法論』(イヴァー ヤコブソン)
P.331で言及されています。
[参考資料] 『データベース設計論-T字形ER: 関係モデルとオブジェクト指向の統合をめざして』(佐藤 正美)
P.340で佐藤正美氏の以下の著作について触れています。
佐藤正美氏も日本のデータモデリング業界の先駆者のような方で、著書が多数あります。
おそらく最も影響力が強いのは先述の書籍(赤本)と思われます。
他にも多数著書がありますが、現時点で佐藤正美氏の最新の著作である以下の書籍が集大成的にまとまっているという評価もあり、最初の一冊として良いかもしれません。
[関連資料] 「間主観性」(エドムント・フッサール)
P.345.では、現象学の創始者フッサールの提唱する「間主観性」の概念を紹介しています。
『データモデリングでドメインを駆動する』を読み進めるだけであれば、同書中の下記の説明だけで充分と思われます。
主観的であっても、人々の間で合意できるようなことがらを指して「間主観性」と呼びました(杉本 , 2024 ,p.345)
ただ、現象学などの哲学概念は、モデリングにおいて重要な抽象化や認知について、重要な洞察を提供しているため、興味が湧いた方はぜひ勉強して一緒に議論したいと個人的に思います。*7
現象学の入門書は多数ありますが、以下の書籍が最もとっつきやすいように思えます。
私が『現象学という思考』を推す理由は
- 間主観性概念の解説に1章を割いていて、『データモデリングでドメインを駆動する』と親和性がある
- さほど予備知識がない私でも概ね読み進められた
- 分かりやすいが、ビジネス書等にありがちな分かった気にさせるだけの誤魔化しがなく誠実な書き方
「終章」の参考資料・関連資料
[参考資料] 『自然の家』(フランク・ロイド ライト)
P.363で言及。恥ずかしながら私は著者名すら知りませんでした。文庫本で手に取りやすいのでそのうち読もうと思います。
当記事を書き終えての感想
沢山の参考資料・関連資料をまとめる作業は楽しかったです。
また、まとめる中で自分の知識や理解が薄い分野も浮かび上がってきて、新たに読みたい書籍が多数出てきたのも収穫でした。
勿論、こういった予備知識がなくても『データモデリングでドメインを駆動する』の読解は可能です。
でも、本書の読者がさらなる好奇心をもって様々な資料を読む事で、新たな洞察を得られるのではないかと思います。
ぜひ、皆様が現場や読書で得た気づきもお聞かせいただければと思います。
追伸
『データモデリングでドメインを駆動する』の読書会や感想会が複数開催されています。
感想会ではLT発表予定です。
clever-crazy-domain-driven.connpass.com
*1:P8に記載の発表資料を見つける事ができませんでした。もし、ご存知の方がいらっしゃいましたらご教示いただけると幸いです。
*2:個人的には、業務システムを生涯の仕事にすると決めた時期に繰り返し読んだ『生産管理・原価管理システムのためのデータモデリング』を推したい
*3:通称ドラゴンブック。著者が読んだのはおそらく第2版ではなく初版。
*4:完全に個人的な話ですが、昔所属していた会社で当時の上司から何度もドラゴンブックを読めと勧められていました。その上司が実はそれより前にまた別の会社で杉本氏の部下だったと後になって知り驚きました。
*5:コプリン氏はアジャイルやソフトウェアパターンの草案にも関わっています。彼のキーパーソンぶりは『パターン・wiki・XP』を読めば分かりやすいと思います。
*6:MDMで検索すると、モバイルデバイス管理の方が多く引っかかりますね
*7:杉本啓氏御本人には確認してないませんが、そういう願いも込めて言及しているのだと思います。