登場人物
美咲(みさき)
女子大生。就活のエントリーシートの資格欄が真っ白なことに気づき、慌ててITパスポートの勉強を開始。ITは完全に素人。高校時代は可愛くて人気者だったので、ちょっとプライドが高い。素直じゃない。
拓也(たくや)
美咲の高校時代の同級生。東京大学工学部。子どもの頃からパソコンばかりいじってきた生粋のオタク。実は美咲のことが好きだが、10年近く言い出せていない。教えるのは得意だが、口が悪いのが玉に瑕。
今日の問題
今日の問題
トランザクション処理に関する記述のうち、適切なものはどれか。
- アコミットとは、トランザクションが正常に処理されなかったときに、データベースをトランザクション開始前の状態に戻すことである。
- イ排他制御とは、トランザクションが正常に処理されたときに、データベースの内容を確定させることである。
- ウロールバックとは、複数のトランザクションが同時に同一データを更新しようとしたときに、データの矛盾が起きないようにすることである。
- エログとは、データベースの更新履歴を記録したファイルのことである。
第1幕:閉店後のレジ前で
12月、閉店作業を手伝いに、拓也が美咲のバイト先に顔を出していた。レジの操作画面には「取り消し」「会計確定」といったボタンが並んでいる。
美咲
このレジ、間違えたときの"取り消し"ボタンがあるから助かるのよね
拓也
あ、それ、今日の問題にちょうどいい話だ
美咲
レジ画面からも繋げるの、もう職業病ね
拓也
今回は本当に、このレジの仕組みそのものがヒントなんだって
第2幕:前の状態に戻すのがコミットでしょ
休憩スペースで、拓也がノートを広げる。
美咲
じゃあ答えるわね。これアでしょ。『処理が失敗したら、開始前の状態に戻す』
拓也
お、なんでそう思った?
美咲
だって、それ"元に戻す"処理のことでしょ? 前に図書館の回で習ったロールバックのことだと思ったのよね
拓也
美咲が言ってる内容自体は合ってるんだ。それ、確かにロールバックの説明。でも、この選択肢のラベル、よく見て。"コミットとは"って書いてあるよね
美咲
あ……! 中身はロールバックの説明なのに、名前が"コミット"になってる!
拓也
そのとおり。この問題、実は4つの選択肢が、それぞれ別の用語の説明を、名前だけ入れ替えて出題されてるんだ
第3幕:レジのボタン、4つの役割
拓也は、レジの操作画面を順番に指さした。
拓也
この"会計確定"ボタン、押したら取引が確定するよね。これがコミット。トランザクションが正常に処理されたときに、内容を確定させること
美咲
うん
拓也
逆に"取り消し"ボタンは、さっきの話のとおりロールバック。処理が失敗したときに、開始前の状態に戻すこと
美咲
じゃあ、さっきのウの説明は?
拓也
それは排他制御。複数のトランザクションが同時に同じデータを更新しようとしたとき、矛盾が起きないように制御すること。二人のレジ担当が同時に同じ会計を触れないようにする仕組み、みたいなイメージだね
美咲
あ……! じゃあ残った"ログ"が、正しい説明のまま残ってるってこと?
拓也
そのとおり。正解はエ。ログとは、データベースの更新履歴を記録したファイルのこと。レジで言えば、取引履歴のレシート控えみたいなものだね。この問題、コミット・排他制御・ロールバックの説明を、それぞれ名前だけずらして出題してたんだ
美咲
なるほどね……。中身は合ってるのに名前が違うから、油断できないのね
第4幕:……あ、本当に消えた
説明を終えた拓也が、実演のつもりでレジ画面に触れた。
拓也
ちなみに、この"取り消し"ボタンを押すと、直前の会計がこう――
美咲
ちょっと待っ――
拓也
……あ、本当に消えた
画面には、さっき確定したばかりの本物の会計記録が、綺麗に取り消されていた。
美咲
実演のつもりで、本気でレジ操作しないでよ! 今の、後で店長に報告しなきゃいけないやつじゃない
拓也
ごめん、説明に夢中で、これが実機だってこと忘れてた……
美咲
レジは実験台じゃないの。次から、説明は口だけにして
拓也
肝に銘じます……。あとでちゃんと店長に謝ります
美咲
そうしなさい
第5幕:残りの選択肢を片付ける
事情を書き留めたメモを片手に、拓也が改めて説明する。
美咲
……気を取り直して。もう一度、イとウも確認させて
拓也
イの『排他制御とは、正常に処理されたときに内容を確定させること』は、実際はコミットの説明。名前が入れ替わってるんだったね
美咲
ウの『ロールバックとは、同時更新の矛盾を防ぐこと』は?
拓也
それは排他制御の説明。ロールバックは"取り消して戻す"操作だから、こっちも名前が入れ替わってるんだ
美咲
コミットは確定、ロールバックは取り消し、排他制御は同時更新の矛盾防止、ログは更新履歴の記録。……この4つ、それぞれ全然違う役割なのね
拓也
完璧な整理。トランザクション処理の基本用語は、この4つをセットで覚えておくと、名前を入れ替えられても惑わされなくなるよ
問題文(再掲)
トランザクション処理に関する記述のうち、適切なものはどれか。
- アコミットとは、トランザクションが正常に処理されなかったときに、データベースをトランザクション開始前の状態に戻すことである。
- イ排他制御とは、トランザクションが正常に処理されたときに、データベースの内容を確定させることである。
- ウロールバックとは、複数のトランザクションが同時に同一データを更新しようとしたときに、データの矛盾が起きないようにすることである。
- エログとは、データベースの更新履歴を記録したファイルのことである。
まとめ:選択肢ごとの答え合わせ
| 選択肢 | 内容 | 正しい用語 | 正誤 |
|---|---|---|---|
| ア | 失敗時に開始前の状態に戻す | ロールバックの説明 | 不正解 |
| イ | 正常時に内容を確定させる | コミットの説明 | 不正解 |
| ウ | 同時更新の矛盾を防ぐ | 排他制御の説明 | 不正解 |
| エ | データベースの更新履歴を記録したファイル | ログ(正しい) | 正解 |
答えエ ログとは、データベースの更新履歴を記録したファイルのことである
覚え方のコツ
確定はコミット、取り消しはロールバック、同時更新の交通整理は排他制御、記録はログ。
- コミット=トランザクションが正常に処理されたときに、内容を確定させること
- ロールバック=トランザクションが失敗したときに、開始前の状態に戻すこと
- 排他制御=複数のトランザクションが同時に同一データを更新しようとしたときに、矛盾を防ぐこと
- ログ=データベースの更新履歴を記録したファイル
エピローグ
店長への報告を終え、二人は裏口から外に出た。
美咲
今日は、あんたのやらかしで一番肝が冷えたわね
拓也
返す言葉もございません……。店長、意外とあっさり許してくれてよかった
美咲
まあ、悪気はなかったってわかってくれたからね。……次からは、説明するときちゃんと"これは実機だから触らない"って自分に言い聞かせなさいよね
拓也
うん、肝に銘じます
美咲
……でも、今日もいろいろ助かった。ありがとう
拓也
いや、最後にやらかしたのは俺だけどね
美咲心の声
……やらかしても、ちゃんと謝れるところ、悪くないと思うけど
拓也
なに黙ってるのよ、って言おうとしたら、美咲のほうが黙ってた
美咲
べ、別に、何でもないから
12月の夜、二人は白い息を吐きながら、駅までの道を並んで歩いていった。
今日のポイントおさらい
- コミット=トランザクションが正常に処理されたときに、内容を確定させること
- ロールバック=トランザクションが失敗したときに、開始前の状態に戻すこと
- 排他制御=複数のトランザクションが同時に同一データを更新しようとしたときに、矛盾を防ぐこと
- ログ=データベースの更新履歴を記録したファイル
- 選択肢の"名前"と"説明の中身"が入れ替えられているひっかけ問題は、それぞれの用語の正しい定義をセットで覚えておくことが対策になる
この記事はITパスポート試験 令和6年度 問74(テクノロジ系/データベース)の解説です。