システムアーキテクト試験 2022年 午前2 問04
組込みシステムでDBMSを用いるときには、通通のオーバヘッド、通負荷の発生を防ぐこと、必要なメモリ容量をリソース制限内に抑えることなどを目的として、インプロセスデータベースを用いることがある。このインプロセスデータベースの説明として、適切なものはどれか。
ア:クライアントサーバ形式のクライアントとなるアプリケーションプログラムとりケットを介して通信し、SQLを用いて処理を記述する。
イ:データベースエンジンはライブラリ形式で提供され、アプリケーションプログラムとリンクされて同一メモリ空間で動作する。(正解)
ウ:データベースの全体をメモリ上に配置して、データベース処理を高速化する。
エ:一つのテーブルを一つのファイルで管理し、アプリケーションプログラムからはファイル入出力のAPIで操作する。
解説
インプロセスデータベースの特徴と利用【午前2 解説】
要点まとめ
- 結論:インプロセスデータベースはアプリケーションと同一メモリ空間で動作し、通信オーバーヘッドを削減します。
- 根拠:データベースエンジンがライブラリ形式で提供され、アプリケーションにリンクされるため、プロセス間通信が不要です。
- 差がつくポイント:クライアントサーバ型との違いや、メモリ上全体配置との混同を避けることが重要です。
正解の理由
選択肢イは「データベースエンジンがライブラリ形式で提供され、アプリケーションと同一メモリ空間で動作する」と説明しており、これがインプロセスデータベースの本質です。組込みシステムでのリソース制限や通信負荷軽減の目的に合致し、外部プロセスとの通信が不要なため高速かつ軽量に動作します。
よくある誤解
インプロセスデータベースは必ずしも全データをメモリ上に置くわけではなく、クライアントサーバ型のように通信を伴う構成でもありません。
解法ステップ
- 問題文から「インプロセスデータベース」の特徴を把握する。
- 通信オーバーヘッドやメモリ制限に関する説明に注目する。
- 選択肢の中で「同一メモリ空間で動作する」ものを探す。
- クライアントサーバ型やメモリ全体配置の説明は除外する。
- 最も適切な説明を選択する。
選択肢別の誤答解説ステップ
- ア:クライアントサーバ形式の説明であり、インプロセスデータベースの特徴とは異なります。通信負荷が発生します。
- イ:正解。ライブラリ形式でアプリケーションと同一メモリ空間で動作し、通信オーバーヘッドを削減します。
- ウ:全データをメモリ上に配置するインメモリデータベースの説明であり、インプロセスデータベースとは異なります。
- エ:ファイル単位で管理しファイルAPIで操作する方式で、インプロセスデータベースの定義とは異なります。
補足コラム
インプロセスデータベースはSQLiteなどが代表例で、組込み機器やモバイルアプリで広く利用されています。外部サーバとの通信が不要なため、リアルタイム性や省リソース性が求められる環境に適しています。
FAQ
Q: インプロセスデータベースとインメモリデータベースは同じですか?
A: いいえ。インプロセスは同一プロセス内で動作するDBMSを指し、インメモリはデータを主にメモリ上に保持するDBMSを指します。両者は異なる概念です。
A: いいえ。インプロセスは同一プロセス内で動作するDBMSを指し、インメモリはデータを主にメモリ上に保持するDBMSを指します。両者は異なる概念です。
Q: クライアントサーバ型DBMSは組込みシステムで使えませんか?
A: 通信負荷やリソース制限の観点から不向きな場合が多いですが、用途によっては利用されることもあります。
A: 通信負荷やリソース制限の観点から不向きな場合が多いですが、用途によっては利用されることもあります。
関連キーワード: インプロセスデータベース, 組込みシステム, SQLite, DBMS, 通信オーバーヘッド, メモリ制限