ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

既存のNoSQL、非正規化のデータモデル-大福帳システムは、KVSとも相性いい?

2010-03-10 10:52:52 | トピックス

 以前、RDBでなく、正規化しないでKVSで入れるって、結局実データそのままってことだよね!ってところで、


このやり方の場合、ロングトランザクションを解決したときのように、時間+サーバー名とか時間+更新者の適当な組み合わせを使うと、競合が起こらないでデータ追記だけで最新データが取ってこれる(って、この仕組みを結局まだ説明していないね。いつか説明する)。


って書いた。このデータ追記だけで、最新データが取ってこれたり、ロングトランザクションにおける競合問題が解決する手法は、「大福帳システム」として知られている。この大福帳システムはNoSQL、非正規化して実現でき(XMLDBなどで実現する)、KVSとも相性いいと思うんだけど、今回は、その大福帳システムについて説明する。





■追記型データベースの「大福帳システム」

 大福帳システムっていうのは、いつだったっけかなあ?10年くらい前?に、データウエアハウスの関係で一時はやった手法で、極端に言うと、以下のようにする。

  ・データを追記しかしない
  ・削除する場合は、削除フラグON!のデータを追記する(論理削除)
  ・修正する場合も、追記する
  ・データを取ってくるときは、最新のデータを取ってくるようにする。

たとえば、

10時20分  受注データNo1234作成
10時21分  受注データNo1234を修正
10時22分  受注データNo1235作成
10時25分  受注データNo1234削除
10時30分  受注データNo1235修正

とすると、受注データの主キー+時刻(ほか、サーバーとか担当者とかも必要かもしれないけど)で、一意にして、データを以下のように


主キー:10時20分-No1234の受注データ作成

主キー:10時21分-No1234の受注データ作成
      →10時20分-No1234と修正箇所だけ違うデータ

主キー:10時22分-No1235の受注データ作成

主キー:10時21分-No1234の受注データ作成
      →10時21分-No1234の受注データに削除フラグが上がっている

主キー:10時30分-No1235の受注データ作成
      →10時22分-No1235と修正箇所だけ違うデータ


ということになる。上記に示したように、受注データ「作成」しかしていない。

データを取ってくる場合は、

・受注番号ごとにまとめて、最新の値(時刻が最大のもの)が、削除フラグOFFだったら、とってくる
 とする。上記の例だと、


主キー:10時21分-No1234の受注データ作成
      →10時21分-No1234の受注データに削除フラグが上がっている

主キー:10時30分-No1235の受注データ作成
      →10時22分-No1235と修正箇所だけ違うデータ


 が受注番号ごとにグループ化したときの最新データ、このうち1234は削除フラグが上がっているので、対象外となり、「10時30分-No1235の受注データ」が対象となる。これは、

※ちなみに、RDBで行う場合は、あらかじめ、(論理削除についてはさておき)最新データのViewを作っておいて、それに対して検索するようにしないと、たぶん、大変なことに(^^;)




■そして・・・画面、帳票全体を保存する

 そして、大福帳といわれるゆえんでもあるのだが、

・データはすべて、丸ごと保存する。
  画面丸ごと、帳票丸ごと保存する。
  RDBのように、正規化したデータがほしい場合は、上記に書いた最新データから、
  JOINして作ることができる。


 つまり、「画面見たまま、帳票出力したまま」を保存する。
 いままでのRDBは、これらをもとに、正規化したデータだから、

 大福帳データの「一部」のデータ=RDBの正規化されたデータ
 (RDBのデータは、大福帳データの部分集合)なので、
 大福帳データから、RDBの正規化されたデータは、適当な集合操作によって、
 得ることができる。




■現状

 この方式だと、昔書いた、ロングトランザクション問題を解決することができるんだけど、その方法については、また今度書くとして、

 現状、大福帳システムっていうのは、使われてるの?っていうと、

 商品として、出されていて、たとえば、

XML大福帳による新世代ERPのメリット、データ活用・未来予測・使いやすさ
http://jp.fujitsu.com/about/journal/erp/solutions/200811/02.shtml


なんかが、書かれている。で、これを実装する方法として、富士通は
企業総活動記録ソフトウェア Interstage XML Business Activity Recorderを用意していて、

Interstage XML Business Activity Recorder 機能
http://interstage.fujitsu.com/jp/xmlbar/function/


に「追記型インターフェース」と書いてあるように、基本的に、追記型になっている。




たぶん、ライフログなんかも、そうだよね。

でも、富士通は、いま、それどころじゃないんだろうなあ・・・(^^;)


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 米政府クラウドの標準化等と... | トップ | ソニー、3D対応テレビを6月に... »
最新の画像もっと見る

トピックス」カテゴリの最新記事