データベーススペシャリスト掲示板

掲示板検索:

[0256]R2PM1問2設問2(2)理由

 HOGEさん(No.1) 
R2PM1問2設問2(2)のトランザクションレベルをREAD COMITTEDとREPEATABLE READのどちらを設定すべきかの理由について、
解答例では「同時実行した他者が同じ座席を仮予約できないようにするため」となっています。
しかし、チケットの販売処理が図5のようになっている場合に、同時実行した他者が同じ座席を仮予約するというのは起こり得る状況でしょうか?
図5を見ると販売管理システムでCの処理まで行われてから、空席管理システムの処理に移行しています。販売管理システムのBでUPDATE文の対象となる"チケット"テーブルの行と、空席管理システムで仮予約フラグの更新対象となる"座席状況"テーブルの行は1:1に対応しているはずです。なので、同時実行した他者が同じチケット(座席)を購入しようとしても、1つの処理以外は販売管理システムのBで解放待ちとなり、空席管理システムでは同じ時間には常に1つの処理しか実行されていないかと考えました。どうでしょうか?
2021.10.04 22:33
ななさん(No.2) 
>空席管理システムでは同じ時間には常に1つの処理しか実行されていないかと考えました
おっしゃる通りだと思います。

> 同時実行した他者が同じ座席を仮予約できないようにするため
これは、「同時実行した他者が(自分が仮予約しようとした席と)同じ座席を(自分より先に)仮予約できないようにするため」という意味ではないでしょうか。
2021.10.04 23:14
 HOGEさん(No.3) 
ご回答いただきありがとうございます。
すみません、質問がわかりにくかったかもしれません。

質問の意図としては、空席管理システムにおいて、同時実行されている状況があり得るのでしょうか?
という旨の質問でした。
販売管理システム側のBのUPDATE文でロックされている限り、空席管理システム側でトランザクションが並列に実行されている状況はないのでは?と考えた次第です。
2021.10.05 07:53
DB娘さん(No.4) 
私も同じ疑問を持ちました。
推測ですが、「販売管理を委託」と記載されているので、
複数の販売管理システムから、1つの空席管理システムへ依頼するような状況を想像しました。
(現実世界でも、複数の販売代理店が同じチケットを販売する状況はあると思いますので)

ですので、複数の販売管理システムから、同じチケットに対して購入処理をしようとした場合に、
問題文中の状況が発生するのかなと思いました。
2021.10.09 19:19

【返信投稿用フォーム】

お名前(10文字以内)

顔アイコン


本文(2,000文字以内)

投稿削除用のパスワード(20文字以内)

プレビュー
※宣伝や迷惑行為を防止するため、当サイトとIPAサイト以外のURLを含む文章の投稿は禁止されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2016-2021 データベーススペシャリストドットコム All Rights Reserved.

Pagetop