独立性のレベルを示す「隔離性水準」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(24)(1/3 ページ)
あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は「隔離性水準」の基礎を解説します。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「一貫性/独立性を確保する「排他制御」を理解する」はこちら
独立性のレベルを示す隔離性水準
出題頻度 午前II:●●- 午後I:--- 午後II:---
●--:過去14年間での過去問出題数が1〜9回
●●-:過去14年間での過去問出題数が10〜19回
●●●:過去14年間での過去問出題数が20回以上
Key Word
●直列化可能、ダーティリード、ノンリピータブルリード、ファントムリード、隔離性水準、午後演習
直列可能性
以下は、順番に実行しても、並行して実行しても、結果が必ず同じになるトランザクションの例です。これを直列化可能であると呼びます。これはトランザクションの独立性が最も高い状態です。
直列可能性が失われている事象
トランザクションの独立性が低い状態では、次のような事象が発生する場合があります。
発生事象 | どのような事象か? |
---|---|
ダーティリード (非コミット読み取り) |
コミットされていないデータを読み込むこと。読み込んだデータがロールバックされ、別の値になる可能性がある |
ノンリピータブルリード (反復不能読み取り) |
あるデータを参照後、その値を読み込もうとしたが、同時実行しているトランザクションにより値が書き換えられていたため、読み込んだ時には値が異なっていること |
ファントムリード (幻像読み取り) |
ある条件で検索し結果を得た後、その値でデータを読み取るために、再度同じ検索条件でデータを検索したとき、同時実行しているトランザクションによりデータが追加されていたために、最初の検索結果では存在しなかったデータが読み取られてしまうこと |
隔離性水準(ISOLATION LEVEL)
トランザクションの独立性の指標である隔離性水準では、独立性の度合いを以下のように定義しています。例えば、REPEATABLE READとは、データ参照処理時に共有ロック、データ更新に関するトランザクション開始時に占有ロックをかける機能を備えることで、ダーティリード、ノンリピータブルリードが発生しない状態のことを指します。
解答 演習23-1 エ
*囲み内をクリックすると解答を表示します(表示後ページをリロードすると、再び非表示になります)
トランザクションの直列可能性を問う問題は、午前試験で非常によく出題されます。直列可能性を実現するには、トランザクションの処理が、各リソースに対し「ロック→処理(読込み・書き込み)→ロック解除」の2相ロッキングプロトコルに準拠した処理になっていなければなりません。この考え方を意識しながら、各選択肢の解答根拠をご確認下さい。
ア | ×:ロックする前にデータを読み込んでいる (T1が読み込んだaのリソースの値が、T2に更新される可能性がある) |
---|---|
イ | ×:全ての処理が終わる前にロック解除している (T1のUNLOCK aとLOCK bの間にT2の処理が実行される可能性がある) |
ウ | ×:イと同様。全ての処理が終わる前にロック解除している (T1のUNLOCK aとLOCK bの間にT2の処理が実行される可能性がある) |
エ | ○:a、b各リソース読込み前にロックしており、全ての処理が終わってからロック解除している |
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対応版】