データベーススペシャリスト試験攻略のツボ(5)
「トランザクション」に関する問題
西沢直木
2008/9/17
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。
|
問5-3 デッドロックが発生するタイミング
3つのトランザクションT1、T2、T3が、1〜11の順序でデータa、bに対する処理を行った場合、デッドロックとなるのはどの時点か。ここで、DBMSはREADの直前に共有ロック、UPDATEの直前に占有ロックをかけ、ROLLBACK又はCOMMITですべてのロックを解除する。
ア:6 イ:7 ウ:8 エ:9
(20年-午前問題-問38)
答え
イ
解説
前の問題と似た雰囲気で特別に難しいわけでもありませんが、この問題を取り上げたのは、来年以降も注意した方がいいかもしれないと感じたためです。
この問題はソフトウェア開発技術者試験で17年と20年の春に出題され、20年のテクニカルエンジニア(データベース)試験で出題されました。適度に時間を使わせる問題でもあり、うっかりミスも考えられるので、出題者側としてはもう一度出題したくなる問題に思えます。
さて、正解を導き出すため選択肢を順番に見ていきましょう。まず、選択肢「ア」(6)では、トランザクションT3がデータaに対して占有ロックをかけようとしています。データのロック状況は次のようになっています。
◆選択肢「ア」(6)の時点のトランザクション- T1:データaを共有ロック、データbを共有ロック
- T2:どれもロックしていない
- T3:データbを共有ロック、データaのロック解除待ち
トランザクションT1がデータaを共有ロックしているので、T3はデータaのロックが解除されるのを待つことになりますが、まだデッドロックは発生していません。
次に選択肢「イ」(7)でトランザクションT1がデータbに対して占有ロックをかけようとすると、上記のようにトランザクションT3がデータbに共有ロックをかけているので、データbのロックの解除を待つことになります。この場合、トランザクションの状態は次のようになります。
◆選択肢「イ」(7)の時点のトランザクション- T1:データa、bを共有ロック、データbのロック解除待ち
- T2:どれもロックしていない
- T3:データbを共有ロック、データaのロック解除待ち
この時点で、トランザクションT1とT3が共に互いのロック解除を待つ状態になり、デッドロックが発生します。従って、「イ」が正解です。
3/3 |
Index
データベーススペシャリスト試験攻略のツボ(5)
「トランザクション」に関する問題
「トランザクション」に関する問題
問5-1 トランザクションのACID特性
コラム:トランザクションのACID特性に関する出題傾向
コラム:トランザクションのACID特性に関する出題傾向
問5-2 直列可能性が保証できるトランザクション
問5-3 デッドロックが発生するタイミング
データベーススペシャリスト試験攻略のツボ |
Database Expert フォーラム 新着記事
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|