原子性を実現する「コミットメント制御」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(22)
あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は「コミットメント制御機能」の基礎を解説します。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「「トランザクションのACID特性」を理解する」はこちら
コミットメント制御による原子性の実現
出題頻度 午前II:--- 午後I:--- 午後II:---
●--:過去14年間での過去問出題数が1〜9回
●●-:過去14年間での過去問出題数が10〜19回
●●●:過去14年間での過去問出題数が20回以上
Key Word
●コミットメント制御、コミット機能、ロールバック機能
DBMSには、ACID特性の1つであるトランザクションの原子性を確保するためにコミットメント制御機能(コミットおよびロールバック)が備わっています。
コミット機能
コミット機能とは、トランザクションとしてくくられた処理が全て実行された時、その処理結果を確定させ、データを更新する機能です。
ロールバック機能
ロールバック機能とは、トランザクションを中断する何らかの事象が発生した時などに、処理を取り消し、トランザクション開始以前の状態に戻す機能です。
コミットメント制御の具体的なイメージ
例えば、「銀行口座からの預金引き出し」というトランザクションにおいては「<1>引き出しが行えるか確認」「<2>指定金額を引き出し」「<3>預金残高を更新」までを一連の流れとして行わなければなりません。逆に、「どれかの処理に失敗した」もしくは「どれかの処理が行えない」ようなことがあれば、全ての処理を取り消さなければなりません。
そのため、DBMSは以下の図の流れでトランザクションを処理します。最初に「引き出し履歴」と「預金残高」のデータ更新をいったんすべて予約し、それらデータ更新が全て実行できるか確認した後、実際にデータを更新(コミット)します。どれか1つでも更新できないデータがあれば、予約したデータ更新を全て取り消し(ロールバック)します。この間、他のトランザクションはいったん待たせておきます。
書籍紹介
ポケットスタディ データベーススペシャリスト [第2版]
具志堅融、河科湊著
秀和システム 1,500円
データベーススペシャリスト試験は同じパターンの出題が多いため、過去問をたくさん解くことが合格の早道です。しかし、難易度の高い過去問を解くには、勉強が必要であり、多くの時間と労力を必要とします。本書は、プロの講師が推奨する、テキストを少し読み→該当する過去問を解き→理解を深めるというアジャイル的学習法で、驚くほど短時間で合格するツボとコツを解説します。"すき間時間"を活用して効果的な学習ができます!
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 春期試験の押さえどころを総ざらい!
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。 - データベーススペシャリスト試験(Database Specialist Examination)
ITエンジニアに必要な各種資格情報を解説する「@IT自分戦略研究所 資格辞典」。今回は、IPAが実施する情報処理技術者試験の「高度試験」9区分のうちの一つ「データベーススペシャリスト試験」を紹介する。 - 真のデータベースエンジニアを目指そう!
本連載は、ITシステム開発の現場でプログラミングやSQLのコーディングを行っているエンジニア(データベース利用者)が、データ管理者(DA)やデータベース管理者(DBA)へステップアップするための第一歩として有効な基礎知識を紹介する(編集局) - 【Oracle Database】忘れていませんか? 「アラートログ調査」に必要な、たった3つのキホン
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は基本編として「アラートログの調査で押さえるべき3つのポイント」を解説します。【Oracle Database 12c対応版】