平成30年度 春期 午前 問30
データベース
ロックの粒度に関する問題
RDBMS のロックの粒度に関する次の記述において,a,b の組合せとして適切なものはどれか。
並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのは a 単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するための RDBMS のメモリ使用領域がより多く必要になるのは b 単位のロックを使用する場合である。
選択肢は原典では a・b の2列の表。
- アa:行 / b:行
- イa:行 / b:表
- ウa:表 / b:行
- エa:表 / b:表
答えと解説を見る
✓ これが正解ウa:表 / b:行
解説
競合は表単位、記憶領域は行単位で多くなります。
ロックの粒度とは、一度にどれだけの範囲をまとめて押さえるかということです。二つの空欄は、それぞれ別のことを聞いていました。前半は競合の起こりやすさ、後半は管理のために必要な記憶領域です。押さえる範囲が広いほど、他の処理とぶつかる機会は増えます。表をまとめて押さえてしまえば、その表の中のどこに触れたい相手も待たされました。だから前半に入るのは範囲の広いほうです。一方、細かく押さえるほど、押さえた印を一つずつ覚えておく必要が出てきます。行ごとに印を持てば、その数だけ管理の場所が必要でした。だから後半に入るのは細かいほうです。前半と後半で答えの向きが逆になるところが、この設問の要点でした。
ほかの選択肢はなぜ違うのか
- アa:行 / b:行:前半にも後半にも行単位を置いています。ところが範囲を狭く取れば、同じ表の別のところに触れる処理は待たずに済みました。ぶつかりやすいのは狭いほうではありません。前半の答えとして向きが逆になっています。
- イa:行 / b:表:前半に行単位、後半に表単位を置いています。二つとも設問の向きと食い違いました。ぶつかる機会が増えるのは広く押さえたときで、覚えておく印が増えるのは細かく押さえたときです。二つの答えが入れ替わっています。
- エa:表 / b:表:前半の表単位までは設問の向きに合っています。しかし後半にも表単位を置きました。表をまとめて一つ押さえるだけなら、覚えておく印は少なくて済みます。管理の場所が多く必要な側の説明にはなりません。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成30年度 春期 基本情報技術者試験 午前 問30
同じ用語が出る問題
- 令和6年度 科目A 問7:原子性に関する問題(トランザクション)
- 令和5年度 科目A 問7:ACIDに関する問題(トランザクション)
- 令和元年度 秋期 午前 問29:ロックが発生しないデータ処理順序(トランザクション)
- 令和元年度 秋期 午前 問28:取ることのない状態遷移(トランザクション)
- 平成30年度 秋期 午前 問55:キャパシティ管理に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)