跳到正文

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

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

問71
頻出度★☆☆

図は処理1, 処理2の順でデータベースを更新するトランザクションの処理フローを示している。図中のa~cのうち, コミット処理 (処理1, 処理2の更新結果を確定させる処理) に該当する箇所だけを全て挙げたものはどれか。

出典 平成26年度 秋期 ITパスポート試験 問71
解説

問 71

  • ア

    正解 正确答案是 ア(a)。事务是「把处理1和处理2合在一起,作为一个不可分割的单位来对待」的机制,因此只有在处理1和处理2都正常结束时,才可以确定(提交)更新结果。顺着图往下看,「处理1是否正常结束?」为 Yes、接着「处理2是否正常结束?」也为 Yes 的这条路径的前方,只有 a。因此属于提交处理的位置只有 a。

  • 错误イ

    a 是对的,但 b 错了。b 是「处理2是否正常结束?」为 No 时经过的位置,既然处理2已经失败,就不能确定更新结果。在 b 处需要连同处理1的更新一起取消(回滚),所以它不属于提交处理。

  • 错误ウ

    b 和 c 都是位于异常结束路径上的位置,两者对应的都不是提交,而是回滚。此外,这个选项没有包含位于两个处理都正常结束的唯一路径上的 a,这一点也是错的。

  • 错误エ

    c 是「处理1是否正常结束?」为 No 时经过的位置。在处理1的阶段就已经失败,处理2甚至没有被执行,因此不存在应当确定的正常更新结果。c 是取消处理1更新的回滚处理,而不是提交处理。

ここがポイント
  • 事务是把多个更新统一为「全部反映」或「全部取消」二者之一的不可分割的处理单位(ACID 特性中的原子性)。因此,能够提交的只有其中所有处理都正常结束的那条路径。
  • 要区分提交(确定更新结果)与回滚(恢复到更新前的状态)。在流程图类题目中,顺着各个判断的 Yes/No 找出「所有处理都成功的路径」,其前方的位置就是提交,而从异常结束分支出去的位置就是回滚。
用語
解答問71ア
练这一题

作答记录