当前位置: 首页 > java >正文

Oracle 数据库使用事务确保数据的安全

使用事务是为了保证数据的安全有效。

事务的特点

事务有一下四个特点:(ACID)

原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行。

一致性(Consistence):事务完成时,要使所有所有的数据都保持一致的状态,换言之:通过事 务进行的所有数据修改,必须在所有相关的表中得到反映。

隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。

持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障,也不应该丢失。

事务的隔离级别

图片

▲ Oracle 默认的隔离级别是 read committed。

▲ Oracle 支持上述四种隔离级别中的两种:read committed 和 serializable。除此之外, Oralce 中还定义 Read only 和 Read write 隔离级别。

▲ Read only:事务中不能有任何修改数据库中数据的操作语句,是 Serializable 的一个子集。

▲ Read write:它是默认设置,该选项表示在事务中可以有访问语句、修改语句,但不经常使用。

丢失更新:两个事务同时存储, 一个存储 100 , 一个存储 200,最终可能至存储了 200 或者 100,那 另一个的更新就没成功,即结果不为预想的 300

脏读:事务 T1 更新了一行数据,还没有提交所做的修改,T2 读取更新后的数据,T1回滚,T2 读取的数 据无效,这种数据称为脏读数据。

不可重复读:事务 T1 读取一行数据,T2 修改了 T1 刚刚读取的记录,T1 再次查询,发现与第一次读取 的记录不相同,称为不可重复读。

幻读:事务 T1 读取一条带 WHERE 条件的语句,返回结果集,T2 插入一条新纪录,恰好也是 T1 的 WHERE 条件,T1 再次查询,结果集中又看到 T2 的记录,新纪录就叫做幻读。

事务的开启

自动开启于 DML 之 insert delete update

事务的结束

成功

正常执行完成的 DDL 语句:create、alter、drop

正常执行完 DCL 语句 GRANT、REVOKE

正常退出的 SQLPlus 或者 SQL Developer 等客户端如果人工要使用隐式事务,SET AUTOCOMMIT ON (只针对一个连接)

手动提交 :使用 commit

失败

rollback ,手动回滚

非法退出 意外的断电

注意:rollback 只能对未提交的数据撤销,已经 Commit 的数据是无法撤销的,因为 commit 之后已经持久化 到数据库中。

今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!

http://www.xdnf.cn/news/20097.html

相关文章:

  • 实现自己的AI视频监控系统-第三章-信息的推送与共享4
  • 如何在SpringBoot项目中优雅的连接多台Redis
  • vue3的 三种插槽 匿名插槽,具名插槽,作用域插槽
  • 无需Python:Shell脚本如何成为你的自动化爬虫引擎?
  • Dubbo消费者无法找到提供者问题分析和处理
  • 记录SSL部署,链路不完整问题
  • Eclipse 常用搜索功能汇总
  • 连接MCP,Lighthouse MCP Server和CNB MCP Server应用
  • 解密注意力计算的并行机制:从多头并张量操作到CUDA内核优化
  • 25年Docker镜像无法下载的四种对策
  • 【Spring Cloud Alibaba】Sentinel(一)
  • 【LeetCode数据结构】设计循环队列
  • Java 并发编程解析:死锁成因、可重入锁与解决方案
  • 人工智能机器学习——逻辑回归
  • go 初始化组件最佳实践
  • ai生成ppt工具有哪些?10款主流AI生成PPT工具盘点
  • 中州养老:角色管理的角色分页查询
  • 渗透测试与网络安全审计的关系
  • (论文速读)Navigation World Models: 让机器人像人类一样想象和规划导航路径
  • MySQL主从复制之进阶延时同步、GTID复制、半同步复制完整实验流程
  • aippt自动生成工具有哪些?一文看懂,总有一款适合你!
  • Java数据结构——栈(Stack)和队列(Queue)
  • Qt---状态机框架QState
  • 【Sharding-JDBC】​Spring/Spring Boot 集成 Sharding-JDBC,分表策略与 API、YAML 配置实践​
  • 达梦数据库-共享内存池
  • 3.3.3 钢结构工程施工
  • Kubernetes知识点(三)
  • 探究Linux系统的SSL/TLS证书机制
  • 河南萌新联赛2025第(七)场:郑州轻工业大学
  • 直接让前端请求代理到自己的本地服务器,告别CV报文到自己的API工具,解放双手