Oracle 事务的特点(ACID)

事务具有四个特征(ACID):
原子性( Atomicity )
指整个数据库事务是不可分割的工作单位。只有使据库中所有的操作执行成功,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。
一致性( Consistency )
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。
隔离性( Isolation )
一个事务的执行不能与其它事务互相干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
事务锁的概念:数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。
持续性( Durability )
也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。
这四个特性简称为 ACID 特性。

事务的操作

Session(会话):表示一个唯一的登陆用户。在Oracle中,每一个登陆到数据库上的用户都会自动的分配一个 Session,即:每一个session都表示不同的用户,而每一个session都有自己独立事务。
每个Session的事务处理操作都可以使用两个命令:
commit:提交事务。只有执行了commit 操作之后,更新操作才真正写入数据库,而没有 commit之前的所有更新操作都会保存在事务事务缓冲区中。
rollback:回退事务。如果发现更新操作有问题,则可以使用 rollback 恢复所有更新操作退回到执行事务前的状态。

事务的隔离性( Isolation )
相同数据被某个session获得,则该数据的执行权被占据,其他的session不能操作。如果有其他session请求操作该数据,则只有等待获得该数据执行权的session提交操作或者回滚操作后。后来的session才能获得该数据的执行权。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、 数据库介绍 1 1.1表是数据库中存储数据的基本单位 1 1.2数据库标准语言 1 1.3数据库(DB) 1 1.4数据库种类 1 1.5数据库中如何定义表 1 1.6 create database dbname的含义 1 1.7安装DBMS 1 1.8宏观上是数据-->database 1 1.9远程登录:telnet IP地址 1 1.10 TCP/IP通信协议 2 1.11数据库建连接必须提供以下信息 2 1.12一台机器可跑几个数据库,主要受内存大小影响 2 1.13源表和结果集 2 1.14几个简单命令 2 1.15 tarena给jsd1304授权 2 1.16课程中使用的5个表 3 二、 select from语句 5 2.1 select语句功能 5 2.2 select语句基本语法 5 2.3列别名 5 2.4算术表达式 5 2.5空值null的处理 5 2.6 nvl(p1,p2)函数 5 2.7拼接运算符 || 6 2.8文字字符串 6 2.9消除重复行 6 2.10其他注意事项 6 三、 SQL语句的处理过程 7 3.1 SQL语句处理过程 7 3.2处理一条select语句 7 四、 where子句 8 4.1 where子句后面可以跟什么 8 4.2语法和执行顺序 8 4.3字符串是大小写敏感的,在比较时严格区分大小写 8 4.4 where子句后面可以跟多个条件表达式 8 4.5 between and运算符 8 4.6 in运算符(多值运算符) 8 4.7 like运算符 9 4.8 is null运算符 9 4.9比较和逻辑运算符(单值运算符) 9 4.10多值运算符all、any 9 4.11运算符的否定形式 9 五、 order by子句 10 5.1语法和执行顺序 10 5.2升降序 10 5.3 null值在排序中显示 10 5.4 order by后面可以跟什么 10 5.5多列排序 10 六、 单行函数的使用 11 6.1数值类型 11 6.2日期类型 11 6.3字符类型 13 6.4转换函数 14 6.5其他注意事项 14 七、 SQL语句中的分支 15 7.1分支表达式 15 7.2分支函数 15 八、 组函数 16 8.1报表统计常用 16 8.2缺省情况组函数处理什么值 16 8.3当组函数要处理的所有值都为null时 16 8.4行级信息和组级信息 16 九、 group by子句 17 9.1语法和执行顺序 17 9.2分组过程 17 9.3常见错误 17 9.4多列分组 17 十、 having子句 18 10.1语法和执行顺序 18 10.2执行过程 18 10.3 where和having区别 18 十一、 非关联子查询 19 11.1语法 19 11.2子查询的执行过程 19 11.3常见错误 19 11.4子查询与空值 19 11.5多列子查询 20 十二、 关联子查询 21 12.1语法 21 12.2执行过程 21 12.3 exists 21 12.4 exists执行过程 21 12.5 not exists 22 12.6 not exists执行过程 22 12.7 in和exists比较 22 十三、 多表查询 23 13.1按范式要求设计表结构 23 13.2多表连接的种类 23 13.3交叉连接 23 13.4内连接 23 13.5外连接 25 13.6非等值连接 27 13.7表连接总结 27 十四、 集合 28 14.1表连接主要解决的问题 28 14.2集合运算 28 14.3集合运算符 28 14.4子查询、连接、集合总结 29 十五、 排名分页问题 30 15.1什么是rownum 30 15.2 where rownum<=5的执行过程 30 15.3 where rownum=5的执行过程 30 十六、 约束constraint 31 16.1约束的类型 31 16.2 primary key:主键约束 31 16.3 not null:非空约束 31 16.4 unique key:唯一建约束 31 16.5 references foreign key:外键约束 32 16.6 check:检查约束 34 十七、 事务 35 17.1 transaction 35 17.2定义 35 17.3事务的特性:ACID 35 17.4事务的隔离级别 35 17.5数据库开发的关键挑战 35 17.6锁的概念 36 17.7 Oracle的锁机制 36 17.8事务不提交的后果 36 17.9回滚事务rollback 36 17.10保留点savepoint 36 十八、 数据库对象:视图view 37 18.1带子查询的create table 37 18.2带子查询的insert 37 18.3定义缺省值:default 37 18.4 视图view 38 18.5视图的应用场景 38 18.6视图的分类 39 18.7视图的维护 39 十九、 数据库对象:索引index 41 19.1创建index 41 19.2扫描表的方式 41 19.3索引的结构 41 19.4为什么要使用索引 42 19.5哪些列适合建索引 42 19.6索引的类型 42 19.7哪些写法会导致索引用不了 43 二十、 数据库对象:序列号sequence 44 20.1什么是sequence 44 20.2创建sequence 44 20.3缺省是nocycle(不循环) 44 20.4缺省cache 20 44 二十一、 其他注意事项 46 21.1删除表,删除列,删除列中的值 46 21.2多对多关系的实现 46 21.3一对多(两张表) 46 21.4一对一 46 21.5数据库对象 46 12.6缺省(默认)总结: 46

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值