基本情報技術者試験 - 令和5年1月修了 - 問29
データベースシステムにおいて,二つのプログラムが同一データへのアクセス要求を行うとき,後続プログラムのアクセス要求に対する並行実行の可否の組合せのうち,適切なものはどれか。ここで,表中の○は二つのプログラムが並行して実行されることを表し,×は先行プログラムの実行終了まで後続プログラムは待たされることを表す。
| ア |
| |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| イ |
| |||||||||||||
| ウ |
| |||||||||||||
| エ |
| |||||||||||||
答え : エ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
「共用ロック」は,複数のプログラムが同時に参照することを許可するロックであり,「排他ロック」は,他のプログラムによるアクセスを一切許可しない厳しいロックです。
先行プログラムが共用ロックをかけている場合,後続プログラムが同じく共用ロックで参照しようとすることは,互いにデータを変更しないため両立可能であり許可されます。しかし,先行プログラムが共用ロックをかけている状態で,後続プログラムが排他ロックを要求した場合,データを変更しようとする操作は許可されず,待たされることになります。
また,先行プログラムが排他ロックをかけている場合には,後続プログラムが共用ロックであっても排他ロックであっても,いずれの場合も待たされることになります。この関係を整理すると,共用ロック同士のみが並行実行可能であり,それ以外の組み合わせは全て待たされるという結果になります。これは選択肢「エ」の表の内容と一致します。
他の選択肢は,共用と排他の組み合わせにおける許可・待機の関係を一部誤って記述しています。排他制御の基本ルールとして,共用ロック同士だけが両立できるという点を押さえておくことが重要です。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
同一問題 : 〔令6修7問22〕
解説 : 「共用ロック」は,複数のプログラムが同時に参照することを許可するロックであり,「排他ロック」は,他のプログラムによるアクセスを一切許可しない厳しいロックです。
先行プログラムが共用ロックをかけている場合,後続プログラムが同じく共用ロックで参照しようとすることは,互いにデータを変更しないため両立可能であり許可されます。しかし,先行プログラムが共用ロックをかけている状態で,後続プログラムが排他ロックを要求した場合,データを変更しようとする操作は許可されず,待たされることになります。
また,先行プログラムが排他ロックをかけている場合には,後続プログラムが共用ロックであっても排他ロックであっても,いずれの場合も待たされることになります。この関係を整理すると,共用ロック同士のみが並行実行可能であり,それ以外の組み合わせは全て待たされるという結果になります。これは選択肢「エ」の表の内容と一致します。
他の選択肢は,共用と排他の組み合わせにおける許可・待機の関係を一部誤って記述しています。排他制御の基本ルールとして,共用ロック同士だけが両立できるという点を押さえておくことが重要です。