ひとくちに「データベース」といっても、規模や目的によって、それらを実現するためのソフトウェアは実に多岐に渡る。データが小規模な場合、情報を書き散らしたplain textやMicrosoft社のExcelなどで一枚の表を作成するだけでも十分な使い勝手が得られる場合もある。でも、勉強も兼ねてもう少し凝ったデータ整理を行いたいと思っており、現在個人的な用途(主に論文整理)で所謂「データベースソフト」が有効かどうか色々と考え/試し中。

*リレーショナルデータベース [#p9b712eb]

一般的に「データベース」と称すれば、これを指す事が多いようだ。

**link [#w98841c3]
-[[UNIX データベース入門:http://www.wakhok.ac.jp/DB/DB.html]]
-[[rakutoネット:http://www.rakuto.net/study/php/]]より[[SQLiteをやってみよう:http://www.rakuto.net/study/php/sqlite/sqlite/]]
-[[SQL講座:http://www.rfs.jp/sitebuilder/sql/]]

**ソフトウェア(バックエンド) [#m2b3d000]

[[Oracle:http://www.oracle.com/index.html]]、[[MS Access:http://www.microsoft.com/japan/office/access/prodinfo/default.mspx]]、[[PostgreSQL:http://www.postgresql.org/]]、[[MySQL:http://www.mysql.com/]]あたりが定番なのだそうだ。だけど大規模かつ本格的すぎて私の手に余る。一方で[[SQLite:http://www.sqlite.org/]]なるものはサーバプロセスも不要でいい感じに小規模なので、この辺りを試している今日この頃。

**ソフトウェア(プログラミング、フロントエンド) [#we920db7]

SQLiteは[[PHP:http://www.php.net/]]のバージョン5以降に組込まれているらしく、PHP ver.5の環境を整えさえすればよいのでお手軽である。他に[[SQLite-Ruby:http://rubyforge.org/projects/sqlite-ruby/]]や[[SQLite.NET:http://sourceforge.net/projects/adodotnetsqlite]]などもある(See. [[A Practical Guide to .NET DataTables, DataSets and DataGrids:http://www.codeproject.com/csharp/PracticalGuideDataGrids1.asp]])。

言語の判断基準であるが、
-遠隔・複数環境からの使用が容易
-画像やテキストボックスなどの配置が楽そう(serialに書き連ねればよい)
-何事も経験

という理由から、いわゆるWebアプリの形式にするのが良いと思った。言語的にはRubyを触ってみたいが、準備が楽であることと、(私の経験が浅いだけなのでしょうが)RubyにHTMLを吐かせまくると何だか美しくなかったので、PHPの方が良いかなーと思った。既に試作は完成したのだが、実装もソースも醜くなったため、イチからやり直そうと画策中。

で、ちらっとPHP5.0.4(現時点で最新)のソースを見たら、SQLiteは(最新ではない)ver.2.8.14が使われているようだった。SQLiteはver.3になって各種機能拡張が行われたので、こちらを使いたいと思うならば[[PDO:http://jp.php.net/pdo]]を使うのが良いようだがまだ試していない。

**(SQLiteの)管理ツール [#g6a09d81]
各種揃っているのか、イマイチ充実していないのか、日の浅い私には判断がつかない。
-[[SQLite Database Browser:http://sourceforge.net/projects/sqlitebrowser/]]
-[[SQLiteCC:http://bobmanc.home.comcast.net/sqlitecc.html]]と[[日本語版:http://www.takke.jp/prog_other.html#sqlitecc]]。後者はver.3にも対応。本家は最近アップデートがない('05 Jul)
-[[SQLiteManager:http://sqlitemanager.sourceforge.net/]]は要PHP

**(SQLiteの)ラッパクラス [#n3873e45]
-[[The Code Project - CppSQLite - C++ Wrapper for SQLite - Database:http://www.codeproject.com/database/CppSQLite.asp]]

が良さそう(これしか使ってないが)。本家のWikiに情報がまとまっている。
-[[sqlite - Sqlite Wrappers:http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers]]
*XML [#lfed5569]

[[REXML:http://www.germane-software.com/software/rexml/]]で試作してはみた。中々いい感じに動作しているものの、

-規模が大きくなったら動作が重くなりそうに感じた(根拠は特にない)
-出力はHTMLにしているが、これによってソースが醜くなった
-扱うデータのフィールドは原則完全に固定されているので、XMLにする意味が無さそう

という理由から、全体的にあまり満足はしていない。