- 8
- 0
- 约3.84千字
- 约 24页
- 2015-09-16 发布于广东
- 举报
数据库原理 补充:数据库并发控制软件设计案例
并发控制案例分析 主讲:吕震宇 说明 实验环境: Visual Studio .NET 2005 SQL Server 2005 其它说明: SQL Server 2000 + VS.NET 2003 也可以 需要对代码做细微调整 源代码及数据库见附件 并发控制案例 设某银行存款帐户数据如下表: 现在要求编写一程序,完成两项功能:存款与取款。每次操作完成后向明细表中插入一行记录并更新帐户余额。 1、问题似乎很简单 解决办法: ① 读取最后一行记录的帐户余额数据 ② 根据存、取款金额计算出新的帐户余额 ③ 将新的记录插入表中 真的这么简单? 在不考虑并发问题的情况下是可行的 如果考虑并发,问题就多了 2、让我来想一想 问题所在:并发问题! 解决办法:加锁! 在读最后一条记录时先加上锁。 怎么加锁?加什么锁? 读之前加共享锁? 读之前加排它锁? 读之前加共享锁? 显然不行! 读之前加排它锁,事务完成再释放? 三级封锁协议中没有定义读前加排它锁(暂且不管) 显然不行! 还不止这些 如何读取帐户余额? SELECT TOP 1 帐户余额 FROM 帐户明细 ORDER BY 序号 DESC 存在的问题: 在并发场景下你怎么确定它一定是最后一行? 随着数据量增大越来越没效率(因为需要排序) 3、看来问题真的不是这么简单 问题出在哪里呢? 从系统设计一开始我们就走错
您可能关注的文档
最近下载
- 《喀斯特地貌》课件.ppt VIP
- 2025上海辅警面试题目及答案.doc VIP
- 2026年版-FOCUSPDCA降低骨科I类切口手术部位感染率CQI-新版课件.pdf
- AP300 D5-2S快速门操作手册.pdf VIP
- 基于模糊控制MPPT的太阳能充电控制器的设计.doc VIP
- 乳化液柱塞泵结构设计毕业设计说明书.doc VIP
- 应急通信保障应急预案.docx VIP
- 年产2000吨年邻氯苯腈、1200吨年 2,6-二氯-4-三氟甲基苯胺、1000吨年三嗪酰胺、300吨年 2,6-二氟苯甲酰胺、2000吨年 2-氯-5-氯甲基噻唑、1000吨年咪鲜胺项目环境影响报告.pdf
- 2023年安徽合肥高新区社区工作者招聘笔试真题.docx VIP
- 国家通信保障应急预案.docx VIP
原创力文档

文档评论(0)