Data Oriented Approach
システム設計の やり方だよ
まずはデータの構造や流れを整理するよ
データをもとにして処理とかを考えるよ
日本では「データ中心アプローチ」や「DOA」と表現されるのが一般的だよ
簡単に書くよ
Data Oriented Approach(読:データ・オリエンテッド・アプローチ)とは
いわゆる「データ中心アプローチ(DOA)」のこと。
用語の中身としては
システム設計の やり方のひとつ
であり
「何はともあれ、データだよ!まずはデータを整理しよう!」な考えでもって、まずはシステムで使うデータを洗い出して構造や流れを整理し、それをもとにして「それじゃあ、どんな処理をやれば、これらのデータを良い感じに扱えるかな?」を考えるやり方
です。
詳しく書くよ
最初に留意事項です。
「データ中心アプローチ」や「DOA」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
データ中心アプローチの英語表現が「Data Oriented Approach」です。
データ中心アプローチを「DOA」と表現することがあります。
この「DOA」が「Data Oriented Approach」の省略表現なのです。
※「Data Oriented Approach」を何となく日本語にすると「情報指向アプローチ」となります。[詳細]
以上が「データ中心アプローチ(DOA)」の意味を知っている人向けの説明です。
「データ中心アプローチ(DOA)って何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
システムというのは、あんな処理をやって、こんな処理をやって、そんな処理をやります。
そうすると、あんなデータが、こんなデータになって、そんなデータになります。
システムは処理をやります。
そうすると、データが変わります。
処理の内容が変われば、データの内容も変わるでしょう。
扱うデータが変われば、処理の内容も変わるはずです。
処理とデータには関連性があります。
以上を踏まえて、システムを構成する2つの要素
1.処理
2.データ
のうち「2.データ」を先に考えて、その結果をもとにして「1.処理」を考えるシステム設計のやり方が「Data Oriented Approach」です。
「こんな業務をやるシステムだけど、多分こんなデータを扱うことになるよね。ということは、これらのデータを処理するには、こんな機能が必要で、そうすると、実際の処理は、こんな感じかな」なアプローチのやり方です。
上でも書きましたが、一般的には「データ中心アプローチ」や「DOA」と表現されます。
※本ページでも以降は「データ中心アプローチ」と表現します。
例えば、そうですね。
ピヨ太君がピヨピヨタイムカードシステムを作るとしましょう。
データ中心アプローチでは、まず「どんなデータが出てくるかね?」を考えます。
ピヨ太君は
1.社員番号
2.社員の名前
3.日付
4.出社時間
5.退社時間
の5つが必要だと考えました。
このうち
1.社員番号
2.社員の名前
は「社員情報」です。
3.日付
4.出社時間
5.退社時間
は「出退勤情報」です……が、誰が出社したのかも知りたいですよね。
「社員情報」の『社員番号』も追加して
1.社員番号
3.日付
4.出社時間
5.退社時間
を「出退勤情報」としました。
なお「社員情報」の『社員番号』と「出退勤情報」の『社員番号』は同じ物です。
線で結べます。
さて、これでピヨピヨタイムカードシステムで扱うデータが決まりました。
あとは、これをもとにして処理を考えます。
面倒くさいので過程は省きますが、必要な処理は以下のような感じでしょうか。
1.出社処理
「出退勤情報」にデータを追加。『社員番号』『日付』『出社時間』を埋める。
2.退社処理
「出退勤情報」のデータを更新。『退社時間』を埋める。
3.社員情報メンテナンス処理
「社員情報」のデータを追加・更新・削除。
4.出退勤情報メンテナンス処理
「出退勤情報」のデータを追加・更新・削除。
これで、システムでやるべき処理が決まりました。
あとは実際に作るだけですね。
かなり大雑把ですが、このようなアプローチの仕方がデータ中心アプローチです。
まずは、システムで扱うデータを一気に洗い出して、それを整理します。
そうすると「これがシステムで扱うデータが全部詰まったデータベースだよ」なデータベースができるはずです。
あとは、それをもとにして、どんな処理が必要かを考えます。
そんなやり方です。
ちなみに、システムを構成する2つの要素
1.処理
2.データ
のうち「1.処理」を先に考えて、その結果をもとにして「2.データ」を考えるシステム設計のやり方は「プロセス中心アプローチ(POA)」と言います。
もちろん「1.処理」を考える過程で必然的に「2.データ」を考えることにもなりますけどね。
あくまで、中心となるのは「1.処理」です。
「こんな業務をやるシステムだから、こんな機能が必要で、そうすると、こんな処理をやることになるね~。あっ、そうすると、こんなデータを扱うことになりそうか~」なアプローチのやり方です。
気が向いたら、併せて覚えてあげてください。
データ中心アプローチ(DOA):考える優先順位が「データ」→「処理」
プロセス中心アプローチ(POA):考える優先順位が「処理」→「データ」
です。
一言でまとめるよ
まぁ「Data Oriented Approach」って単語が出てきたら「データ中心アプローチ
(「(処理よりも先に)データから考えていこう!」な設計のやり方)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「data(データ)」の意味は「資料」とか「知識」とか「情報」とかです。
「oriented(オリエンテッド)」の意味は「指向」とか「志向」とかです。
「approach(アプローチ)」の意味は「近づく」とか「迫る」とかです。
カタカナで「アプローチ」の方が分かりますかね。
何となく くっつけると
情報指向アプローチ
となります。






