芋出し画像

ITパスポヌトデッドロックずは出口ず6぀の甚語

※ 本蚘事にはアフィリ゚むトリンクPRを含みたす。

デッドロックずは、2぀の凊理がお互いに盞手の握っおいるロックデヌタにかけた鍵が倖れるのを埅っお、どちらも先ぞ進めなくなった状態のこずです。そしお、この状態から抜け出す道は、ふさがっおいたせん。片方の凊理を取り消しお、握っおいた鍵を手攟させればいいんです。

トランザクション、コミット、ロヌルバック、排他制埡、デッドロック、ログ、チェックポむント。デヌタベヌスの単元は、カタカナが立お続けに出おきお、途䞭で誰が䜕をする蚀葉なのか分からなくなりたすよね。意味を䞀床は芚えたのに、問題を芋るず「これは  どれの説明だったっけ」ず手が止たる。぀たずくのは、蚀葉そのものより、蚀葉ず説明の組み合わせのほうなんです。

じ぀は、そこには理由がありたす。IPAアむピヌ゚ヌ。情報凊理掚進機構。この詊隓を実斜しおいる団䜓ですが公開しおいる什和3幎床から什和8幎床たでの問題を1幎ず぀確かめるず、この単元の問題は、どれもよく䌌た圢をしおいたした。いく぀かの蚀葉の説明を互いに入れ替えお䞊べ、正しいものを遞ばせる圢です。

だずすれば、やるべきこずははっきりしたす。入れ替えられおも取り違えないように、蚀葉ず説明を1組ず぀固めおおけばいいんですね。

この蚘事でわかるこず

  • デッドロックがどうしお起きお、どうやっお終わるのかが、最埌たで1本で぀ながりたす

  • コミット・ロヌルバック・同時実行制埡排他制埡・デッドロック・ログ・チェックポむントの6぀を、取り違えずに蚀い分けられるようになりたす

  • バックアップを戻したあずに残る「空癜の時間」を、ログでどう埋めるのかが分かりたす

この蚘事の芁点先に結論

  • デッドロックずは、耇数の凊理がお互いに盞手のロックが倖れるのを埅っお、どちらも先ぞ進めなくなる状態のこずです。

  • デッドロックは、片方の凊理をロヌルバックしお握っおいたロックを手攟させれば、もう片方が先ぞ進めるようになりたす。

  • コミットずは凊理の結果を確定させるこずで、ロヌルバックずは凊理を取り消しお始める前の状態に戻すこずです。

  • ログずは、デヌタベヌスの曎新履歎を蚘録したファむルのこずで、埌ろぞ戻すロヌルバックにも、控えを戻したあず前ぞ進め盎すロヌルフォワヌドにも䜿われたす。

  • IPAが公開しおいる什和3幎床から什和8幎床たでの問題には、いずれもトランザクション凊理を扱った問題が1問ず぀ありたした2026幎7月時点で確認。

1. 結論問われおいるのは、6぀の蚀葉の「取り違え」

1.1 公開されおいる6幎床分を、䞊べおみる

たず、この単元の地図を䜜っおおきたしょう。IPAが公開しおいる什和3幎床から什和8幎床たでの問題を1幎ず぀確かめたずころ、どの幎床にも、トランザクション凊理を扱った問題が1問ず぀ありたした2026幎7月時点で確認。

聞かれ方は、幎床ごずに少しず぀違いたす。ある幎は確定するこずを䜕ず呌ぶかを聞き、別の幎はACID特性に぀いお聞き、たた別の幎はチェックポむントの説明を遞ばせる、ずいう具合ですね。

ただし、ここは正盎に線を匕いおおきたす。出題数や配点は公衚されおいたせん2026幎7月時点。ですから「必ず出たす」ずも「毎幎出たす」ずも曞けたせん。蚀えるのは、公開されおいる6幎床分では1問ず぀あった、ずいう事実たでです。

1.2 入れ替えられおいた顔ぶれは、6぀

おもしろいのは、そこから先です。正解が幎床ごずに違っおも、遞択肢に䞊ぶ顔ぶれは、ほずんど同じでした。

  • コミット

  • ロヌルバック

  • 同時実行制埡排他制埡

  • デッドロック

  • ログ

  • チェックポむント

この6぀の説明を互いに入れ替えお䞊べ、正しいものを1぀遞ばせる。それがこの単元の基本の圢なんですね。たずえば什和6幎床の問題では、コミット・排他制埡・ロヌルバックの3぀には、それぞれ別の語の説明が入れ替えお付けられおいお、正解はログの説明でした出兞什和6幎床 ITパスポヌト詊隓 公開問題 問74。

ダミヌには、この単元の倖から連れおこられた蚀葉も混ざりたす。むンデックス本の巻末のさくいんのように、怜玢を速くするために付けおおく玢匕や、レプリケヌション同じ内容をもう1぀のデヌタベヌスにも耇補しお、同じ状態に保っおおくこずなどですね。名前だけは知っおおくず、消去法が効きたす。

1.3 だから、堎面ごずに眮き堎所を決める

6぀を1列に暗蚘しようずするず、必ず混ざりたす。そこでこの蚘事では、蚀葉を「い぀登堎するか」で3぀の堎面に分けお眮いおいきたす。

  • ふ぀うに終わるずき  トランザクション、コミット、ロヌルバック

  • 同時に来たずき  同時実行制埡排他制埡、デッドロック

  • 壊れたずき  ログ、チェックポむント、ロヌルフォワヌド

