《Oracle Concept》前言介绍-4

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 《Oracle Concept》前言介绍-4

《Oracle Concept》前言介绍-4

背景:

按照《Oracle Conecpt》的结构一起了解Oracle。

历史文章

《》

《》

《》

《》

《》

作为《Concept》的前言,有六个主题,可以说是整本书的缩略,
About Relational Databases
Schema Objects
Data Access
Transaction Management
Oracle Database Architecture
Oracle Database Documentation Roadmap

本文主题:前言《Introduction to Oracle Database》 - “Transaction Management”。

交易管理,Transaction Management

Oracle最初的设计,就是一种多用户数据库。数据库确保多个用户能并发操作而不会互相影响对方的数据。

交易

作为关系型数据库管理系统,必须支持SQL语句的组合,保证这些语句要么都提交,要么都回滚。这就是所谓“事务”的概念,你可以将他理解为逻辑、原子的工作单元,包含至少一条SQL。

例如,转账的场景,就非常需要“交易”。转账操作,包含以下步骤:

  1. 减少存款账户的资金。

  2. 增加目标账户的资金。

  3. 在交易记录中标记这个交易。

Oracle数据库保证这三项操作,作为一个单元,要么成功,要么失败。例如,若出现硬件故障,阻止了某条语句的执行,那么其他的语句,就必须进行回滚。

“交易”是Oracle数据库区别于文件系统的特征之一。如果你在文件系统上,更新了一些文件,此时操作系统半途崩溃,文件就会处于不一致的状态。相比之下,“交易”会让Oracle从一种状态,迁移至另一种一致的状态。交易的基本原则,就是“要么都执行,要么都不执行”。换句话说,就是原子操作,作为整体,要么成功、要么失败。

数据并发,Data Concurrency

多用户的关系型数据库管理系统需求之一,就是对于并发的控制,也就是允许多个用户,同时访问相同的数据。如果没有并发的控制,用户就能非法改编数据,造成数据的不一致。例如,某个用户更新一行记录,同时,另一个用户也在更新这行。

如果多个用户,同时访问相同的数据,控制并发的一种方法,就是让用户等待。然而,数据库管理系统的目标,就是减少等待,因此要么不会让用户等待,要么让其等待的影响,可以忽略不计。所有改数据的SQL,必须尽可能没有影响。必须避免错误地更新数据或者更改底层数据结构。

Oracle数据库使用锁机制来控制对于数据的并发访问。锁,是一种阻止不同交易访问共享资源进而冲突的机制。锁可以确保数据完整性,同时还能允许,最大的数据并发访问。

数据一致性,Data Consistency

Oracle数据库中,用户必须看的是,数据一致性视图,包括该用户交易所做的变更,以及其他用户提交的交易。例如,数据库必须阻执脏读,脏读指的是某个交易,可以看见其他交易做的、尚未提交的变更。

Oracle数据库强制语句级读一致性,确保每条检索返回的数据,在同一个时间点上是一致的。依赖于交易隔离级别,这个时间点就是语句开始执行,或者说交易开始。闪回查询功能,可以指出需要回退的时间点。

对于一次交易的所有查询,数据库也能支持读一致性,通常理解为交易级别的读一致性。交易中每条语句看见的都是同一个时间点的数据,这个时间点,就是交易开始的时间。

如果您觉得本文有帮助,欢迎关注转发:bisal的个人杂货铺,

《Oracle Concept》前言介绍-4
本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 《Oracle Concept》前言介绍-4


 上一篇
《Oracle Concept》前言介绍-3 《Oracle Concept》前言介绍-3
背景: 按照《Oracle Conecpt》的结构一起了解Oracle。 历史文章: 《》 《》 《》 《》 本文主题:前言《Introduction to Oracle Database》 - “Data Access”。 作为《
下一篇 
数据库之MySQL(一) 数据库之MySQL(一)
点击上方”python宝典”,关注获取python全套视频, 技术文章第一时间送达! 概述1、什么是数据库 ?   数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2、什么是 MySQL、Oracle、SQLite