数据库系统概论—恢复与并发

这篇具有很好参考价值的文章主要介绍了数据库系统概论—恢复与并发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据库概论系统—系统篇

一、关系查询处理和查询优化

1.1关系数据库的查询处理

查询处理可分为四个阶段:查询分析、检查检查、查询优选和查询执行(其中查询优化可分为代数和物理优化)

1.2关系数据库系统的查询优化

查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较高的效率,而且在于系统可以比用户程序“优化”做的更好

会将建立原始树,并能够将其转化为优化查询树

数据库系统概论—恢复与并发

二、数据库恢复技术

2.1事务

2.1.1事务的基本概念

事务:是用户定义的一个数据库操作序列,要不全做,要不全不做,是一个不可分割的工作单位(是数据库恢复和并发控制的基本单位)

  • 一般来书,一个程序中包含多个事务(事务,程序两个概念)

COMMIT:提交,即提交事务的所有操作

ROLLBACK:回滚,即撤销该事务完成的操作,回滚到事务开始状态

2.1.2事务的ACID准则

原子性,一致性(正确性),隔离性和持续性

2.2故障的种类(处理非预期的)

  • 事务内部的故障:此处专指非预期的故障
  • 系统故障:是指造成系统停止运行的任何事件,使得系统要重新启动,不破坏数据数。故障时,正在进行的事务会撤销,已完成的在缓存区的事务要重做
  • 介质故障:又叫做硬故障,破坏最大
  • 计算机病毒

2.3恢复的实现技术

数据库恢复的原理十分简单:建立冗余—数据转储和建立日志文件

2.3.1数据转储

  • 静态转储:系统停止事务进行转储。期间不能操作数据库
  • 动态转储:转储和事务并发操作。但是数据会过时,一般的情况一个完整的副本 = 转储 + 日志文件
  • 还有海量和增量转储

2.3.2日志文件

  • 登记的次序严格按照并发事务执行的时间次序

  • 先写日志文件,再写数据库

    2.4恢复策略

  • 事务故障恢复:利用日志文件撤销。反向扫描,进行逆操作,知道读到事务的开始标记

  • 系统故障恢复:先站队列,正向扫描日志,有开始和提交->重做;只有开始->撤销;有开始和回滚->什么也不去。再对撤销队列中的事务进行撤销操作(见上)

  • 介质故障恢复:重装数据库然后重做已完成的事务(管理员接入)

2.5具有检查点的恢复技术

再日志文件中加入新记录—检查点记录,增加一个重新开始文件。让恢复子系统在登录日志文件期间动态维护日志。

  • 建立检查点时刻所有正在执行的事务清单
  • 这些事务最近一个日志记录的地址(正在进行中开始最早的)

数据库系统概论—恢复与并发

2.6数据库镜像

处理介质故障,是提高数据库可用性的解决方案,提高并发性的办法

正常运行时,主盘自动复制到副盘;发生故障后副盘晋升为主盘并自动复制到新的副盘上。

三、并发控制

事务是并发控制的基本单位

3.1并发的概述

并发控制的目的是为了保证事务的隔离性和一致性

并发操作有可能会带来丢失修改,不可重复读,读"脏数据"的问题

数据库系统概论—恢复与并发

针对上述的问题采取了各种方法

3.2封锁

事务T对某个数据对象操作前,像系统发出申请,对其加锁,加锁后事务会对数据有一定的控制

  • 排他锁、写锁、X锁:只允许读取和修改,其他事务不能对其加任何锁,直到释放
  • 共享锁、读锁、S锁:可以读但不能修改,其他事务可以对其加S锁

3.3封锁协议

  • 一级封锁:事务T修改前+X锁,直到事务结束才释放
  • 二级封锁:在一级的基础上,事务T读前+S锁,读完释放
  • 三级封锁:在一级的基础上,事务T读前+S锁,直到事务结束才释放

数据库系统概论—恢复与并发

不同级别的封锁可解决不同的问题

数据库系统概论—恢复与并发

3.4活锁和死锁

3.4.1活锁

事务有了优先级,会插队 =>先来先服务

3.4.2死锁

事务之间形成闭环

  • 死锁的预防

一次封锁法:一次将所有使用数据全部枷锁

顺序封锁法:预先对数据对象排序

  • 死锁的诊断与解除

超时法:规定等待时间,若超过等待时间,则认为是死锁

等待图法:选择代价最小的一个事务撤销

3.5并发调度的可串行性(了解)

3.5.1可串行化调度

多个事务并发是正确的<=>其结果与某一次串行执行的结果相同,即为可串行化调度

3.5.2冲突可串行化调度

冲突可串行化调度是可串行化的充分条件

只有对同一个数据的读写和写写会产生

  • 已知调度,判断是否冲突

1.画有向图(T,E) T:为事务个数;E:若Ri/Wi/Wi(x)在Wi/Ri/Wi(X)前则TIi—Tj

2.若有回路,则不是冲突可串行化调度;反之是

3.若为冲突可串行化调度,找一个入度为0的事务将其以及和其相连的边删去,再找一个入度为0的事务...重复

4.最后按照原调度顺逆顺序对每个事务内部进行排序

3.6两段锁协议

事务分成两个阶段对数据项进行加锁和解锁

  • 获得封锁(扩展阶段):事务申请获得任何数据项上任何类型的锁
  • 释放封锁(收缩阶段):事务释放任何数据项上任何类型的锁

:遵循两段锁是可串行的充分条件。遵循两段锁也可能出现死锁