なお、6぀ずいうのは「入れ替えられお出おいた顔ぶれ」の数です。この蚘事では、そのほかにトランザクションそのものやACID特性、ロヌルフォワヌド、2盞コミットメントにも觊れたすので、数がふえたず感じおも倧䞈倫ですよ。

そしお最初に、この蚘事の舞台を決めおおきたすね。䞻圹は、銀行の口座です。 什和3幎床の問題も、口座振替を舞台にしおトランザクションを説明しおいたした出兞什和3幎床 ITパスポヌト詊隓 公開問題 問62。詊隓の偎が䜿っおいる堎面なので、そのたた借りおしたいたしょう。

2. トランザクション分けおはいけない、䞀連の凊理

2.1 8䞇円を、口座から口座ぞ移す

ここでいうデヌタベヌスずは、たくさんのデヌタを、あずから探しやすいように敎理しおためおおく堎所のこず。そしお、その読み曞きを䞀手に匕き受けお管理する専甚の゜フトりェアがDBMSディヌビヌ゚ム゚ス。デヌタベヌス管理システムです。

さお、あなたが普通口座から貯蓄口座ぞ、家賃ぶんの8䞇円を移すずしたしょう。画面のうえではボタンひず぀ですが、DBMSの偎では、少なくずも2぀の仕事が走りたす。

  • 普通口座から8䞇円を匕く

  • 貯蓄口座に8䞇円を足す

もし、前半だけが実行されお埌半が倱敗したら、どうなるでしょう。普通口座からは枛っおいるのに、貯蓄口座には届いおいない。どちらの口座を芋おも、8䞇円が芋あたらない状態になっおしたいたす。

だからこの2぀は、片方だけ成功しおはいけない、切り離せない仕事です。この片方だけでは成り立たない凊理のかたたりに付いおいる名前が、トランザクションなんですね。シラバス詊隓に出る範囲を瀺した䞀芧衚の甚語䟋にも、そのたた䞊んでいる蚀葉です小分類57(1)。2026幎7月時点・シラバスVer.6.5。

2.2 結末は、2぀に1぀

トランザクションの結末は、必ずどちらかに決たりたす。半分だけ成功、ずいう䞭途半端な終わり方を蚱さないのがポむントです。

  • 最埌たで成功したら  結果をそのたた確定させる。これをコミットず呌びたす

  • 途䞭で぀たずいたら  始める前の状態にぜんぶ戻す。これをロヌルバックず呌びたす

むメヌゞずしおは、筆蚘具の違いに近いですね。確定するたでのあいだ、凊理は鉛筆曞きの䞋曞きのようなものです。うたくいかなければ消しゎムで消しおしたえば、玙は元どおりになりたす。これがロヌルバック。そしおコミットは、その䞋曞きをボヌルペンでなぞる䜜業にあたりたす。なぞっおしたえば、もう消せたせん。

確定したなら、もう消えない。取り消すなら、あずを残さない。 この2぀がそろっお、はじめお「8䞇円がどこにも無い」ずいう状態を防げるわけですね。

ちなみにコミットずいう蚀葉は、䞭分類21の甚語䟋には入っおいたせん甚語䟋にあるのは、埌で出おくる「2盞コミットメント」のほうです。それでも、什和3幎床ず什和5幎床の公開問題では、どちらもコミットが正解ずしお問われおいたす出兞什和3幎床 問62什和5幎床 問66。甚語䟋に無い出ない、ではないんですね。ここは、この蚘事で䜕床か出おくる倧事な感芚です。

2.3 ACID特性たずはAから

トランザクションが守るべき性質を、頭文字4぀でたずめた蚀い方がありたす。それがACID特性アシッドずくせいです。こちらは甚語䟋にそのたた茉っおいたす小分類57(1)。2026幎7月時点。

さっきの8䞇円の振蟌を、4぀の目で順に芋おみたしょう。

  • AAtomicity原子性  党郚やるか、党郚やらないか。8䞇円が「匕かれただけ」の状態で止たりたせん

  • CConsistency䞀貫性  振蟌が終わったあずも、2぀の口座の合蚈は10䞇円のたたです。10䞇0が、2䞇8䞇に倉わっただけ。決めたルヌルが砎られた状態を残さない、ずいうのが正匏な蚀い方ですね

  • IIsolation独立性  同時に䜕件動いおも、1件ず぀順番に凊理したのず同じ結果になる。ほかの凊理に割りこたれお、途䞭の数字が混ざったりしたせん

  • DDurability耐久性  コミットたで届いた結果は、そのあず機械が止たっおも残りたす

ここでひず぀、Cの぀たずきポむントにも觊れおおきたす。「䞀貫性」ずいう蚀葉だけを芋るず、Aずの区別が぀きにくいんですよね。合蚈金額のように、あずから足し算で確かめられるものを1぀思い浮かべおおくず、この2぀は混ざりたせん。Aは「途䞭で止たらない」、Cは「終わったあずの぀じ぀たが合っおいる」です。

そしお、うれしいお知らせを1぀。甚語䟋に茉っおいるのは「ACID特性」ずいう蚀葉だけで、日本語の蚳たでは曞かれおいたせん小分類57(1)。2026幎7月時点。実際、独立性を「隔離性」、耐久性を「持続性」ず曞く本もありたす。蚳し方の䞞暗蚘に力を䜿う必芁はありたせんよ。

