OSの検索機能やインターネット検索エンジンが良くなったので、適当に保存して検索すれば足りることも多いが、データベースに整理しておきたいものもある。
Mac OSの時代は、クラリスワークスにデータベースがついていたし、HyperCardもあった。ファイルメーカーは今も健在で、お手軽なBentoも発売された。AddressBook、Safariのブックマーク、論文リストを扱えるBibDeskなど専用のアプリケーションもある。Mailは多くの人にとって最も重要なデータベースかもしれない。
一方、Mac OS Xになって、フリーのリレーショナルデータベースシステム (RDBMS) が使えるようになった。MySQLなどクライアントサーバ型のRDBMSは、Webアプリケーションを使うときに導入する程度で、自分で使いこなすには敷居が高い。
SQLiteはクライアントサーバ型でない、スタンドアローンのRDBMSである。コマンドラインやC言語、Tclのインターフェースが提供されている。文字列は、UTF-8なので日本語も問題なく格納できる。Tclの文字列もUTF-8なので、Tclから使えば文字化けの問題はない。
簡単な使い方は、quickstartに紹介されている。Mac OS X Leopard添付のSQLite3/Tclでは、共有ライブラリの名前とパスが異なる。新たに文献リストを作り、1レコード追加して表示するTclスクリプトは次の通り。
load /usr/lib/sqlite3/libtclsqlite3.dylib Sqlite3 sqlite3 db "test.db" db eval {create table mypapers(id integer primary key, authors, year, title, journal, issue, pages)} db eval {insert into mypapers values(NULL, 'Me', 2008, 'How to use sqlite3 on Mac', 'unknown', '1', '1--99')} puts stdout [db eval {select * from mypapers}] db close
コマンドはsqlite3のひとつだけ。sqlite3の次がTclの中でデータベースを差すもので、新たなコマンドとなる。2つ目の引数はファイル名。既にファイルがあれば開かれ、なければ新しいファイルが作られる。evalのあとにSQL文を書く。最後はデータベースを閉じている。