一、事务处理总结
在实际的应用中,对于需要一组SQL语句作为一个整体来同步完成的复杂的数据操作,我们就需要利用SQL语言提供的事务定义语句来定义这组SQL语句为一个事务
DBMS为了保证我们定义的事务中的操作能作为一个逻辑整体,实现的事务处理机制要保证定义的事务具有ACID特性。
在数据库系统正常的运行中,DBMS为我们创建的数据库维护一个运行日志,并提供工具让我们能将数据库进行备份
使得当数据库系统发生各类故障后,DBMS能利用这些日志来撤销UNDO未完成的事务或重做REDO已完成的事务,保证事务的原子性和持久性
对介质故障,还需利用我们提供的数据库备份来将数据库恢复为一致性状态
同时DBMS提供封锁技术等并发控制手段来保证应用系统中并发事务的隔离性,并为了提高并发事务的执行效率和减少死锁的发生,DBMS也可让我们根据应用需求来选择封锁粒度和事务的隔离级别,当然这需要我们容忍某种不影响应用的数据不一致问题的存在,否则我们只能牺牲效能来得到可串行化的结果
虽然不同的DBMS实现的事务处理机制提供给用户的接口和操作语言略有不同,但它们实现的目标和功能是一致的 ,学习的内容是可以触类旁通的
掌握了本讲的内容,可以让我们有能力基于某种DBMS实现的事务处理机制编写出满足应用需求的事务,制定和实施数据转储和恢复方案。但要想参与像蚂蚁金服的OCEANBASE这类国产DBMS产品的设计和开发,还需要我们去学习和掌握坚实的计算机方面的专业知识和技能