知識マップ: Windowsアプリのデータ保存先の選び方 ── SQLite / JSON / レジストリ / Access 判断表

記事「Windowsアプリのデータ保存先の選び方 ── SQLite / JSON / レジストリ / Access 判断表」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

Windowsアプリのローカルデータ保存は、どこに置くか(LocalAppData・ProgramData・Roaming)と何で保存するか(JSON・SQLite・レジストリ・Access)を分けて判断します。構造化された小さな設定はJSONファイル、増え続ける業務データや履歴はSQLiteが第一候補で、SQLiteはWALモードにより読み書きを両立できますが、ネットワークファイルシステム上では機能せずSMB共有には向きません。レジストリは小さなフラグとWindows連携情報に限られ、32bit/64bitのレジストリリダイレクションを理解せずに使うと値が見えなくなります。Access(.accdb)は新規採用の理由がほぼなく、ACEプロバイダーのビット数一致という制約が付きまといます。機密情報は形式を問わずDPAPIによる暗号化が前提で、複数マシンでの共有が必要になったらSQL Server Expressのようなサーバー型DBへ卒業する判断になります。

Windowsアプリのローカルデータ保存先の知識マップ設定はJSON、増えるデータはSQLite、レジストリは小さなフラグだけという使い分けと、LocalAppData・ProgramData・Roamingの置き場所、機密情報をDPAPIで守る設計の関係を示す図。に保存されるに保存されるに保存されるで構成できる用いるのは非推奨利用する両立しない用いるのは非推奨利用する推奨される対応利用する前提とする前提とするの後継用いるのは非推奨推奨される対応軽減する原因になり得る防止する原因になり得る両立しないに保存されるSQLiteJSONファイルレジストリ%LOCALAPPDATA%%PROGRAMDATA%インストーラー%APPDATA%(Roaming)WALモード(Write-Ahead Logging)SMB(TCP 445).NET(Core以降)DPAPIアプリの秘密情報レジストリリダイレクター(Wow6432Node)Access(.accdb)ACE(Access Database Engine)プロバイダーbitness一致要件複数マシンからのデータ共有要件SQL Server Express書き込み中断によるファイル破損電源断・OSクラッシュアトミックなファイル置き換え(File.Replace)ハードウェア交換

概念間の関係(全22件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

SQLite
デスクトップ業務アプリでよく使われる組み込み型のリレーショナルデータベースエンジン。
JSONファイル
構造化された小さいデータを人間が読める形式で保存する、設定用途の第一候補となるファイル形式。
レジストリ
Windowsが設定情報を階層的なキーと値で保持するシステムのデータストアで、小さなフラグやWindows連携情報の保存に適する。
%PROGRAMDATA%
全ユーザー共有のデータを保存する既知フォルダー。既定のACLでは別ユーザーが変更できない構成になり得る。
%APPDATA%(Roaming)
移動ユーザープロファイル環境でログオン・ログオフ時に同期される既知フォルダー。
WALモード(Write-Ahead Logging)
変更をデータベース本体ではなく隣接する-walファイルへ追記していき、読み取りと書き込みを同時に進められるようにするSQLiteのジャーナリングモード。
.NET(Core以降)
.NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。
DPAPI
実行中のマシン上でアプリの秘密情報を保護するWindowsのデータ保護API。
Access(.accdb)
JET/ACEエンジンを使うMicrosoft Accessのローカルデータベースファイル形式。新規開発でデータストアに選ぶ理由はほぼない。
ACE(Access Database Engine)プロバイダー
.accdb/.mdbへコードから接続するために必要な、Officeのデータアクセスコンポーネント。
SQL Server Express
データベース10GBまで無償で使えるSQL Serverのエディションで、ローカル保存を卒業する際のサーバー型DBの選択肢の一つ。
電源断・OSクラッシュ
システム全体が突然停止する障害。電源喪失やブルースクリーンなど。キャッシュ上のダーティページを失わせる。
アトミックなファイル置き換え(File.Replace)
一時ファイルに書き込んでから既存ファイルと入れ替える、書き込み中断時の破損を防ぐファイル更新パターン。
アプリの秘密情報
業務アプリが扱う接続文字列・APIキーなどの秘密情報。ログオン済みマシンではドライブ暗号化では守れない。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。