子宝どっとこむ

 

 テキストファイルをデータベースにする

  • Sep072005
  • Author: Vulcan
  • Categories: 駄文

どういうケースにおいてテキストファイルでDBを構築するのがいいのかを考えてみたいと思います。

テキストファイルの特徴を挙げてみます。


  • 誰でもデータが見れる、誰でも書き換え可能

  • サイズが小さい

  • Openステートメントで高速読み書き可能

  • ADOでアクセスし、SQLの実行も可能

  • Schema.iniでフィールドの定義等可能

  • 他のアプリケーションの出力ファイルをそのままDBにできる

  • インデックス、主キーの設定がないので大規模データのSQL操作は不向き

こうしたことを踏まえ、実際にテキストファイルをDBとして扱っている事例を題材に、その適否を考察してみたいと思います。

会計ソフトが吐き出す各種のテキストファイルを加工してDBにするというのがあります。例えば毎月のBSやPL、キャッシュフローデータなど。これらは何のために吐き出すのかというと、レポートを作ったり分析をしてみたいからです。

会計ソフトのデータに直接アクセスできれば一番いいのですが、それはできないことの方が多いでしょう。したがって、自分たちの目的に適ったデータを出力させデータベースとするニーズが出てくるわけです。

しかしながら、自分たちの目的というのは、データの推移に意味があるのではないか、何かが言えないかといった『気まぐれの分析願望』であったり、言い訳資料、成果のアピールとしてこうした表がほしいといった『気まぐれの誇示欲求』であったり、会計ソフトが提供している帳票が細かすぎて見にくいので、少しだけすっきりさせたいという『ちょっとした工夫の欲求』であったりと、要するに本気で気合を入れてDBを構築するほどではないわけです。

もちろん、そうしたちょっとしたニーズが長年蓄積されて、定型的な月次報告様式や財務分析手法が確立され、それに適したデータベースを構築することにもなるわけですが、往々にして定型といいながらも月日の経過とともに随分変化してしまうものです。

結局、もととなる会計データベースを構築するわけではなく、そこから吐き出されるデータを、後に分析、加工しやすいように一時保管するというのがこの場合のDB構築の目的といえるでしょうから、こうした場合はテキストファイルでDBを構築するのに向いているのではないかと考えるわけです(手前味噌ですが)。

ただし、データの規模が膨大であったり、SQLの多用を想定しているのであれば、リレーショナルデータベースの構築を検討した方がいい場合があるかもしれません。

もうひとつの例として、例えば勤怠管理において、未承認データをテキストファイルで保持しておく場合があります。承認前のデータは各自がテキストファイルで作成し、承認後、DBへの登録は特定の権限を付与されたものが行ないます。

いきなり、未承認の段階で各自がDBに書き込みに行った場合、承認前なのかどうかの管理が複雑ですし、承認後に各自が書き換えられないような仕掛けを作るのも大変です。また、データベースへのアクセスが集中してしまうという問題も生じます。この点、各自別々にテキストファイルを作成する場合、アクセスの集中は回避できます。

他には、データの一時バックアップとしてテキストファイルを使ったり、他のアプリケーションで使うための一時的な中間ファイルとしてテキストファイルを使うということが考えられます。

こうしてみてみると、結局、テキストファイルは、その作成上の容易さ、高速さという武器を活かした、一時的、中間的データの保存に用いるのが良いように思います。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード