SQLite とは?ページ内リンク ↓ウィキペディア(Wikipedia)記事 ↓Yahoo!知恵袋SQLite はMySQLやPostgreSQLと同じDBMS(データベース管理ソフト)であるが、サーバとしてではなくアプリケーションに組み込まれて利用される軽量データベースである。 一般的なRDBMSに比べて大規模な仕事には不向きだが、中小規模ならば速度も遜色はない。 また、APIは単純で単にライブラリを呼び出すだけであり、データの保存には単一のファイルしか使用しない事も特徴である。Ver3.3.8 から、全文検索の FTS1モジュールがサポートされた。 出典: 『ウィキペディア(Wikipedia)』 SQLite 出典: 『はてなダイアリー』 関連商品
西沢 直木 /
最安値(新品): ¥ 2,940
最安値(中古): ¥ 2,000
|
||||||||||||||||||||
| SQLite | |
|---|---|
![]() |
|
| 開発元 | D. Richard Hipp |
| 最新版 | 3.6.6.2 / 2008年11月26日 |
| 対応OS | クロスプラットフォーム |
| 種別 | データベース管理システム |
| ライセンス | パブリックドメイン |
| 公式サイト | SQLite |
SQLite はMySQLやPostgreSQLと同じDBMS(データベース管理ソフト)であるが、サーバとしてではなくアプリケーションに組み込まれて利用される軽量データベースである。 一般的なRDBMSに比べて大規模な仕事には不向きだが、中小規模ならば速度も遜色はない。 また、APIは単純で単にライブラリを呼び出すだけであり、データの保存には単一のファイルしか使用しない事も特徴である。Ver3.3.8 から、全文検索の FTS1モジュールがサポートされた。
目次 |
SQLiteは、クライアントサーバモデルではなく、ユーザーの概念もないためパスワードも不要で、利用者は、データの取り扱いをプログラムに依存することによって、その存在を意識することなく利用できる。 そのうえ、データベースは単一ファイルであり、ファイル間の相互参照等を持たず、マシンのバイトオーダにも依存しないため、別マシンにデータを持ち運ぶ、といった可搬性が高く、利用者にとって扱いやすい形式となっている。ただしそのためにセキュリティが甘くなるという問題が生じる。
ソフトウェア開発においては、サーバ等を必要とせず、アプリケーションに組み込んだsqliteのライブラリを呼び出してSQLを実行するだけの簡素なものであるため、ファイルの入出力に近い感覚で取り扱える。 PHPやPythonなど標準ライブラリに含まれている場合もある。 生成されるファイルの権限は、実行ユーザーの権限に依存することになる。 マルチスレッドからのデータベースのアクセスが可能であり、簡素ながらも一時的なアーカイブログ・ファイルを作成することでACID特性を標準でサポートしている。
SQLの構文はSQL標準に準拠しており乗り換えもさほど難しくない。機能的にはPostgreSQLよりMySQLとの親和性が高い。 小規模のブログや掲示板などでは、データベースの選択肢の一つとして利用できることもある。カテゴリー単位でデータベースファイルを設置できるので、負荷を分散させやすいメリットもある。 移行時の注意点としては、カラムに指定するデータ型は名目的なものであり、制約として機能しない点などがある。 SQLiteでは(ROWIDを除き)カラムに宣言した型にかかわらず、どのようなデータも格納できる。 また、カラムの長さも常に可変であり、長さや精度の指定は意味をもたない。 DATETIMEを扱うときは、表示そのままの文字列と、内部形式の数値として保存する方法がある。日数計算や並べ替えなど演算を行うには注意が必要である。 レコードサイズも可変であり、格納に必要な最小限のディスクスペースのみ、必要なだけ消費する。 これは柔軟なデータの格納を可能とするが、逆に言えば、あらゆるデータを格納できると言うことはセキュリティ上問題となるデータも送りつけることが可能と言うことである。そのため、この自由度が逆に脆弱性になる場合もあるので注意が必要である。
データの格納という点では従来型のデータベースと大きな違いがみられるが、パフォーマンスは、一般的な用途にかぎれば、むしろ十分に「速い」とされている。
「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文字コードで書き換える必要がある。新しいデータベースを作成するには、設置するディレクトリへのパスでファイル名を指定すればよく、その後必要なテーブルを追加する。
別の管理ツールとして、Mozilla Firefox のアドオンとして動作する SQLite Manager がある(上記の物と名称が似ているが別物)。ブラウザからGUIにてデータベースに対する基本的な操作が可能である。
SQLiteのODBCドライバがサードパーティから提供されている。SQLite2とSQLite3のバージョンがあり、SQLite2のバージョンには、さらにUTF-8対応版がある。Microsoft AccessからODBCリンクするときには、データ型をあらかじめSQLite側のCREATE TABLEで宣言しておく必要がある。そうしておかないと、全てのデータ型がintとみなされることがある。日本語文字コードはUTF-8としておけば、Access側でも正しく表示される。
PageRank5以上の相互リンク
・相互リンクスクエア
(PageRank 5)
・相互リンク インプロス
(PageRank 5)
→便利!NINJA TOOLS
→FC2検索
用語
Wikipedia
YouTube
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
![]() |