SQLite データベースから SQL ダンプへのコンバーター
SQLiteデータベースファイルをSQLダンプテキストスクリプトに変換すると、バイナリデータベースが読みやすいテキストコマンドに変換され、データベースの移行やサーバーへのインポートが簡単になります。
フォーマットの比較と技術仕様
| 仕様 | SQLITE | SQL |
|---|---|---|
| MIMEタイプ | application/vnd.sqlite3 | text/plain |
| タイプ | embedded relational database | relational schema & query script |
| 圧縮 | B-Tree page allocation | none (plain text DDL/DML script) |
| 標準仕様 | SQLite Database File Format 3 | ISO/IEC 9075 SQL Standard |
| マジックバイトヘッダー | 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 (SQLite format 3\0) | 2D 2D (--) or CREATE TABLE SQL statement |
フォーマットの概要と用途
SQLiteは、自己完結型の単一バイナリファイル内にリレーショナルデータベース全体を格納します。開発者やシステム管理者は、ローカルのSQLiteアプリからMySQLやPostgreSQLなどの大規模なサーバーシステムにデータを移行する必要がよくあります。サーバーデータベースはSQLiteバイナリファイルを直接読み取ることができないため、ファイルをSQLスクリプトに変更することでこの問題が解決されます。SQLスクリプトには、新しいサーバーで実行されたときにテーブルを再作成し、インデックスを追加し、データを挿入するプレーンテキストの指示が含まれています。 この変換ワークフローは、Webアプリケーションをテスト環境からライブの本番サーバーに移行する際に一般的です。ソフトウェアエンジニアは、長期的なデータアーカイブのためにSQLテキストスクリプトも使用します。特定のデータベースソフトウェアが古くなった場合でも、プレーンテキストファイルは何十年もの間読み取り可能な状態を維持します。バイナリデータベースからSQLスクリプトを生成することで、開発者は基本的なテキストエディタやGitなどのバージョン管理ツールを使用してデータの変更を検査できます。
技術仕様とコーデックの内訳
SQLiteデータベース(MIMEタイプ application/vnd.sqlite3)は、テキスト文字列「SQLite format 3\000」に一致する明確な16バイトのマジックナンバーヘッダーで始まります。ファイルは、バイナリ形式でテーブルとインデックスを整理するためにB-Treeページ割り当てシステムを使用しています。対照的に、SQLダンプ(MIMEタイプ text/plain)にはバイナリマジックナンバーが含まれていません。これは、CREATE TABLEのような標準的なデータ定義言語コマンドやINSERT INTOのようなデータ操作言語コマンドが詰まった、圧縮されていないASCIIまたはUTF-8のテキストファイルです。これらを相互変換するには、バイナリのB-Treeページを読み取り、テキストステートメントを出力する必要があります。
OSとブラウザの互換性
SQLiteファイルは、データベースブラウザ、モバイルアプリ、PythonまたはPHPスクリプトでネイティブに開きます。SQLテキストダンプは、NotepadやTextEditなどの任意の基本的なテキストエディタで開き、MySQL、PostgreSQL、Microsoft SQL Serverなどの主要なリレーショナルデータベースエンジン上で実行されます。SQLダンプはプレーンテキストであるため、特別なデータベースドライバなしで、Windows、macOS、Linux、iOS、Android全体で普遍的に動作します。
💡 役立つ情報
異なるオペレーティングシステム間で特殊記号や英語以外のテキストを転送する際の文字化けを防ぐため、SQLダンプは必ずUTF-8エンコーディングでエクスポートしてください。
フォーマットの比較と技術仕様
50MBのSQLiteバイナリデータベースファイルは、圧縮されていない55MBのテキストSQLダンプに変換されると、わずかに縮小または拡大します。秒速30メガビットのダウンロード速度を持つ標準的な4Gモバイルネットワークでは、このテキストファイルの転送に約15秒かかります。高速な5G接続では3秒未満で転送され、高速な光回線では1秒未満でほぼ瞬時にファイルが移動します。
よくある質問
品質を落とさずに SQLite データベースを SQL ダンプに変換するにはどうすればよいですか?
両方の形式がまったく同じリレーショナルテーブル、行、列を格納しているため、変換は完全に可逆的です。テキストのエクスポートプロセス中に、データ値、型、制約が破損したり破棄されたりすることはありません。
SQLite データベースと SQL ダンプの違いは何ですか?
SQLiteデータベースは、高速なローカルクエリのためにB-Treeを使用して固定サイズのページに整理されたバイナリファイルです。SQLダンプは、別のサーバー上でデータベースを再構築するために使用される、人間が読めるデータベースコマンドを含むプレーンテキストスクリプトです。