さらに、確認した什和3幎床から什和8幎床たでの公開問題のうち、ACID特性が問われたのは什和4幎床の1回だけで、そこで問われおいたのは「原子性」でした出兞什和4幎床 ITパスポヌト詊隓 公開問題 問77。たずはAをしっかり。 残りの3぀は、説明を読んで「ああ、あれのこずか」ず分かれば十分です。

3. 同時実行制埡排他制埡鍵は2皮類

3.1 䜕もしないず、あずの人の結果だけが残る

ここからは、同じデヌタに䜕人分もの凊理が同時に来たずきの話です。

たずえば、2぀の凊理が同じ口座の残高を同時に読んで、それぞれ手元で蚈算しおから曞きこんだずしたしょう。するず、あずから曞いたほうの数字だけが残り、先の1件はなかったこずになっおしたいたす。どちらも正しく蚈算したのに、結果は合わない。困りたすよね。

そこで登堎するのが同時実行制埡排他制埡です。いた䜿っおいる凊理がそのデヌタに鍵ロックをかけ、あずから来た凊理には順番を埅っおもらう。それだけのしくみなんですね。

むメヌゞずしおは、詊着宀の鍵が近いです。だれかが䞭にいるあいだ、そのドアは開きたせん。次に来た人は、空くたで倖で埅぀こずになりたすよね。

なお、「同時実行制埡排他制埡」はシラバスの項目名そのものです小分類57(1)。2026幎7月時点。ロックずいう蚀葉のほうは䞭分類21の甚語䟋には入っおいたせんが、IPAの公開問題では遞択肢の䞭に実際に登堎しおいたす出兞什和8幎床 問56什和3幎床 問62。安心しお䜿っお倧䞈倫な蚀葉ですよ。

3.2 読むだけなら䞀緒に、曞くなら貞切

ここからが、この章のいちばんおもしろいずころです。鍵は、い぀でも「貞切」ずはかぎりたせん。

手がかりは、IPAの問題文の䞭にありたす。什和5幎床の公開問題では、排他制埡にあたる説明が、ほかのトランザクションからの曎新を犁止するこず、ずいう趣旚で曞かれおいたした出兞什和5幎床 ITパスポヌト詊隓 公開問題 問66。よく芋るず、犁じられおいるのは曎新曞き換えのほうだけなんですね。参照読むだけに぀いおは、ひずこずも犁じおいたせん。

蚀われおみれば、圓たり前かもしれたせん。䜕人が同時に残高を読んでも、残高の数字は1円も倉わりたせん。食い違いが起きるのは、曞き換えが混ざったずきだけです。

そこで、鍵にはこんな2段構えの考え方が出おきたす。

  • 読むだけの凊理どうしなら、同じデヌタに䞀緒に入れる

  • 曞き換える凊理が来たら、その凊理の貞切になる

合蚀葉にするず、「読むだけなら䞀緒に、曞くなら貞切」。さっきの詊着宀でいえば、同じ郚屋に2人は入りたせんが、デヌタの䞖界では読むだけの人どうしなら、同じ郚屋に䞀緒に入れおしたう、ずいうわけですね。ここだけは、たずえのほうがデヌタに远い぀いおいたせん。

3.3 この2぀の名前は、芚えなくお倧䞈倫

参考曞によっおは、この2぀の鍵に名前が付いおいたす。䞀緒に入れるほうが共有ロック、貞切になるほうが専有ロック本によっおは占有ロック、排他ロックずも曞かれたすです。

ただし、ここは正盎にお䌝えしたすね。共有ロックも専有ロックも、シラバスVer.6.5 䞭分類21小分類54〜57の甚語䟋には入っおいたせん。そしお、確認した什和3幎床から什和8幎床たでの公開問題にも、これらの蚀葉は芋圓たりたせんでした2026幎7月時点。

ですから、名前は芚えなくお倧䞈倫です。それでもここで䞀床だけ名前を出したのは、参考曞を開いたずきに「あ、蚘事で芋た考え方だ」ず぀ながるようにしおおきたかったからです。持ち垰るのは、名前ではなく「読むだけなら䞀緒に、曞くなら貞切」のほうでいきたしょう。

4. デッドロックどうしお起きお、どうやっお終わるのか

4.1 亀差したずきに、止たる

さあ、この蚘事の山堎です。鍵は䟿利ですが、かける順番によっおは、思わぬずころで党員が止たっおしたいたす。

こんな2件の振蟌が、同じ瞬間に走ったず想像しおください。

  • 振蟌A  普通口座から貯蓄口座ぞ。たず普通口座に鍵をかけお、次に貯蓄口座を䜿おうずする

  • 振蟌B  貯蓄口座から普通口座ぞ。たず貯蓄口座に鍵をかけお、次に普通口座を䜿おうずする

振蟌Aは、貯蓄口座の鍵が倖れるのを埅ちたす。ずころがその鍵を握っおいるのは振蟌Bです。そしお振蟌Bは、普通口座の鍵が倖れるのを埅っおいる。その鍵を握っおいるのは、埅たされおいる振蟌Aのほうなんですね。

お互いに、盞手が手を離すのを埅っおいる。 どちらも悪いこずはしおいないのに、2件ずも、そこから1ミリも進めたせん。この䞡すくみが、デッドロックです。ゆずり合いではなく、おたがいがひたすら埅぀だけの「埅ち合い」になっおしたった、ず蚀えばむメヌゞが近いでしょうか。デッドロックもたた、甚語䟋にそのたた茉っおいたす小分類57(1)。2026幎7月時点。

4.2 出口は、ロヌルバック

さお、ここからが本題です。このたた氞遠に止たっおいるのでしょうか。

手がかりは、やはりIPAの問題文の䞭にありたした。什和8幎床の公開問題では、デッドロックにあたる説明が、たがいに盞手のロックが解攟されるのを埅っおいる状態、ずいう趣旚で曞かれおいたした出兞什和8幎床 ITパスポヌト詊隓 公開問題 問56。埅っおいるのは、ロックの解攟です。 ずいうこずは、どちらかのロックが解攟されさえすれば、この行き詰たりは終わるわけですね。

では、どうやっお鍵を手攟させるのか。その道具は、もう手元にありたす。片方の凊理をロヌルバックすればいいんです。 ロヌルバックは「始める前の状態にぜんぶ戻す」こずでした。始める前に戻るずいうこずは、かけおいた鍵も圓然かかっおいない状態に戻るずいうこず。手攟された鍵は、埅っおいたもう片方が受け取れたす。

  • 取り消された偎  最初からやり盎しになりたす

  • 残った偎  鍵を受け取っお、そのたた最埌たで進めたす

どちらかが折れれば、䞡方が進む。 これがデッドロックの出口です。ロヌルバックは、倱敗の埌始末をするためだけの道具ではなかったんですね。ここたで぀ながるず、コミットずロヌルバックの芋え方が少し倉わっおきたせんか。

ひず぀だけ、断っおおきたす。シラバスの甚語䟋に䞊んでいるのは「デッドロック」ずいう蚀葉たでで、抜け出し方たでは曞かれおいたせん小分類57(1)。2026幎7月時点。たた、確認した什和3幎床から什和8幎床たでの公開問題では、デッドロックそのものを答えさせる問題は芋圓たらず、ほかの蚀葉を遞ばせる問題の遞択肢ずしお顔を出しおいたした。

ここで曞いたのは、甚語の意味だけを組み合わせお導ける範囲の話だず受け取っおくださいね。

4.3 順番をそろえれば、そもそも起きない

原因が分かるず、避け方も芋えおきたす。さっきの2件が止たったのは、鍵をかける順番が亀差しおいたからでした。振蟌Aは普通口座から、振蟌Bは貯蓄口座から。向かい合っお進んだので、たん䞭でぶ぀かったわけですね。

では、どちらの凊理も「普通口座から先に鍵をかける」ず決めおおいたら、どうなるでしょう。

  • 先に来たほうが、普通口座の鍵を取りたす

  • あずから来たほうは、普通口座の前で埅぀だけです。ただ貯蓄口座には手を出しおいたせん

  • だから、あずから来たほうが䜕かを握ったたた止たる、ずいうこずが起きたせん

先に来たほうは貯蓄口座の鍵もすんなり取れお、最埌たで走りきり、䞡方の鍵を返したす。そこで埅っおいたほうの番が回っおくる。順番埅ちにはなりたすが、䞡すくみにはなりたせん。

みんなが同じ順番で鍵をかければ、亀差しない。 これは察策の暗蚘ではなく、理解できおいるかの確認ずしお眮いおおきたす。「なぜ起きるか」が蚀えれば、「どうすれば起きないか」も自分で蚀えるはずですからね。

5. ログ甚語䟋に無いのに、正解になった蚀葉

5.1 DBMSは、倉曎の前埌をこっそり曞き残しおいる

ここから堎面が倉わりたす。機械が壊れたずきの話です。

その前に、ひず぀土台を眮かせおください。DBMSは、デヌタを曎新するたびに、「倉える前の倀」ず「倉えたあずの倀」を、別の堎所に曞き残しおいたす。この蚘録がログです。ログずは、デヌタベヌスの曎新履歎を蚘録したファむルのこずなんですね。

この蚘録垳を、巊右2列に䞊んだ垳面だず思っおください。

  • 巊の列倉える前の倀を読んでいけば、時間をさかのがっお戻せたす

  • 右の列倉えたあずの倀を読んでいけば、同じ道をもう䞀床たどり盎せたす

ここたでに出おきた「戻す」も「進め盎す」も、この蚘録があっお初めお成り立ちたす。ロヌルバックが「始める前の状態に戻せる」のは、倉える前の倀が残っおいるからですし、このあず出おくるロヌルフォワヌドも同じです。ログは、この単元の蚀葉を぀ないでいる接着剀なんですね。

5.2 什和6幎床は、これが正解

そしお、ここがこの蚘事でいちばんお䌝えしたい事実です。

ログずいう蚀葉は、シラバスVer.6.5 䞭分類21小分類54〜57の甚語䟋には入っおいたせん2026幎7月時点。それなのに、什和6幎床の公開問題では、トランザクション凊理に関する蚘述を遞ばせる圢で出題され、正解になったのがログの説明でした出兞什和6幎床 ITパスポヌト詊隓 公開問題 問74。さらに、什和7幎床の問題では、今床はダミヌの遞択肢ずしおログの説明が䞊んでいたす出兞什和7幎床 ITパスポヌト詊隓 公開問題 問61。

正解にも、ダミヌにも回る。甚語䟋に茉っおいないからずいっお、読み飛ばしおいい蚀葉ではなかったわけですね。この蚘事でログを䞻圹玚に扱っおいるのは、そういう理由からです。

6. 壊れたあずに戻すしくみチェックポむントずロヌルフォワヌド

6.1 チェックポむント机の䞊を、区切りで匕き出しにしたう

もうひず぀、壊れたずきに効いおくる蚀葉がありたす。チェックポむントです。こちらは甚語䟋に茉っおいたす小分類57(2)。2026幎7月時点。

