交易和并发位于DBMS的Concurrency Control
(Transaction manager & lock Manager)
·Transaction-事务、交易
在数据库中,transaction指的是一组逻辑单元的工作(内包含一系列SQL语句),要么全部执行,否则全部丢弃。
DML语句已经是MySQL和SQL Server中不可再分的语句,但RDBMS允许用户自定义transaction,并且能对数据库做永久性改变。
Transaction解决了两个问题:
1.用户需要定义一个集成的工作单元——重复机械性的工作可以被一键解决。
2.并发处理多个用户的数据。
Transaction的类型:
1. 单条的DML和DDL指令可以被视为隐性的transaction,例如:
Update 700 records——如果这条语句在更新了200条后,发生了数据库故障那么重启以后会发现,数据库没有任何变化。
2.多个语句,即自定义transaction
(Keywords:BEGIN,START TRANSACTION,COMMIT,ROLLBACK):
START TRANSACTION( BEGIN ) //启动一条transaction的keyword
- SQL statement;//实际执行的语句