実体験から始める情報講座

基本情報技術者講座

★ 猫本 6-04 トランザクション処理(その2) ★

基本情報技術者 平成28年度春期 問30

DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。

ア  再編成
イ  正規化
ウ  整合性制約
エ  排他制御

解説

ア  データベースに対し,追加,更新,削除を繰り返すと,再利用されない領域が発生し,データベース容量の増大と処理速度の低下を招く。不連続な空き領域を整理して,性能劣化を回避するために行う。(FE16.2.58)
イ  データの矛盾や重複を排除して,データの維持管理を容易にする。(IP31.1.92)
ウ  データの不整合が発生しないように行う制約。一意制約,非NULL制約
エ  複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。(IP01.2.64)(正解)

解答

基本情報技術者 平成30年度秋期 問29

ロックの粒度に関する説明のうち,適切なものはどれか。

ア  データを更新するときに,粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。
イ  同一のデータを更新するトランザクション数が多いときに,粒度を大きくすると,同時実行できるトランザクション数が増える。
ウ  表の全データを参照するときに,粒度を大きくすると,他のトランザクションのデータ参照を妨げないようにできる。
エ  粒度を大きくすると,含まれるデータ数が多くなるので,一つのトランザクションでかけるロックの個数が多くなる。

解説

ア  データを更新するときに粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。(正解)
イ  粒度を大きくすると,同時実行できるトランザクション数が減る
ウ  あるトランザクションから共有ロックを掛けたデータに対して,粒度に関係なく他のトランザクションから参照できる。
エ  粒度を大きくすると,一つのトランザクションでかけるロックの個数が少なくなる

解答

基本情報技術者 平成30年度春期 問30

RDBMSのロックの粒度に関する次の記述において,a,bの組合せとして適切なものはどれか。

並行に処理される2つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのは【 a 】単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは【 b 】単位のロックを使用する場合である。

解説

・表単位のロックは,行単位のロックに比べて範囲が広くなる。 → 表単位のロックの方が,ロックの競合がより起こりやすい(同時に実行できるトランザクション数が減る)。

・行単位のロックは,表単位のロックに比べて管理するロック数が増える。 → 行単位のロックの方が,トランザクション実行中にロックを管理するためのメモリ使用領域がより多く必要になる。


行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると, ロックの競合がより起こりやすいのは【】単位のロックを使用する場合である。 また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは 【】単位のロックを使用する場合である。

よって,ウである。

解答