リレーショナルデータベース・カタログ
山田祥寛(http://www.wings.msn.to/)
2004/6/15
手軽な導入と高パフォーマンス SQLite 2.8.13 |
|
■製品概要
SQLiteはパブリックドメイン(著作権放棄)として提供されており、無償で入手可能なデータベースだ。ソースコードの改変や第三者への再配布も自由に行える。
ほかのRDBMSと大きく異なるのは、SQLiteがいわゆるクライアント/サーバ構成ではないという点だ。デーモンが常駐するわけでもなく、1データベース1ファイルからなるその構成は、むしろMicrosoft Accessに近いかもしれない。実行プログラム(ライブラリ)からデータベースに対する操作も、ファイルに対する読み書きという形で行われる。また、ユーザーという概念もSQLiteではサポートしておらず、データベースに対するアクセス制御はすべてOSのユーザー属性によって行う。
もっとも、SQLiteが一般ユーザーによる利用を想定したパーソナルデータベースであると断じるのは早計だ。SQLiteの特徴として、公式ページで挙げられている主要な項目を以下に挙げる。
- 標準的なSQL92仕様に準拠(一部サポート外)
- ACIDトランザクションをサポート
- データベースファイルは異なるマシン間で共有可能
-
データベースファイルの上限は2Tbytes
- メモリ消費量が少ない
- 多言語対応
基本的な用途においては、必要十分な機能を搭載していることがお分かりいただけるだろう。事実、10万件レベルのデータを投入した限りでは、高速性を旨とするMySQLと比べてもほぼ遜色ないパフォーマンスを発揮することを確認している。
■注目ポイント
●SQL92仕様への準拠
SQLiteは基本的なSQL92仕様に準拠しており、一般的なSQL命令やトランザクション処理を利用できる。ただし、完全なSQL92仕様に準拠しているわけではないので注意が必要だ。未サポート項目については、「sqlite - Unsupported Sql」(http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql)を参照。
なお、SQLiteで更新系の処理を行う場合、トランザクションが(事実上)必須であることに注意。というのは、INSERT/UPDATE/DELETEなどの処理を行う際に、トランザクションを利用した場合に対して、しない場合は処理速度が極端に低下するからだ。
●主要なプログラミング言語への対応
主要なRDBMSに劣らない豊富なプログラミング言語サポートは、SQLiteの特徴の1つである。特に、ここ数年間に急速に普及してきたPHPが次期バージョンの5.xからSQLiteを標準バンドルする点にも注目したい。今後、PHPが利用可能なレンタルサーバなどでも、SQLiteを標準サポートするところが増えてくることが予想される。
●タイプレスなテーブル
SQLiteの見逃してはならない特徴として、データ型を意識することなくテーブル設計が可能な「タイプレス」である点が挙げられる。すなわち、SQLiteでは以下のようなCREATE TABLE命令が発行可能である。
CREATE TABLE books (isbn, title, price, publish_date) |
もちろん、通常のデータベース同様、データ型を明示したテーブルを定義することも可能だが、これはあくまで形式上の定義にすぎない。INSERT/UPDATEを実行する際に、型制約は行われないので注意が必要だ。
以上のように、SQLiteは「データ型を持たない」「ストアドプロシージャが使えない」「ユーザーの概念を持たない」など、ほかのRDBMSに比べて機能不足の感は否めない。ただ、大量のデータ投入においても十分なパフォーマンスを発揮しており、ごく基本的な利用方法であればおそらく十分に実用に耐え得るであろうというのが、筆者の所感である。また、導入の手軽さという点で群を抜いているのも事実だ。今後、PHP5に標準バンドルされることで急速にユーザー層が広がることも予想され、今後に期待したいデータベースの1つでもある。
|
8/9
|
|
||||||||||||||||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム 製品情報・レビュー関連記事 |
特集:2007年、Linuxディストリビューションの歩みを振り返る 商用、非商用ともにメジャーバージョンアップが相次いだ2007年。主なディストリビューションを取り上げ、アップデート内容を紹介します |
|
プロダクトレビュー[Ubuntu 7.10 日本語ローカライズド Desktop CD] 海外のみならず日本国内でも人気急上昇中のUbuntu。優れたインターフェイスを備えるとともに、豊富な機能がコンパクトにパッケージされている |
|
特集:業務で使うデスクトップLinux カタログ 定型業務さえこなせればよいという部門も多い企業環境は、コンシューマ市場以上にLinuxへの移行が容易ともいえる。そこで、6つのLinuxディストリビューションを紹介する |
|
特集:Linuxで動くリレーショナルデータベース・カタログ データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい |
|
特集:Windowsで動くXサーバ・カタログ やや特殊な用途に用いられてきたXサーバだが、活用しだいでは普通の管理用途にも有用だ。そこで、Windowsで動作する6本のXサーバを紹介する。選択の参考にしてほしい |
|
特集:Linuxで動くJavaアプリケーションサーバ・カタログ アプリケーションサーバは、いま最も開発競争が激しいジャンルの1つだ。その中から、Linuxに対応する5つの商用製品を紹介する。製品導入の際の参考にしてほしい |
|
特集:Linuxで動くWebグループウェア・カタログ Linuxを業務用サーバに採用するケースも増えている。そこで、Linuxをサーバとして利用するWebベースのグループウェアを紹介しよう |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|