|
Article on other languages:
|
SQLite はMySQLやPostgreSQLと同じDBMS(データベース管理ソフト)であるが、サーバとしてではなくアプリケーションに組み込まれて利用される軽量データベースである。 一般的なRDBMSに比べて大規模な仕事には不向きだが、中小規模ならば速度も遜色はない。 また、APIは単純で単にライブラリを呼び出すだけであり、データの保存には単一のファイルしか使用しない事も特徴である。Ver3.3.8 から、全文検索の FTS1モジュールがサポートされた。
特徴
概要SQLiteは、クライアントサーバモデルではなく、ユーザーの概念もないためパスワードも不要で、利用者は、データの取り扱いをプログラムに依存することによって、その存在を意識することなく利用できる。 そのうえ、データベースは単一ファイルであり、ファイル間の相互参照等を持たず、マシンのバイトオーダにも依存しないため、別マシンにデータを持ち運ぶ、といった可搬性が高く、利用者にとって扱いやすい形式となっている。ただしそのためにセキュリティが甘くなるという問題が生じる。 ソフトウェア開発においては、サーバ等を必要とせず、アプリケーションに組み込んだsqliteのライブラリを呼び出してSQLを実行するだけの簡素なものであるため、ファイルの入出力に近い感覚で取り扱える。 PHPやPythonなど標準ライブラリに含まれている場合もある。 生成されるファイルの権限は、実行ユーザーの権限に依存することになる。 マルチスレッドからのデータベースのアクセスが可能であり、簡素ながらも一時的なアーカイブログ・ファイルを作成することでACID特性を標準でサポートしている。 SQLの構文はSQL標準に準拠しており乗り換えもさほど難しくない。 ブログや掲示板などでは、データベースの選択肢の一つとして利用できることもある。 移行時の注意点としては、カラムに指定するデータ型は名目的なものであり、制約として機能しない点などがある。 SQLiteでは(ROWIDを除き)カラムに宣言した型にかかわらず、どのようなデータも格納できる。 また、カラムの長さも常に可変であり、長さや精度の指定は意味をもたない。 レコードサイズも可変であり、格納に必要な最小限のディスクスペースのみ、必要なだけ消費する。 これは柔軟なデータの格納を可能とするが、逆に言えば、あらゆるデータを格納できると言うことはセキュリティ上問題となるデータも送りつけることが可能と言うことである。そのため、この自由度が逆に脆弱性になる場合もあるので注意が必要である。 データの格納という点では従来型のデータベースと大きな違いがみられるが、パフォーマンスは、一般的な用途にかぎれば、むしろ十分に「速い」とされている。 「sqlite」(sqlite3はバージョン3対応)というコマンドラインユーティリティーも付属しており、CUIでSQLiteのデータを操作できる。このユーティリティは標準入出力を使うので、シェルスクリプトなどでバッチ処理を行うことも出来る。 PHPからのデータアクセスはバージョン2のファイルに対してはsqlite関数が使えるが、バージョン3のファイルに対してはPDO経由となり、他のRDBMSへの移植性は高まるが、初心者にはその分ハードルが高くなる。 インストール基本的にPHP5をインストールするときに、configureオプション(--with-sqliteなど)としてSQLiteも同時に組み込んで利用できるようになる。Apache friendsのXAMPPにもPHP5が含まれているが、デフォルトで利用できる。XAMPPにインストールされるSQLiteは、2008年1月現在バージョン2.8.17となっている。バージョン2とバージョン3とではファイル形式が異なるので、移行には変換処理が必要となる。公開されているSQLite関連ツールを使うときには、対応バージョンを確認する必要がある。 FedoraやCentOS、Mac OS Xなどディストリビューションによっては、SQLiteがバージョン2あるいは3のみであったり、アクセスがPDO経由であったり、デフォルトでは利用できないことがある。このようなときはphp.iniの書き換え、あるいはPHP5のconfigureオプションを変更して、再度インストールしなければならないことがある。 Fedora8においてPHP5をインストールすると、バージョン3が同時にインストールされるが、利用するには/etc/php.iniに、extension=pdo.soとextension=pdo_sqlite.soの2行を書き加える必要がある。また新規のデータベースは/usr/bin/sqlite3コマンドラインツールで、ダミーのtableを含めて作成しておく。その上でPHPコード内ではPDO関数経由でSQLiteデータベースに接続する。 2008年10月現在、本家sqlite.orgからはsqlite(2)が入手できなくなっている。今後sqliteと言えばsqlite3を指すことになる可能性が高いので、レンタルサーバーではどちらが利用できるのか、phpinfo()で確認しておく必要がある。 管理ツールXAMPPの最新バージョン(linux-1.6.5a)には、PhpSQLiteAdminという管理ツールが付属するようになった。ただし日本語表示には対応しておらず、データも文字化けする。ブラウザのエンコードを一時的にUTF-8に変更してもよいが、少なくともtable_browse.php内のcharsetをUTF-8に変更すれば、正しくデータ表示できるようになる。Linux版のPhpSQLiteAdminフォルダをそのままコピーすれば、パスの変更だけでWindows版XAMPPでも動作させることができる。 またSQLiteManagerという管理ツールはバージョン2とバージョン3に対応しており、こちらは日本語メニュー表示も選択できる。ただしデフォルトのcharsetはEUC-JPなので、UTF-8対応にするには、設定ファイルであるjapanese.inc.phpをUTF-8文字コードで書き換える必要がある。なおPhpSQLiteAdminとSQLiteManagerいずれも、自身には新規データベースを作成する機能はないので、あらかじめコマンドラインツールで作成しておき、そのファイルパスを登録して管理することになる。 ODBCSQLiteのODBCドライバがサードパーティから提供されている。SQLite2とSQLite3のバージョンがあり、SQLite2のバージョンには、さらにUTF-8対応版がある。Microsoft AccessからODBCリンクするときには、データ型をあらかじめSQLite側のCREATE TABLEで宣言しておく必要がある。そうしておかないと、全てのデータ型がintとみなされることがある。日本語文字コードはUTF-8としておけば、Access側でも正しく表示される。 書籍
外部リンク |
|||||||||||||||||||||||||||||||||
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net