トランザクションと読み取り一貫性の便利な機能:間違いやすいポイントを追え! Bronze SQL基礎I(9)(2/2 ページ)
Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronze。その取得を目指すITエンジニアのための講座が本連載だ。間違いやすいポイントを確認し、合格に近づこう!
読み取り一貫性の機能
■例題2
読み取り一貫性について正しく説明しているものを、次の中からすべて選択してください。
a.読み取り一貫性とは、トランザクション実行中はほかのトランザクションからアクセスさせない機能である
b.ユーザーAが「10」の値を「20」にUPDATEしたとき、ユーザーBがそのデータをSELECTすると、戻ってくる値は「20」である
c.ユーザーAが「10」の値を「20」にUPDATEしたとき、ユーザーBがそのデータをSELECTすると、戻ってくる値は「10」である
d.あるトランザクションで変更した確定前のデータをほかのトランザクションから参照することはできない
■例題の範囲をおさらい
参考:「SQLでデータを自在に操作する」
読み取り一貫性とは、あるトランザクションが変更中のデータをほかのトランザクションが参照したとき、変更前の確定済みのデータを参照させる機能です。この読み取り一貫性によって、データの整合性を保つことができます。
■正解
c、d
■解説
選択肢a:読み取り一貫性とは、あるトランザクションがデータを変更中のとき、ほかのトランザクションからは変更される前のデータを参照させる機能です。
選択肢b:読み取り一貫性の機能では、ほかのトランザクションからは変更前の確定されたデータを参照します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ユーザーAが「20」にUPDATEし、まだCOMMITしていないとき、ユーザーBがそのデータをSELECTすると、戻ってくる値は「10」です。
選択肢c:選択肢bの解説のとおり、ユーザーBは確定前の「10」を参照します。
データを変更中のユーザーAは、変更して確定前の値を確認できます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
しかし、ユーザーBはこのデータが変更される前の値「10」を参照します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
実際のデータは、ユーザーAによって10から20に変更されています。ユーザーBは、変更前の確定されたデータが格納されている「UNDOブロック」からデータを参照しています。これが読み取り一貫性です。
ユーザーAがCOMMITすれば、ユーザーBは変更後の値を参照できます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
選択肢d:あるトランザクションで変更した確定前のデータを、ほかのトランザクションから確認することはできません。ほかのトランザクションからは、変更前の確定済みのデータを参照することができます。
変更を行っているトランザクションであれば、確定前のデータの確認は可能です。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
よって、正しい説明はc、dです。
■まとめ
次の内容をチェックしましょう。
- トランザクションの意味
- 読み取り一貫性の機能
今回の範囲は、トランザクションについての基本的な内容です。一度覚えてしまえば応用が利くので、確実に理解し、得点を稼ぎましょう。
ただし、読み取り一貫性を詳しく理解するためには、Bronze DBAの範囲のスキルが必要です。
次回は表の作成と管理について、間違いやすい点にポイントを絞って説明します。
Copyright © ITmedia, Inc. All Rights Reserved.