データを保存したり検索したい場合にGaucheでは次に示すいくつかの方法を使うことができます。
- ファイルに直接アクセスしread手続きやwrite手続きでS式を読み書きする
- NDBM、GDBMといった簡易データベースを使う(dbmライブラリ)
- RDBMS(リレーショナルデータベース)を使う(dbiライブラリ)
ファイルに直接アクセスしてread手続きやwrite手続きで読み書きする方法は最も手軽です。ただしデータ量が多かったり、書き込みや読み込みが頻繁にあったり、高速な検索が要求される用途には向きません。
NDBM、GDBMといった簡易データベースを使う方法は最初の方法に比べて比較的高速であり、データ量が増えてもパフォーマンスが極端に低下することはありません。ただし複数のクライアントから同時に読み書きされる用途には向きません。また、Gaucheの動作環境にこれらの簡易データベースライブラリがあらかじめインストールされている必要があります。例えばGDBMがインストールされていないとき、GaucheはGDBMが使えない状態でビルドされます。GDBMを使える状態にするには、Gaucheを再ビルドしてインストールし直すしかありません。
RDBMSを使う方法は最も高速で大量のデータを処理してもパフォーマンスが低下することはありません。複雑な条件による検索も可能で、ネットワーク経由での利用も容易です。ただしScheme以外にSQL言語を使用する必要があるほか、他の方法に比べて運用管理が最も煩雑です。また、簡易データベースを使う方法と同様に、Gaucheが動作する環境にあらかじめRDBMSのクライアントライブラリがインストールされている必要があります。簡易データベースの場合と異なり、RDBMSを使えるようにするにはGaucheの再ビルドは必要ありません。そのRDBMSに対応するドライバ(dbd)を追加インストールするだけで済みます。
まとめ
| 方法
| 利点
| 欠点
| インストール方法
|
| read/write
| 最も手軽
| パフォーマンスが低い
| インストール不要
|
| 簡易DB
| 比較的高速
| 多数同時接続用途に向かない
| Gauche再ビルド
|
| RDBMS
| 最も高速、多数同時接続に適す
| 管理が煩雑、SQL言語の知識が必要
| ドライバだけ追加インストール
|
read/writeによる方法は例えばアプリケーションの設定ファイルに適しています。なぜなら設定ファイルはアプリケーション起動時にしか読み込まれず、頻繁に書き換えられることが少ないからです。
簡易データベースを使う方法はデータ量が多いが複数のクライアントからのアクセスがない用途に適しています。
RDBMSを使う方法は複数のクライアントからアクセスがあり、大量のデータを処理する必要がある用途に適しています。