続・俺データベースの作り方

しばらく更新サボってました。そうすると順調にアクセス数も減ってきて、なんとなくグラフを見るのが楽しくなります。このごろこのブログの更新がOpenOfficeにまつわる記事ばっかりになってきたのですが、とくに他の更新ネタを思いつきません。

ところでこの間ようやくLearn OpenOffice.org Spreadsheet Macro Programmingが届きました。Yahoo! USAのYahoo! FinanceはCSVでデータを取得できるということをこの本を読んではじめて知りました。日本もぜひ対応してほしいものです。

今日のお話はデータベース。というのも「データベースの作り方」での検索がちらほら見られたからです。

以前紹介したデータベースはテキストデータを蓄積させてgrepで探すという極々小規模な個人向けの手法でした。とはいえ、この方法は多少データが増えてもかなり有効である事が(個人的な経験的に)多いので、一度試してもらえるといいと思います。
また何台かのPCで利用するのなら、grepもいいですが、速度を考えてNamazuなどを用いて検索システムを構築するのがいいでしょう。Namazuはご存知の通り、フリーの日本語全文検索エンジンです。インデックス作成を行うので高速検索が可能ですが逆に言うとインデックス作成が必要不可欠なので、定期的に(半日に一回など)自動的にインデックス作成タスクを走らせるように、設定しておくといいでしょう。

後はもういわゆるMySQLFireBirdOracleなどのDBMSを用いたデータベースの設計ですが、これはもう軽く書いても本の一冊分になりますね。ただ、一つ提案を示しますと、もしこれらをコアに用いて、インターフェースを自作する場合、(ある程度の規模以上のデータベースを作るなら)レコード型の定義言語を自作することをお勧めします。
なぜなら型情報は意外と頻繁に変わります。特に制作作業中は。そのたびにインターフェースのソースとSQL言語を弄っているとそのうち不整合が出てくることは想像に難しくないでしょう。
であれば、一つの簡単な言語セットを自作してそこから二つのコードを吐くコードジェネレータを作ってしまうほうがかなりラクです。簡単な言語処理系を自作するテクニックはさまざまな場面で楽する解決策を提供してくれたりします。