問62
頻出度★☆☆
金融システムの口座振替では, 振替元の口座からの出金処理と振替先の口座への入金処理について, 両方の処理が実行されるか, 両方とも実行されないかのどちらかであることを保証することによってデータベースの整合性を保っている。データベースに対するこのような一連の処理をトランザクションとして扱い, 矛盾なく処理が完了したときに, データベースの更新内容を確定することを何というか。
这道题的解析和你的作答记录。
金融システムの口座振替では, 振替元の口座からの出金処理と振替先の口座への入金処理について, 両方の処理が実行されるか, 両方とも実行されないかのどちらかであることを保証することによってデータベースの整合性を保っている。データベースに対するこのような一連の処理をトランザクションとして扱い, 矛盾なく処理が完了したときに, データベースの更新内容を確定することを何というか。
正解 正确答案是 ア「提交(commit)」。当事务中进行的一连串更新处理无矛盾地全部完成时,把这些更新内容正式反映并确定到数据库中的操作就称为提交。在账户转账的例子中,当出账处理和入账处理双方都顺利结束时进行提交,更新便被确定,此后该结果开始生效。反之,若中途出现异常,则通过撤销更新(回滚)来保证「要么两者都被执行,要么两者都不被执行」,从而维持数据库的一致性。题目所问的「确定更新内容」正好与提交的定义相符。
模式(schema)是指用来定义数据库结构(如表的字段、数据类型、约束等)的术语,并不是确定事务更新的操作,因此错误。
前滚是指在故障发生后利用备份和更新后日志(journal)来重现已确定的更新、从而恢复数据库的操作,它并不是在正常处理中确定更新内容的操作本身,因此错误。
锁是一种排他控制机制,为防止多个处理同时访问同一数据而产生矛盾,在数据被使用期间让其他处理等待,它并不是确定更新的操作,因此错误。