DOAとは、RDBMSを利用した帳簿組織の作成手法です

業務システムを開発する際に、RDBMSを記録の対象とすることが多い。

業務を実施しその記録のため、また記録を集約し請求をする。
請求した債権が回収されたか?

先に支払いを済ませ、業務を実行する場合もあるでしょう。

手作業で記帳することを、コンピュータで効率化するだけの話である。


手作業で記帳する場合の帳簿の工夫を、RDBMSの性能を考慮し、
テーブルの組み合わせを工夫しようということだ。


歴史がある、簿記の、帳簿組織を分析してみると、

入金伝票、出金伝票が、時系列に記帳され、出納帳が作成される。
仕訳伝票が、時系列に記帳され、仕訳帳が作成される。

出納帳と仕訳帳を勘定科目に仕分けし、時系列順に記帳し総勘定元帳が作成される。
転記した際の紐付けを残すために、丁数を記録する。

勘定科目ごとに集計し、試算表を作成する。

たな卸し等の決算業務を実施し決算仕訳を作成し、決算書の形式に従い勘定科目を転記集計する。

決められたルールに基づいて作業を行うが、基本的には

時系列順に並べる。
同じ科目を集計する。
集計した結果を転記する。

3種の作業の組み合わせですべては構築できる。

出納帳、仕訳帳、総勘定元帳、試算表は決算書を作成するために工夫された帳簿組織です。

簿記は歴史の古い洗練された帳簿組織です。

特徴としては、取引の結果の記録(BOOK KEEPING)が最大の使命。

作業の方向性は川の流れのように一方向へ進めていく。


業務システムを開発する上でも、ビジネスを効率的に記帳できる帳簿組織を構築することが大切です。

所有権移転の証、帳票(納品書、納品書(控)、受領書)が原点です。

業務を運営する中では、対外的な利害関係の記録、内部の運営管理(在庫、発注、受注)と関連する範囲は広くなります。

簿記以上の、然るべき帳簿組織を検討する必要があるでしょう。

作業の方向性は、思い通りに行かず戻ることが考慮されなければなりません。

江戸時代なら大福帳、手作業で事務を行うなら、得意先台帳、得意先元帳、仕入先元帳、経費帳、出納帳、...
ビジネスを効率的に進められるような記録方法が当然検討されます。

帳簿組織をRDBMSで構築するためには、RDBMSの特徴を理解して構築する必要があります。

2次元の表計算程度のデータ処理のためににRDBMSを利用するのでしょうか?

システムを構築したけど、RDBMSのテーブルはシンプルだった。

業務に合った帳簿組織を構築できているのでしょうか?


そのテーブルで、依頼主の要望に対して「時系列順に並べる。同じ科目を集計する。集計した結果を転記する」
ことが容易にできますか?

RDBMSは基本的な機能として、抽出、並べ替え、集計を用意に実現することができます。

集計結果を別なテーブルに記録する「転記」も可能です。


RDBMSのより効率的な使い方、性能を向上させるような使い方に正規化が重要です。

正規化の目的は、繰り返しの無駄を減らすことにより、リソースの節約、処理の高速化とともに、
更新時異常を避けるためです。

正規化することにより、テーブルが複数に分割されますが、
基本機能に結合機能が用意されているので、分割前の結果を再現することは容易で、
結合に必要な時間的なロスはほとんどありません。

業務システムを開発するということは、依頼者の要望を分析し、
実現可能な技術と入手可能な材料で、判りやすい仕組みでつくり上げていくこと。
改良に対応できる余地が残されていることが必要です。

同じ業種でも、規模の違いにより業務の進め方、記録方法が異なる場合があります。
ワンパターンの押し着せではなく、必要ならば状況に合わせて作りかえる必要があります。
帳簿組織を組み立てて対応することで、改良が楽になります。

帳簿組織を組み立てなおさず、プログラムだけの変更で対処しようとすると
その変更は難しい仕事となるでしょう。

○○業種向けのシステムがあるので、プログラムをカスタマイズして構築しましょう的な
パターンが上手くいかないのは、規模に合わない歯車をそのまま利用しているため。
歯車が小さすぎれば、高回転して焼きついてしまうし、大きすぎれば重過ぎて回らないし
ちょうど良い回転で回るように、変速する装置を埋め込むことが必要です。

システムとしての最低限の機能として、ユーザのログイン管理、複数のユーザーが
同時に同じテーブルを変更した場合の排他処理などの対応も当然のように要求されるでしょう。


業務の本質は何なのかを見極めて、帳簿組織という構造・骨格を設計し、
内装・外装にあたる、プログラム、画面、印刷帳票を施工する必要がある。

丁寧に設計し、責任を持って施工する。当たり前のことが行われていない。


こんな画面で、こんな帳票が出力され、プログラムの中身はすごいんです。
危うい仕事が実際行われている。当人同士が気づいていないのが一番の問題。


業務システムの構築に行き詰まりを感じたら、DOAの学習をお勧めします。


渡辺幸三氏が、OSSオープンソースソフトウェア)として無償で素晴らしい教材を
提供されています。http://homepage2.nifty.com/dbc/

XEAD Modeler DOA設計ツール
XEAD Driver   システム構築のためのフレームワーク

教材としてだけでなく、データベースもPostgreSQLMySQLにも対応し、実務にも利用できます。