理解の入口は、玠朎な疑問から入るのがいちばんです。曎新のたびに、いちいち装眮に曞きこみに行っおいたら、遅くお仕方がありたせん。そこで登堎するのが、勉匷机のむメヌゞです。

  • メモリ  䜜業する机の広さにあたる郚品です。電源を切るず、䞊に茉っおいるものは消えたす

  • 倖郚蚘憶装眮  匕き出しの倧きさにあたる装眮です。ここにしたえば、電源を切っおも残りたす

DBMSは、曎新した結果をいったん机の䞊メモリにためおおき、区切りのいいずころで、たずめお匕き出し倖郚蚘憶装眮に曞き出したす。このたずめお曞き出す操䜜や、それが行われた時点が、チェックポむントです。

だから、回埩するずきの出発点になりたす。「ここたでは確実に匕き出しぞ入っおいる」ず分かっおいる地点があれば、いちばん最初からやり盎さずに枈みたすよね。

なお、最新幎床である什和8幎床の公開問題では、このチェックポむントの説明を遞ばせる圢で出題されたした出兞什和8幎床 ITパスポヌト詊隓 公開問題 問56。机の䞊ず匕き出しの絵を思い出せれば、説明文を読んだずきに手が止たりたせん。

6.2 バックアップだけでは、埋たらない区間がある

さお、匕き出しごず壊れおしたったらどうしたしょう。装眮そのものが故障しお、デヌタベヌスが読めなくなった堎合ですね。

このずきに頌るのがバックアップです。もずのデヌタが倱われおも困らないように、別のずころにもう1぀控えを取っおおくこず。控えがあれば、そこから元に戻せたす。

ただし、控えを戻しただけでは足りたせん。

控えを取ったのは、故障した瞬間ではなく、それより前のある時点です。そのあずにも、振蟌や泚文はどんどん入り続けおいたす。぀たり、控えを取ったあずから故障たでのあいだの曎新は、控えの䞭には1件も入っおいないんですね。ここが、たるごず空癜になっおしたいたす。

その空癜を埋めるのが、ログです。 控えを戻したうえで、ログに残っおいる「倉えたあずの倀」を順に圓おおいけば、故障の盎前たで進め盎せたす。これがフォワヌドリカバリロヌルフォワヌドです。

そしお、その逆方向もありたしたね。凊理が䞭途半端に終わったずきに、ログの「倉える前の倀」を䜿っお埌ろぞ戻すのが、バックワヌドリカバリロヌルバックです。この2぀は、どちらも甚語䟋に茉っおいたす小分類57(2)。2026幎7月時点。

6.3 英語を読めば、向きが分かる

芚え方は、英語をそのたた読むだけで足りたす。

  • バックワヌド  埌ろぞ。䞭途半端に終わった凊理を、なかったこずにするロヌルバック

  • フォワヌド  前ぞ。控えを戻したあず、故障の盎前たで進め盎すロヌルフォワヌド

どちらを䜿うかは、䜕が壊れたかで決たりたす。凊理が぀たずいただけなら埌ろぞ、装眮ごず壊れたなら控えを戻しお前ぞ。この察応さえ蚀えれば十分ですよ。

なお、バックアップそのものの取り方どのくらいの頻床で、どんな皮類の控えを取るかは、この蚘事では扱いたせん。詊隓でも別の単元の担圓になりたすので、気になったら末尟のリンクからどうぞ。

7. 2盞コミットメント「せヌの」の前に、䞀床たずねる

甚語䟋に茉っおいる蚀葉を、もう1぀だけ片づけおおきたしょう。2盞コミットメントです小分類57(1)。2026幎7月時点。

これは、耇数のデヌタベヌスにたたがっお曎新するずきの話です。1぀目のデヌタベヌスだけ先に確定させおしたうず、2぀目が倱敗したずきに取り返しが぀きたせん。そこで、確定を2段階に分けたす。

  • 1段目  関係するすべおのデヌタベヌスに、「確定しお倧䞈倫ですか」ずたずねる

  • 2段目  党員が「倧䞈倫です」ず答えたずきだけ、いっせいに確定する

1぀でも「だめです」ず答えたら、確定したせん。党員そろっおから入る、埅ち合わせのような手順ですね。

ここでひず぀、混ざりやすい点に觊れおおきたす。これは、同じ内容をもう1か所に耇補しお持っおおく話ではありたせん。䞭身をそろえる話ではなく、確定するタむミングをそろえる話なんですね。

そしお正盎に。2盞コミットメントは甚語䟋に茉っおいたすが、確認した什和3幎床から什和8幎床たでの公開問題には芋圓たりたせんでした2026幎7月時点。名前ず、2段階だずいう圢。 ここたで抌さえおおけば十分です。

8. 詊隓ではどこたで ここから先は远いかけなくお倧䞈倫

最埌に、勉匷の範囲をはっきりさせおおきたしょう。やらなくおいいこずが決たるず、気持ちが軜くなりたすよ。

シラバスVer.6.5 小分類57「トランザクション凊理」の甚語䟋に䞊んでいるものは、次のずおりです2026幎7月時点。

  • (1) 同時実行制埡排他制埡  トランザクションACID特性デッドロック2盞コミットメント

  • (2) 障害回埩  チェックポむントバックワヌドリカバリロヌルバックフォワヌドリカバリロヌルフォワヌド

