独立性のレベルを示す「隔離性水準」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(24)(3/3 ページ)
あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は「隔離性水準」の基礎を解説します。
正解は以下の通りです。(IPA解答例より)
設問1の正解 | |
---|---|
(1) | 全てのトランザクションが“採番”テーブルの同じ行を更新するので排他待ちが発生し、その更新からCOMMIT文又はROLL BACK文までの処理が直列化されるから |
(2) | 処理番号(4) COMMIT |
排他制御が午後問題で出題された例はあまり多くありませんが、いざ出題されたとき、解答の候補が頭に浮かべられるよう、出題パターン(設問、本文中の布石、解答)を理解しておいて下さい。図3の行(1)から、トランザクションの隔離性水準がREAD COMMITTEDである点と、注記の「SQL文の排他制御は行単位で行う。ほかのトランザクションによって更新中の行をアクセスしたときは排他待ちとなり、コミットされた行だけを読み込むことができる」点から「占有ロックをかけるため排他待ちが集中すること」「COMMITすれば処理速度が改善できること」が読み取れます。
設問2
“在庫”テーブルの更新に関して発生した問題点Bについて、次の問いに答えよ。
(1)デッドロックが発生した理由を、60字以内で述べよ
(2)図3の受注入力処理プログラム中のSQL文を追加・変更・削除することなく、“在庫”テーブルで発生したデッドロックを防ぐために、(2)〜(8)のいずれか1つの処理を変更することにした。図3のプログラム中のどの処理を変更すべきか。その処理番号と、変更後の処理内容を、40字以内で述べよ
なお、その変更を行っても、複数のトランザクションによる複数の異なる商品の在庫引当ては、変更前と同様に並行して処理が可能でなければならない。
(H17春DB午後I問4設問2)
解答は以下の通りです。(IPA解答例より)
設問2の回答 | |
---|---|
(1) | 複数のトランザクションが“在庫”テーブルの複数の行を互いに逆順に更新することがあるから。 |
(2) | 処理番号(5) 商品番号順に、かつ商品名ごとに破線内の処理((6)〜(8))を繰り返し行う。 |
デッドロックは複数のトランザクションが互いにリソースを逆順にロックするために発生します。これを防ぐためには、リソースをロックする順序を統一すればよく、その内容を本文に合わせて記述すると上記のようになります。
本試験過去問題による類題演習 | |
---|---|
□H27 午前II問16 | ダーティリード(dirty read)に関する記述 |
□H22 午前II問18 | DBMS のトランザクション管理に関する記述 |
□H14 午前問39 | トランザクション管理に関する記述 |
□H26 午前II問11 | 直列化可能性が保障されている状態の説明 |
□H25 午前II問19 | 直列化可能スケジュールの説明 |
□H25 午前II問9 | トランザクションの隔離性水準に関する指定 |
□H24 午前II問15 | 隔離性水準をREAD COMMITTEDに指定したときに発生する状態 |
□H18 午前問35 | 隔離性(isolation)水準READ COMMITTEDでの並行処理 |
□H15 午前問41 | トランザクション間の干渉の許容度が最も高いもの |
Chance問題
演習23-2
データベースのトランザクションT2の振る舞いのうち、ダーティリード(dirty read)に関する記述はどれか。
ア トランザクションT1が行を検索し、トランザクションT2がその行を更新する。その後T1は先に読んだ行を更新する。その後にT2が同じ行を読んでも、先のT2による更新が反映されない値を得ることになる。
イ トランザクションT1が行を更新し、トランザクションT2がその行を検索する。その後T1がロールバックされると、T2はその行に存在しない値を読んだことになる。
ウ トランザクションT2がある条件を満たす行を検索しているときに、トランザクションT1がT2の検索条件を満たす行を挿入する。その後T2が同じ条件でもう一度検索を実行すると、前回は存在しなかった行を読むことになる。
エ トランザクションT2が行を検索し、トランザクションT1がその行を更新しコミットする。その後T2が同じ行を検索した場合、同じ行を読んだにもかかわらず、異なる値を得ることになる。
(H26春DB午前II問14)
解答 演習23-2 イ
*囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)
Chance問題
Point check
二つのトランザクションT1とT2を並列に実行した結果が、T1の完了後にT2を実行した結果、又はT2の完了後にT1を実行した結果と等しい場合、このトランザクションスケジュールの性質を何と呼ぶか。
(H18春DB午前問42)
ア 一貫性 イ 原子性 ウ 耐久性 エ 直列可能性
解答 Point check エ
*囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)
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対応版】