数据库原理 补充:数据库并发控制软件设计案例.pptVIP

  • 8
  • 0
  • 约3.84千字
  • 约 24页
  • 2015-09-16 发布于广东
  • 举报

数据库原理 补充:数据库并发控制软件设计案例.ppt

数据库原理 补充:数据库并发控制软件设计案例

并发控制案例分析 主讲:吕震宇 说明 实验环境: Visual Studio .NET 2005 SQL Server 2005 其它说明: SQL Server 2000 + VS.NET 2003 也可以 需要对代码做细微调整 源代码及数据库见附件 并发控制案例 设某银行存款帐户数据如下表: 现在要求编写一程序,完成两项功能:存款与取款。每次操作完成后向明细表中插入一行记录并更新帐户余额。 1、问题似乎很简单 解决办法: ① 读取最后一行记录的帐户余额数据 ② 根据存、取款金额计算出新的帐户余额 ③ 将新的记录插入表中 真的这么简单? 在不考虑并发问题的情况下是可行的 如果考虑并发,问题就多了 2、让我来想一想 问题所在:并发问题! 解决办法:加锁! 在读最后一条记录时先加上锁。 怎么加锁?加什么锁? 读之前加共享锁? 读之前加排它锁? 读之前加共享锁? 显然不行! 读之前加排它锁,事务完成再释放? 三级封锁协议中没有定义读前加排它锁(暂且不管) 显然不行! 还不止这些 如何读取帐户余额? SELECT TOP 1 帐户余额 FROM 帐户明细 ORDER BY 序号 DESC 存在的问题: 在并发场景下你怎么确定它一定是最后一行? 随着数据量增大越来越没效率(因为需要排序) 3、看来问题真的不是这么简单 问题出在哪里呢? 从系统设计一开始我们就走错

文档评论(0)

1亿VIP精品文档

相关文档