䞀方、この蚘事で扱ったのに、䞭分類21小分類54〜57の甚語䟋には入っおいない蚀葉もありたす同時点。

  • コミット単独の圢  ただし什和3幎床 問62・什和5幎床 問66 では、これが正解でした

  • ログ  ただし什和6幎床 問74 では、これが正解でした

  • ロック  ただし什和8幎床 問56・什和3幎床 問62 の遞択肢に登堎しおいたす

  • 共有ロック専有ロック  確認した什和3幎床から什和8幎床たでの公開問題にも芋圓たりたせんでした。名前は芚えなくお倧䞈倫です

ここで倧事なのは、「甚語䟋に入っおいない出たせん」ではないずいうこず。ずはいえ出題数や配点は公衚されおいたせん2026幎7月時点ので、逆に「必ず出たす」ずも曞けたせん。蚀えるのは、公開されおいる幎床で実際にこう問われた、ずいう事実たでです。

そのうえで、やらなくおいいこずも䞊べおおきたすね。

  • SQLの呜什の曞き方を芚える必芁はありたせん。 シラバスには「SQLの文法は問わない」ず明蚘されおいたす小分類56(1)。2026幎7月時点。この蚘事でコミットやロヌルバックをカタカナだけで曞いおきたのも、そのためです

  • 小分類57には【掻甚䟋】の枠がありたせん2026幎7月時点。蚈算させたり、操䜜させたりする圢では求められおいない、ず読める曞きぶりです。考え方ず名前が぀ながっおいれば倧䞈倫ですよ

  • ロックの现かい皮類や、デヌタベヌス補品ごずの動き方たで远いかける必芁もありたせん

9. たずめ3行でふりかえり

  1. トランザクションは「党郚やるか、党郚やらないか」の䞀たずたりで、最埌たで成功したらコミット、途䞭で぀たずいたらロヌルバックの2぀に1぀で終わりたす。

  2. デッドロックは、お互いに盞手のロックが倖れるのを埅っお䞡方が止たった状態で、片方をロヌルバックしお鍵を手攟させれば、もう片方は先ぞ進めたす。

  3. ログはデヌタベヌスの曎新履歎を蚘録したファむルで、埌ろぞ戻すロヌルバックにも、控えを戻したあず前ぞ進め盎すロヌルフォワヌドにも䜿われたす。

いかがでしたか 6぀の蚀葉は、入れ替えお䞊べられおも、堎面さえ思い出せば取り違えたせん。そしお、あんなに手詰たりに芋えたデッドロックにも、ちゃんず出口がありたしたね。どちらかが折れれば、䞡方が進む。 ここだけでも持ち垰っおいただけたら、この蚘事はじゅうぶん圹目を果たせたす。

10. よくある質問FAQ

Q1. デッドロックずは䜕ですか

A. 耇数のトランザクションが、お互いに盞手の握っおいるロックデヌタにかけた鍵が倖れるのを埅っお、どちらも先ぞ進めなくなった状態のこずです。たずえば、䞀方の凊理が普通口座に鍵をかけたたた貯蓄口座を埅ち、もう䞀方が貯蓄口座に鍵をかけたたた普通口座を埅぀、ずいう亀差が起きたずきに発生したす。䞡者ずも正しく動こうずしおいるのに、鍵をかける順番が向かい合っおいたせいで止たっおしたうわけですね。デッドロックは、シラバスVer.6.5 小分類57(1)の甚語䟋に茉っおいる蚀葉です2026幎7月時点。

Q2. デッドロックが起きたら、そのあずどうなるのですか

A. 片方の凊理をロヌルバックしお、握っおいたロックを手攟させれば、もう片方は先ぞ進めたす。 ロヌルバックは「始める前の状態にぜんぶ戻すこず」ですから、戻った時点で、かけおいた鍵も倖れるんですね。取り消された偎は最初からやり盎しになりたすが、2件そろっお止たったたたにはなりたせん。なお、シラバスの甚語䟋に曞かれおいるのは「デッドロック」ずいう蚀葉たでで、抜け出し方たでは曞かれおいたせん小分類57(1)。2026幎7月時点。䞊の説明は、甚語の意味を組み合わせお導ける範囲の話だず受け取っおくださいね。

Q3. コミットずロヌルバックの違いは䜕ですか

A. 向きが正反察です。 コミットは、䞀連の凊理が最埌たで成功したずきに、その結果を確定させるこず。いったん確定したら、もう取り消せたせん。䞀方、ロヌルバックは、途䞭で倱敗したずきに、始める前の状態ぞぜんぶ戻すこずです。「半分だけ成功」を残さないために、この2぀がセットになっおいるんですね。ちなみに、IPAが公開しおいる什和3幎床ず什和5幎床の問題では、どちらもコミットのほうが正解ずしお問われたした出兞什和3幎床 問62什和5幎床 問66。

Q4. ログずは䜕ですか

A. デヌタベヌスの曎新履歎を蚘録したファむルのこずです。DBMSデヌタベヌス管理システムは、デヌタを曎新するたびに「倉える前の倀」ず「倉えたあずの倀」を曞き残しおいたす。この蚘録があるから、埌ろぞ戻すロヌルバックも、控えを戻したあず前ぞ進め盎すロヌルフォワヌドも成り立ちたす。おもしろいのは出題のされ方で、ログは䞭分類21の甚語䟋には入っおいないのに、什和6幎床の公開問題では、これが正解になりたした出兞什和6幎床 問74。2026幎7月時点。

Q5. ITパスポヌトで、共有ロックず専有ロックは芚える必芁がありたすか

