- 数据库与文件系统的区别是,数据库实现了数据的一致性和并发性,而事务和锁机制是开启这一功能的基石。
事务
- 通常包含一系列的更新操作,而这些操作是不可分割的逻辑单元。事务正常执行,这事务中包含的所有的更新操作均执行成功,否则全部执行失败。这个也被称为事务的原子性,
应用场景
- 银行转账业务,一个账户给另一个账户转账,一个账户的金额减少n,另一个账户的金额增多n,这两步操作要么同时成功,要么同时失败,不能存在一方成功一方失败的情况。
- 人力资源中中请有额度的假别,请一笔年假数据,年假的额度要减少n,请假数据要增加n,两步操作要同时成功或者失败。
等等。
事务的特性
- 原子性 事务中包含的操作要么全部执行成功,要么全部执行失败
- 一致性 一系列操作前后(insert,update,delete)前后,系统数据是一致的
- 隔离性 多并发的事务彼此之间是互不影响的
- 永久性 事务执行成功后,数据会稳定的存在文件中,不会随意变更。
未使用事务的程序
#创建数据表
select * from account ;
create table account (
account_no int auto_increment primary key,
account_name char(10) not null ,
balance int unsigned ) engine=innodb;
#插入数据
insert into account values(nul