跳到正文

平成27年度 秋期 ITパスポート試験 問71

这道题的解析和你的作答记录。

問71
頻出度★☆☆

処理一覧に示す実行順に,トランザクション1~4を実行する。あるトランザクションが途中で異常終了し,トランザクションを中断してロールバックした結果,データAとデータBが残った。異常終了したトランザクションはどれか。ここで,トランザクションが正常終了したときにコミットを行い,次のトランザクションがあれば,それを実行する。異常終了したときは,当該トランザクション以降のトランザクションを実行しないものとする。 〔処理一覧〕

実行順トランザクション名処理
1トランザクション1データAを作成する。
2トランザクション2データBを作成し,データAを削除する。
3トランザクション3データAを作成する。
4トランザクション4データBを削除する。
出典 平成27年度 秋期 ITパスポート試験 問71
解説

問 71

  • 错误ア

    若事务1异常终止,则会回滚其自身的创建(数据A),且之后的事务也不再执行,因此不会保留任何数据。这与数据A和数据B都保留的结果不一致。

  • 错误イ

    若事务2异常终止,则已提交的只到事务1,因此保留的只有数据A。数据B尚未创建,不会出现两者都保留的结果。

  • 错误ウ

    若事务3异常终止,则已提交的只到事务2,此时数据A已被删除、只保留了数据B。事务3对数据A的重新创建也会被回滚,因此保留的只有数据B,不会两者都保留。

  • エ

    正解 提交正常完成的事务,其结果会被确定并保留;异常终止的事务会回滚并撤销自身的更改,且其之后的事务不再执行。因此最终保留的数据,与异常终止事务之前已提交的状态一致。逐一追踪各提交时点的状态:事务1之后为「A」,事务2之后为「B」(A被删除),事务3之后为「A和B」(重新创建A),事务4之后为「A」(B被删除)。只有当事务3及之前均已提交、而事务4异常终止并回滚(撤销对数据B的删除)时,数据A和数据B才会同时保留。因此正确答案为エ(事务4)。

ここがポイント
  • 已提交事务的结果会被确定并保留,异常终止的事务会回滚并撤销自身的更改。异常终止之后的事务不再执行。
  • 最终保留的数据=异常终止事务之前的已提交状态。依次追踪各提交时点的状态,逆推出变为「A和B」的时点,从而确定异常终止的事务。
用語
解答問71エ
练这一题

作答记录