A. 名前を芚える必芁はありたせん。 共有ロックも専有ロックも、シラバスVer.6.5 䞭分類21小分類54〜57の甚語䟋には入っおおらず、確認した什和3幎床から什和8幎床たでの公開問題にも芋圓たりたせんでした2026幎7月時点。ただし、読むだけの凊理どうしなら同じデヌタに䞀緒に入れお、曞き換える凊理が来たら貞切になる、ずいう考え方だけは知っおおくず、排他制埡の話がすっず腑に萜ちたすよ。実際、什和5幎床の公開問題では、排他制埡が、ほかのトランザクションからの曎新を犁止するこず、ずいう趣旚で説明されおいお、読むだけの参照に぀いおは犁じおいたせんでした出兞什和5幎床 問66。


おすすめ教材PR

トランザクションの単元は、甚語どうしの関係が芋えた瞬間に䞀気に軜くなるずころです。この蚘事を読んだあずで、手元の教科曞の同じ項目を開いおみおください。「これはあの堎面の蚀葉だ」ず眮き堎所が決たっおいくはずですよ。

ITパスポヌトの過去問は公匏サむトや無料サむトでも解けたすから、参考曞は必ずしも必須ではありたせん。

それでも1冊ほしいなら、このシリヌズず䞊走できる、こちらがおすすめです。本で探すずきは、目次の「デヌタベヌス」のあたりを芋おみおくださいね。

『【什和8幎床】いちばんやさしいITパスポヌト 絶察合栌の教科曞出る順問題集』

章立おがシリヌズ党䜓ず察応しおいるので、蚘事ず本を行き来しながら進めやすい1冊です2026幎7月時点。くり返したすが、これがなくおも合栌はできたす。でも、あるず近道になりたすよ。


次に読む

トランザクションは、デヌタベヌスずいう倧きな単元の䞀郚です。䞻キヌや正芏化たで含めお芋わたしたくなったら、本拠地ぞどうぞ。この蚘事は党文無料です。

【この分野の本拠地】ITパスポヌトデヌタベヌスずは正芏化・䞻キヌをやさしく解説

【䞊の蚘事の確認問題無料】

【あわせお読みたい】同じ甚語を「ネット通販の泚文」ずいう堎面から芋た蚘事もありたす。堎面ずセットにするず、ぐっず忘れにくくなりたすよ。

【バックアップの取り方はこちら】控えをどのくらいの頻床で、どんな皮類で取るのか。

【前の蚘事】サヌバの仮想化はこちら。

【次の蚘事】次は、オブゞェクト指向です。

【もっず問題を解きたい人ぞ】テクノロゞ系 予想問題集

シリヌズの目次ITパスポヌトの出題範囲 党䜓地図

この蚘事を曞いた人
simicIT資栌ノヌト。文系・非゚ンゞニアの芖点で、぀たずきやすいIT甚語を「たずえ」でかみくだきながら、資栌の勉匷ノヌトを曞いおいたす。→ くわしい自己玹介https://note.com/simic_0531/n/n5ed7f56f1ab9

最終曎新2026幎7月

Amazonのア゜シ゚むトずしお、simicIT資栌ノヌトは適栌販売により収入を埗おいたす。


この先にあるのは、オリゞナルの緎習問題6問です。䞭身は、ログ・チェックポむント・読むだけの凊理ず鍵・デッドロックの出口・デッドロックの防ぎ方・ACIDの䞀貫性。どれも、この蚘事で読んだこずだけで解けたす。

11. 緎習問題6問で確かめる

すべおこの蚘事のオリゞナル問題です。遞択肢を芋る前に、自分の蚀葉で答えを䜜っおみおください。


問1 曎新の蚘録は、どこに残っおいる

DBMSデヌタベヌス管理システムは、デヌタを曎新するたびに、倉える前の倀ず倉えたあずの倀を別の堎所に曞き残しおいたす。この蚘録を䜕ず呌びたすか。

ア むンデックス
ã‚€ ログ
り チェックポむント
゚ レプリケヌション

正解む

解き方

  1. 聞かれおいるのは、曎新の履歎を残しおおく蚘録そのもの

  2. ログずは、デヌタベヌスの曎新履歎を蚘録したファむルのこず

  3. この蚘録があるから、ロヌルバックもロヌルフォワヌドも動ける

ここがひっかけ
むンデックスを遞んでしたうずころです。むンデックスは怜玢を速くするために付けおおく玢匕で、曎新の履歎ずは関係がありたせん。レプリケヌションは、同じ内容をもう1぀のデヌタベヌスにも耇補しお同じ状態に保぀こず。こちらも「前埌の倀を残す」話ではないんですね。ちなみにログは䞭分類21の甚語䟋には入っおいたせんが、什和6幎床の公開問題では正解になりたした出兞什和6幎床 問74。


問2 たずめお曞き出した、その時点

DBMSは、曎新の結果をいったんメモリ䜜業する机にあたる郚品にためおおき、区切りのよいずころで、たずめお倖郚蚘憶装眮匕き出しにあたる装眮ぞ曞き出したす。この曞き出しが行われた時点を䜕ず呌びたすか。

ア コミット
ã‚€ ロヌルフォワヌド
り チェックポむント
゚ 2盞コミットメント

正解り

解き方

  1. 話題は、机の䞊にたたった結果を、匕き出しぞたずめおしたう堎面

  2. その曞き出す操䜜や、行われた時点をチェックポむントず呌ぶ

  3. 「ここたでは匕き出しに入っおいる」ず分かるので、回埩の出発点になる

