当数据库需要处理操作量大、复杂度高的数据的时候需要用到事务。用事务是为了保证数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:
1、为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
当事务被提交给了数据库管理系统,则数据库管理系统需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。
扩展资料:
数据库事务ACID性质:
1、原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
2、一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态,一致状态的含义是数据库中的数据应满足完整性约束。
3、隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
4、持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
参考资料来源:
2023-08-15 广告
当数据库需要处理操作量大、复杂度高的数据的时候需要用到事务。
比如说,在学生管理系统中,你删除一个学生,你即需要删除学生的基本资料,也要删除和该学生相关的信息,如已选课程、成绩等等,这是对数据库操作就要使用事务,要删除学生信息就把所有相关信息都删除,要不就都不删除!
用事务是为了保证数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
扩展资料
事务的ACID特性:
1、原子性
一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。
2、一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
3、隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交、读提交、可重复读和串行化。
4、持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
参考资料:百度百科-数据库事务
比如说:做了一个图书管理系统,有人要借书,那么步骤是这样的:
系统读书,读者的条形码
系统吧书的状态变为借出,
图书-读者表中 增加该书和借书者的id
读者的借书数量+1
问题就出现了,数据库执行完1,2俩个步骤,3步骤出现错误,比如说系统奔溃了,这时候会出现bug.
书被借出,但没人借走。要用事务捆绑这几个动作,如果1,2,3,4有错误发生,则回滚数据库。
Try{ 1;2;3;4;}catch(exception e){ roll back;}
谢谢了