IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> (数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事物的基本概念和数据库恢复概述 -> 正文阅读

[大数据](数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事物的基本概念和数据库恢复概述

一:事物的基本概念

(1)事物

A:定义

事物:是用户定义的一个数据库操作序列。这些操作要么不做,要么全做,是一个不可分割的工作单位。例如在RDBMS中一个事物可以是一条SQL语句或整个程序。事物是数据库恢复和并发控制的基本单位

  • 事物和程序的区别:一般来说,一个程序中包含多个事物

B:事物的定义

事物的定义:事物的开始与结束由用户显式控制。如果用户没有显式地定义事物,则由DBMS按默认规定自动划分事物。在SQL中,定义事物语句有以下三条

  • BEGIN TRANSACTION:表示事物的开始
  • COMMIT:表示事物的正常结束并提交事物的所有操作
  • ROLLBACK:表示事物的结束,但没有正常结束,需要进行回滚(撤销已完成操作,使系统恢复至回滚前状态)

注意不同数据库系统定义语句有所区别

SQL Server

BEGIN TRANSACTION
COMMIT | ROLLBACK

MySQL

START TRANSACTION
COMMIT | ROLLBACK

Oracle

START TRANSACTION NAME
COMMIT | ROLLBACK

(2)事物的四个特性——ACID

A:数据库的ACID

①:原子性(Atomicity)

原子性:事物是数据库的逻辑工作单位,事物中包含的诸多操作要么全做、要么不做。因故障未能做完的,需要有一套机制用于“撤销”那一部分已经做了的

②:一致性(Consistency)

一致性:事物执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态

  • 一致性状态:数据库中只包含成功事物提交的结果
  • 不一致状态:数据库中包含事物未完成时的状态

例如银行转账业务,账户 A A A转1万元到账户 B B B,该事物包含两个操作:首先是 A A A减少一万元,其次是 B B B增加一万元,这两个操作要么全部做要么全不做,如果只做其中一个就会发生逻辑错误,数据库就处于不一致状态了

③:隔离性(Isolation)

隔离性:一个事物不能被其他事物干扰。也即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰

比如,下列两个并发执行的事务T1和T2,如按表中所示顺序执行,则事务T1的修改被T2覆盖了,即T2干挠了T1。违背了事务的隔离性,是错误的调度

在这里插入图片描述

④:持续性(Durability)

持续性:一个事物一旦提交,它对数据库中数据的改变就是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响

B:破坏ACID的因素

主要有两类

  • 故障:没有执行完;虽然没有完,但是存储介质故障。破坏了ACID中的ACD
  • 并发干扰:多个事物并行运行时,不同事物的操作交叉执行,互相干扰。破坏了ACID中的I

因此这就是DBMS的恢复机制并发控制机制需要解决的问题

  • 本章介绍恢复机制
  • 下一章介绍并发控制机制

二:数据库恢复概述

定义:把数据库从因破坏或故障而导致的错误状态恢复到某个已知的正确状态的技术

目的

  • 保持事物的原子性
  • 保持事物的持久性

实现:由DBMS专门的恢复子系统完成

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:41:02  更:2022-02-01 20:43:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:06:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码