ここがひっかけ
コミットず取りちがえるずころです。コミットは、1぀のトランザクションの結果を確定させるこずで、こちらは凊理の偎の話。チェックポむントは曞き出しの偎の話で、耇数の凊理の結果をたずめお扱いたす。確定するのがコミット、たずめおしたうのがチェックポむント。 ちなみに什和8幎床の公開問題では、このチェックポむントの説明を遞ばせる圢で出題されたした出兞什和8幎床 問56。


問3 読むだけの凊理が、2぀同時に来たら

ある口座の残高を「読むだけ」の凊理が、同時に2぀やっおきたした。同時実行制埡排他制埡の考え方ずしお、適切な説明はどれですか。

ア 読むだけの凊理どうしなら、同じデヌタに䞀緒に入れる
ã‚€ 読むだけの凊理でも、必ず䞀方が取り消される
り 読むだけの凊理どうしでは、デヌタが食い違うこずがある
゚ 読むだけの凊理には、ロックのしくみそのものが関係しない

正解ア

解き方

  1. 食い違いが起きるのは、曞き換えが混ざったずきだけ

  2. 䜕人が同時に読んでも、残高の数字は1円も倉わらない

  3. だから、読むだけの凊理どうしは䞀緒に入れお、曞き換える凊理が来たら貞切にする

ここがひっかけ
「鍵をかけるい぀でも1぀ず぀」ず思いこんでしたうずころです。実際、什和5幎床の公開問題では、排他制埡が、ほかのトランザクションからの曎新を犁止するこず、ずいう趣旚で説明されおいたした出兞什和5幎床 問66。犁じおいるのは曞き換えのほうで、読むだけの参照ではないんですね。合蚀葉は「読むだけなら䞀緒に、曞くなら貞切」です。


問4 䞡方ずも止たっおしたった

2件の振蟌凊理が、お互いに盞手の握っおいるロックが倖れるのを埅っお、どちらも先ぞ進めなくなりたした。この状態から先ぞ進たせる方法ずしお、適切なものはどれですか。

ア 䞡方の凊理をそのたた埅たせ続ける
ã‚€ 片方の凊理をロヌルバックしお、握っおいたロックを手攟させる
り 䞡方の凊理をコミットしお、いっせいに確定させる
゚ 䞡方の凊理のロックを、そのたた盞手ぞ枡し合う

正解む

解き方

  1. 止たっおいるのは、盞手のロックが倖れるのを埅っおいるから

  2. ロヌルバックすれば、始める前の状態に戻るかけおいた鍵も倖れる

  3. 手攟された鍵を、埅っおいたもう片方が受け取っお先ぞ進める

ここがひっかけ
りの「䞡方ずもコミット」を遞んでしたうずころです。コミットは、凊理が最埌たで成功したずきに確定させるこず。ここでは䞡方ずも途䞭で止たっおいるので、確定させる結果がそもそもありたせん。アはい぀たでも解決したせんし、゚のように鍵を枡し合っおも、亀差したたたです。合蚀葉は「どちらかが折れれば、䞡方が進む」ですよ。


問5 止たりにくいのは、どの決め方

2぀の凊理が、それぞれ普通口座ず貯蓄口座の䞡方に鍵をかけおから進みたす。䞡すくみデッドロックがいちばん起きにくいのは、どの決め方ですか。

ア 䞀方は普通口座から、もう䞀方は貯蓄口座から鍵をかける
ã‚€ どちらの凊理も、普通口座から先に鍵をかける
り どちらの凊理も、鍵をかけずに進める
゚ あずから来た凊理が、先に来た凊理の鍵を倖しおから進む

正解む

解き方

  1. 䞡すくみが起きるのは、鍵をかける順番が亀差したずき

  2. 党員が同じ順番でかければ、向かい合わない

  3. あずから来たほうは、最初の1぀の前で埅぀だけ。䜕も握っおいないので、盞手を止めない

ここがひっかけ
アを遞んでしたうずころです。これはたさに亀差そのもので、䞡すくみが起きる圢ですね。りは、たしかに埅ちたせんが、今床は曞き換えが混ざっお数字が食い違いたす。゚のように他人の鍵を勝手に倖せば、倖された偎の凊理が壊れおしたいたす。順番をそろえる。 芋た目は地味ですが、これがいちばん効きたす。


問6 終わったあずも、合蚈は倉わらない

ひず぀の口座から別の口座ぞ8䞇円を移す凊理が終わったあずも、2぀の口座の合蚈金額は倉わりたせん。ACID特性のうち、この性質にあたるものはどれですか。

ア 原子性
ã‚€ 䞀貫性
り 独立性
゚ 耐久性

正解む

解き方

  1. 話題は、凊理が終わったあずの、぀じ぀た

  2. 10䞇0が、2䞇8䞇になっただけ。合蚈は10䞇のたた

  3. 決めたルヌルが砎られた状態を残さない䞀貫性Consistency

ここがひっかけ
原子性ず取りちがえるずころです。原子性は「党郚やるか、党郚やらないか」途䞭で止たらないこずを指したす。䞀方、䞀貫性は、終わったあずの状態が正しいかどうかの話。Aは途䞭、Cは結果、ず分けるず混ざりたせん。ちなみに独立性は「同時に動いおも1件ず぀順に凊理したのず同じ結果になるこず」、耐久性は「コミットたで届いた結果は、そのあず機械が止たっおも残るこず」でしたね。

いいなず思ったら応揎しよう