第6章数据库语言SQL要点.ppt

第6章数据库语言SQL要点

* 解决方法 用户1的操作执行完,再执行用户2的操作。 将一组操作组成一个事务 ,事务中进行封锁,保证事务的可串行性。 可串行性:一个时刻只有一个事务,相互之间没有重叠。 * (2) 原子性 示例6.41 假设银行数据库有关系 Accounts (acctNo, balance) 考虑从账户123向账户456转帐$100。可以先检查账户123中是否至少有$100,若有,则执行以下两个步骤: 1. 通过如下SQL修改语句向账户456加上$100 2. 通过如下SQL修改语句从账户123减去$100 UPDATE Accounts SET balance=balance+100 WHERE acctNo=456; UPDATE Accounts SET balance=balance-100 WHERE acctNo=123; * 问题 设想:金额转入账户2 之后,系统故障。 数据库状态:账户2 增加金额,账户1未减金额 对银行造成损失 问题:数据处于不一致状态 结论:数据库操作的某些组合,需原子地完成 即要么都做 要么都不做。 * 2. 事务 事务:必须被原子地执行的一个或多个数据库操作的集合,(如:一组SQL语句,一条SQL语句或一段程序) 要么所有操作都执行,要么所有操作都不执行。 另

文档评论(0)

1亿VIP精品文档

相关文档