3.7封锁的粒度

封锁粒度,即封锁对象的大小(逻辑单元,数据库,元组...)

  • 封锁粒度越大,数据库能封锁的数据单元越,并发度就越,开销
  • 封锁粒度越小,数据库能封锁的数据单元越,并发度就越,开销

3.7.1多粒度封锁

多粒度封锁允许每个结点被独立地i加锁。多粒度封锁中的锁有向下继承关系

数据库系统概论—恢复与并发

检查一个数据是否可以加锁:先检查自己,再看上下级的数据结点

3.7.2意向锁

如果对一个结点加意向锁,则说明该锁下层正在被加锁;对任一结点加锁,其上层结点都要加意向锁。可以提高检查效率

三种意向锁

  • 意向共享锁(IS锁):若对结点+S锁,则上层结点+IS锁
  • 意向排他锁(IX锁):若对结点+X锁,则上层结点+IX锁
  • 意向共享排他锁(SIX锁):若对结点+SIX锁,则它对同一个下结点+S和X锁(对同一个数据又读又修改,不排他)![1685974462931]数据库系统概论—恢复与并发

注意:是否排他是对不同的事务来说文章来源地址https://www.toymoban.com/news/detail-534316.html

到了这里,关于数据库系统概论—恢复与并发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库系统概论-00引言

    -数据库系统的发展经历了三代演变 层次/网状数据库系统,关系数据库系统,新一代数据库系统。 -造就了四位图灵奖得主 C.W.Bachman,E.F.Codd,James Gray,M.R.Stoebraker.。 -发展了一门计算机基础学科· 数据建模和DBMS核心技术为主,内容丰富,领域宽广。 -带动了一个巨大软件产业 D

    2024年01月22日
    浏览(53)
  • 【数据库系统概论】期末复习4

    期末复习1 期末复习2 期末复习3 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 数据库的完整性是指数据的正确性和相容性。 数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数

    2024年02月02日
    浏览(48)
  • 《数据库系统概论》实验7报告

    实验题目:通过ODBC方式访问数据库 实验环境:Windows 10、MySQL、SQL Server 实验步骤 一、MySQL数据源配置 1、安装MySQL的ODBC驱动安装包 https://dev.mysql.com/downloads/connector/odbc/,选择32位的8.0.21的msi版本,进行安装 2、添加驱动程序 打开 控制面板 —— 系统和安全 —— 管理工具 ——

    2024年02月07日
    浏览(56)
  • 《数据库系统概论》SQL Server 数据库导出、导入教程

    在SQL Server的使用过程中,大家难免遇到数据库表的导出、导入,从而实现用其它电脑打开数据库。 如果是使用学校实验室(机房)电脑做实验的同学,一定要掌握本技能!!! 1、右键点击数据库,“任务”,“生成脚本”,如下图 2、选择对象操作如图,“选择具体的数据

    2024年02月10日
    浏览(71)
  • 数据库系统概论—安全、完整性

    数据库的安全性指保护数据库以防 不合法 使用所造成的数据泄露、更改或破坏 2.1用户身份鉴别 静态口令鉴别 动态口令鉴别 生物鉴别特征 智能卡鉴别 2.2存取控制 自主存取控制:给用户限权(DAC,C1级) 强制存取控制:给数据库对象一定的密级(MAC,B1级) 2.3自主存取控制方法(授

    2024年02月03日
    浏览(46)
  • 数据库系统概论—标准语言SQL

    1.1基本表的定义、删除与修改 定义基本表 修改基本表 删除基本表 CASCADE:与其相关的全部删除,比如视图,索引等 RESTRICT:如果有依赖关系或是建立索引等,就不删除 但是不同的数据管理系统的执行不同 1.2索引的建立与删除 建立索引 删除索引 基本结构 2.1单表查询 利用上

    2023年04月24日
    浏览(67)
  • 【数据库系统概论】第三章关系数据库标准语言SQL

    1.数据查询: SELECT:用于选择需要查询的列和行。 FROM:用于指定要查询的表。 WHERE:用于指定查询条件。 GROUP BY:用于按照指定的列对结果进行分组。 HAVING:用于指定分组条件。 ORDER BY:用于指定查询结果的排序方式。 2.数据操纵: INSERT INTO:用于将数据插入表中。 UPDAT

    2024年02月08日
    浏览(118)
  • 数据库概论课程设计-汽车租赁公司数据库系统的设计

    进入新的世纪以来,经济的快速发展,让很多东西都快速的淘汰了,好多新型的东西也逐渐进入我的视野,而更有好多以前很贵的东西,渐渐降价普及了,汽车逐渐走进了千家万户。而汽车作为一种高价位消费品,结合我国低购买力的国情,很多人就买不起汽车了,所以公司

    2024年02月02日
    浏览(70)
  • 《数据库系统概论》王珊版课后习题

    1.数据、数据库、数据库管理系统、数据库系统的概念 (1)数据(Data):数据是数据库中存储的基本对象, 是描述事物的符号记录 。数据有多种表现形式,它们都可以经过数字化后存入计算机。数据的种类有数字、文字、图形、图像、声音、正文等。 (2)数据库(DB):

    2024年02月07日
    浏览(49)
  • 数据库系统概论---选择题刷题实训

    1. 下列选项中,不属于关系模型三要素的是(  C   ) A.数据结构                   B.数据操纵     C. 数据安全                   D.数据完整性规则       关系数据模型的三个组成部分中,不包括 (  D   )    A. 完整性规则          B. 数据结

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包