コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
Wikippe
検索
検索
表示
ログイン
個人用ツール
ログイン
SQLiteのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
SQLite
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
{{複数の問題 |出典の明記=2013年12月 |大言壮語=2013年12月 }} {{Infobox Software |名称 = SQLite |ロゴ = [[File:SQLite370.svg|200px]] |スクリーンショット = |説明文 = |開発元 = D. Richard Hipp |初版 = {{release date and age|2000|08|17}} |frequently updated = yes |プログラミング言語 = [[C言語|C]] |対応OS = [[クロスプラットフォーム]] |種別 = [[関係データベース管理システム]] |ライセンス = [[パブリックドメイン]] |公式サイト = [http://www.sqlite.org/ www.sqlite.org] }} '''SQLite'''(エスキューライト<ref>{{cite web|url=http://www.sophia-it.com/content/SQLite|title=SQLiteとは エスキューライト: - IT用語辞典バイナリ|accessdate=2014-06-14}}</ref><ref>{{cite web|url=http://www.kddi.com/yogo/%E6%83%85%E5%A0%B1%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0/SQLite.html|title=SQLite | 用語集 | KDDI株式会社|accessdate=2014-06-14}}</ref>、エスキューエライト<ref>{{cite web|url=https://www.youtube.com/watch?v=jN_YdMdjVpU|title=An Introduction to SQLite|accessdate=2014-06-20}}</ref><ref>{{cite web|url=http://railstutorial.jp/books/4.0/modeling-users.html#fn-6_5|title=Ruby on Rails チュートリアル|accessdate=2014-06-20}}</ref>)は、[[パブリックドメイン]]の軽量な[[関係データベース管理システム]] (RDBMS) である。 == 概要 == サーバとしてではなく[[アプリケーションソフトウェア|アプリケーション]]に組み込んで利用される軽量のデータベースである。 一般的な[[関係データベース管理システム|RDBMS]]に比べて大規模な仕事には不向きだが、中小規模ならば速度に遜色はない。 また、APIは単純にライブラリを呼び出すだけであり、データの保存に単一のファイルのみを使用することが特徴である。バージョン3.3.8からは[[全文検索]]のFTS1モジュールがサポートされた。その後 FTS2 - FTS3 と強化を続けバージョン3.7.4からはFTS4モジュールがサポートされている。 == 特徴 == * [[SQL]]92の機能の多くを実装 * 著作権を放棄し[[パブリックドメイン]]に帰している * [[サーバ]]ではなく[[ライブラリ]] ** ライブラリは数百KB程度の小さなフットプリント ** Cランタイム以外の別途ライブラリを必要としない ** 管理ツールによるセットアップやメンテナンスを必要としない ** コマンドラインツールも使える * [[エンディアン|バイトオーダ]]に依存しない(2.6.3以降)、可搬性のある単一ファイル ** 最大128TiBまで ** ファイルを使わない、揮発性の[[インメモリデータベース]]としても利用可能 * [[データ型]]を指定する必要がない ** サポートしている型は、Null/Integer/Real/Text/BLOBのみ ** [[Unicode]]のサポート ** BLOBはメモリの許す限り ** ROWIDを持っている(しかし、3.6.18以前は外部制約キーの仕組みがない) * [[トランザクション]]のサポート ** スレッドセーフである(バイナリによる配布ではリコンパイルが必要な場合もあり) * ビューのサポート * トリガーのサポート * [[C言語]]を使って関数を追加できる * [[Tcl/Tk|Tcl]][[束縛 (情報工学)|バインディング]]を配布キットに標準添付している * [[PHP: Hypertext Preprocessor|PHP]]5、[[Python]] 2.5、[[Adobe AIR]]で標準サポート * その他、[[C言語|C]], [[C++]], [[Curl (プログラミング言語)|Curl]], [[Perl]], [[Ruby]], [[Delphi]]など多数の言語用のバインディング * [[全文検索]]のFTS1モジュールがサポートされ、[[SQL]]文で[[全文検索]]インデックスに対して検索できる * [[Android]]端末の標準ライブラリとして採用されている == 解説 == SQLiteは本体プログラムに対して、直接リンクした[[ライブラリ]]もしくは[[共有ライブラリ]]や[[ダイナミックリンクライブラリ]]の形で利用できる、組み込み型データベースエンジンである。その特徴として、おおむね600kb前後のフットプリントでフルセットのSQLステートメントと型束縛のないデータセットを利用することができる。データベースストレージに対するアクセスも内蔵しており、ファイル及び[[インメモリデータベース|インメモリ]]ストレージに対応している。ファイルを共有することで複数のアプリケーションがデータベースインスタンスを共有することも可能であり、サーバ・クライアントモデルではないアプリケーションローカルで使用するデータベースエンジンとしては非常に合理的な設計となっている。 正しく使用すると、SQLiteは非常にセキュアなデータベースエンジンとして使用することができる。理由として、サーバ・クライアントモデルではないので、複数のクライアントが利用するサーバが保有するデータベースインスタンスに打撃を与えることが基本的にできない。どれだけの壁を突破しようとも、アプリケーションが所有するデータベースインスタンスまでしか到達できないためである。型束縛がないことがセキュリティ上の懸念としてあげられるが、これは同様に型束縛がないスカラ型を利用できるデータベース全般に言えることでありSQLiteの本質にはなんら関係ない。 SQLiteのもう一つの特徴は、バイトオーダーに依存しない、アーキテクチャ非依存のストレージを採用していることである。このため、データベースインスタンスを格納したストレージとなったファイルは再利用性が高く、ストレージバージョンに気をつければ、アプリケーションからストレージを取り出し、全く別のOSやアーキテクチャで動作している別のアプリケーションにデータを変換することなく移すことができる。 組み込み型であること、ストレージまでネイティブコードで直接実行し、間になんらかのプロトコルやプロセス間通信がないため、その動作は非常に高速である。一度トランザクションを開始するとストレージはロックされ、トランザクション中のセッションは最大限設定値で許されたキャッシュを有効利用して動作するため、SQLという複雑高度なステートメントを使用していることをユーザーに意識させない程高速にデータベースにアクセスすることができる。これは応答性が重要なアプリケーションでは重要な要素となり、SQLiteをサーバとの中間にキャッシュとして採用する事例や、アプリケーション組み込みデータベースエンジンとしての採用を促す理由ともなっている。 標準で搭載しているデータセットの型は整数型 (INTEGER)、文字列型 (TEXT)、無制限スカラ型 (BLOB) の3種類である。実際の所INTEGER型がバイナリ値に変換されること、TEXT型がアプリケーション層に対して文字列変換が必要なヒントになり得る以外は、アプリケーションに対して型束縛が非常に緩和されている。事前に文字列スカラがどれだけの領域を必要とするかCREATE TABLEステートメント実行時に宣言する必要はないため、アプリケーションの基礎設計に対して極めて寛大であり、仕様変更のためにデータベースを変換ないしは再構築する必要がなく、アプリケーション開発を容易なものとしている。 後述のCUIベースの管理ツールを標準で備える他、複数のGUIベース管理ソフトウエアが豊富である。またストレージ仕様がアーキテクチャに依存しないため、管理ツールの直接実行が難しいシステム(組み込みソフトウエア開発等)においても、ストレージを取り出してWindowsマシン等でデータを確認したりSQLステートメントを実行することが可能である。 === 管理ツール === 「sqlite」または「sqlite3」というコマンドラインユーティリティーが付属しており、[[キャラクターユーザインターフェース|CUI]]でSQLiteのデータを操作できる。このユーティリティは標準入出力を使うので、シェルスクリプトなどでバッチ処理を行うことも出来る。 またSQLiteManagerという管理ツールはバージョン2とバージョン3に対応しており、こちらは日本語メニュー表示も選択できる。ただし既定のcharsetはEUC-JPなので、UTF-8対応にするには、設定ファイルであるjapanese.inc.phpをUTF-8文字コードに書き換える必要がある。新しいデータベースを作成するには、設置するディレクトリへのパスでファイル名を指定すればよく、その後必要なテーブルを追加する。このツールはブラウザのキャッシュが効いていると、正しいデータがすぐ反映されないので、注意が必要である。 別の管理ツールとして、[[Mozilla Firefox]]のアドオンSQLite Managerがある。WebブラウザからGUIにてデータベースに対する基本的な操作が可能である。 === ODBC === SQLiteのODBCドライバがサードパーティから提供されている。SQLite 2とSQLite 3のバージョンがあり、SQLite 2向けには、さらにUTF-8対応版がある。[[Microsoft Access]]からODBCリンクするときには、データ型をあらかじめSQLite側のCREATE TABLEで宣言しておく必要がある。そうしておかないと、全てのデータ型がintとみなされることがある。日本語文字コードはUTF-8としておけば、Access側でも正しく表示される。 == 書籍 == * ''The Definitive Guide to SQLite'' 2006/06/19, ISBN 1-59059-673-0 * ''SQLite 入門'' 2005/09, ISBN 4-7981-0943-6 * ''PHP+SQLite実践サンプルブック'' 2005/07, ISBN 4-88337-429-7 * ''改訂版PHPポケットリファレンス'' 2005/09, ISBN 4-7741-2502-4 * ''SQLite 入門 第2版'' 2009/05, ISBN 978-4-7981-1944-1 * ''SQLiteポケットリファレンス'' 2010/10, ISBN 978-4-7741-4394-1 * ''Android UIデザイン&データベースプログラミング'' 2011/06, ISBN 978-4-88337-761-9 == 脚注 == {{Reflist}} == 関連項目 == {{Portal|FLOSS|[[ファイル:FLOSS_logo.png|41px]]}} * [[Apache Derby]] * [[H2 Database]] == 外部リンク == * [http://www.sqlite.org/ SQLite Home Page] * [http://www.ch-werner.de/sqliteodbc/ SQLite ODBC Driver] * [http://www.sqlitedeveloper.com/ SQLite Developer home page] * [http://www.sqlitemanager.org/ SQLiteManager home page] * [http://www.yunqa.de/delphi/sqlitespy/ SQLiteSpy]. [[Microsoft Windows|Win32]], [[Unicode]]. * [http://www.nucleonsoftware.com Database Master] * [http://www.dadabik.org DaDaBIK Database Interfaces Kreator] [[Category:データベース管理システム]] [[Category:ライブラリ (プログラミング)]] [[Category:パブリックドメイン]]
このページで使用されているテンプレート:
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Infobox Software
(
ソースを閲覧
)
テンプレート:Portal
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:複数の問題
(
ソースを閲覧
)
SQLite
に戻る。
検索
検索
SQLiteのソースを表示
話題を追加