テーブル設計-ストックデータとフローデータ-
ストックとフローについて
ストック | 日々の業務で発生したデータを一定期間で集計したデータ |
フロー | 日々の業務で発生するデータ |
テーブル設計でのストックデータ
ストックデータは日々の業務で発生したデータを集計したデータになります。
そのため、テーブル設計の冗長なデータを排除するという考えからいうと、ストックデータを登録するテーブルは必ずしも必要ではありません。
しかし、実際の業務では、膨大な量のデータを処理する必要があります。
そのため、毎回フローデータから集計を行い、ストックデータを作成した場合、十分なパフォーマンスが得られません。
結果として、業務システムでは、フローデータを登録するテーブルと、フローデータの集計結果であるストックデータを登録するテーブルを作成することがあります。
ストックデータテーブルがあると便利な時
- 今月のデータの集計に前月の繰り越し情報が必要となる場合
前月の情報が今月の集計で必要となる場合は、フローデータのみの場合は、最初の月までさかのぼって集計が必要となる場合があります。
しかし、毎月月末時点の情報をストックデータとして登録しておくことで前月の繰り越しデータはストックデータから取得できるようになります。
そのため、前月の繰り越し情報が今月のデータ集計に必要となる場合に、今月のデータを集計したうえでストックデータから前月の情報を加算するだけで今月の集計が可能となります。
- 1日数万件という大量のデータを、毎月1回集計する必要がある場合
月1で日々の業務データを集計した場合、1日数万件のデータが発生する場合は、1か月で数十万件のデータを集計することとなります。
そのため、日々のデータを毎日集計し、ストックデータとして登録することで、システムの負荷を分散することが可能となります。
ストックデータテーブルを作成する際に気を付けること
ストックデータは日々の集計で発生したフローデータを集計したものとなります。
そして、フローデータが修正された場合、ストックデータも修正される必要があります。
そのため、もし、ストックデータを作成後にフローデータが変更される可能性があるのであれば、フローデータが修正された場合の登録済みストックデータの扱いについて検討をしておく必要があります。
もし、フローデータ変更時の検討が不十分であった場合、日々のデータと集計結果との間に不整合が発生することになります。
ストックデータの作成するタイミング
フローデータからストックデータを作成するタイミングとしては、夜間バッチを用いることがよくあります。
なぜなら、夜間には、日々の業務で発生するデータが発生しないことが通常だからです。
また、ECサイトなど24H365日動いているようなシステムの場合は、オンバッチでデータの整合性を取りながら、ストックデータを作成する場合もあります。
DB設計を学びたい方へ
達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ
- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2012/03/16
- メディア: 単行本(ソフトカバー)
- 購入: 21人 クリック: 316回
- この商品を含むブログ (24件) を見る
実践的データモデリング入門 (DB magazine selection)
- 作者: 真野正
- 出版社/メーカー: 翔泳社
- 発売日: 2003/03/01
- メディア: 単行本
- 購入: 9人 クリック: 388回
- この商品を含むブログ (22件) を見る
絵で見てわかるシステム構築のためのOracle設計 (DB Selection)
- 作者: 加藤健,前島裕史,岡田憲昌,有滝永,草薙康裕,小田圭二
- 出版社/メーカー: 翔泳社
- 発売日: 2012/02/21
- メディア: 単行本(ソフトカバー)
- 購入: 10人 クリック: 146回
- この商品を含むブログ (2件) を見る
何かを作りたい方へ
タミヤ 楽しい工作シリーズ No.227 カムプログラムロボット 工作セット 70227
- 出版社/メーカー: タミヤ(TAMIYA)
- 発売日: 2017/08/12
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
タミヤ 楽しい工作シリーズ No.113 4輪駆動車工作基本セット (70113)
- 出版社/メーカー: タミヤ(TAMIYA)
- 発売日: 2009/06/23
- メディア: おもちゃ&ホビー
- クリック: 3回
- この商品を含むブログを見る
デッキのあるログハウス A20 ログハウス貯金箱 工作キット
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る