oracle学习笔记——第四天
1. 概念
是操作数据库的最小单位,是由一组不可再分的sql命令组成的集合,事务的大小取决于实际业务的难易程度
2.实现原理
数据库服务器会为每一个连接上来的client,开辟一小块内存空间(回滚段),用来暂时保存sql命令的执行结果,在事务没有结束之前,回滚段里的数据只对当前client可见,当事务结束时,需要client明确处理回滚段中的数据。 事务成功则发出commit指令,数据库会将回滚段的数据写入数据文件;失败则发出rollback,db会将回滚段数据清空。
3. 事务边界
1. begin:执行第一条sql命令时,事务被开启
2. end:
1) 执行了一组DML(insert update delete)命令,都需要手动输入commit或者rollback来结束事务
2) 执行了一条DDL 或者 DCL 命令,命令后自带commit,执行成功事务直接结束
3) 执行了一组DML命令后,断开client连接,正常退出做commit,非正常退出做rollback
-- 案例: insert update commit delete update create insert update exit
-- 结论: 含有三个事务,其中第二个事务的commit是create命令自带的,delete和update结果随着create的
-- commit一起被写入数据库
4. 数据安全
1) 数据库服务器为表里的每一行数据提供一把“锁”,称之为“行级锁”
2) 写锁 : 是因为事务对记录做了(insert update delete)添加了“行级锁”
当前事务对表里的记录做了增删改动作之后,数据库服务器会将事务操作过的记录加“行级锁”,锁没有
打开之前,其他事务不能在对该条记录做DML命令。当事务结束时,行级写锁会自动打