一、事务
用户定义的一组操作序列,要么全做,要么全不做。
是并发控制的基本单位。


commit
事务正常结束
所有的数据是永久的更改

rollback
事务异常终止
撤销之前事务所做的更改,回滚到事务未开始的状态。

事务四个特性
1)原子性:事务是数据的逻辑工作单位。
一个事务里面包含的操作要么都做要么都不做。
2)一致性:事务是从一个状态变成另一个装态。
(要么是事务未开始做的状态,要么是全部完成后的状态,不可能存在中间的状态。)
只存在成功的事务的状态,不存在失败的事务的状态。
3)隔离性
事务不能被其他的事务所干扰。
4)永久性
对事物的更改是永久的,接下来的操作和其他的故障不能够产生任何的影响。

常见的故障:
1、事务故障
事务在运行的过程中发生了些意外导致程序异常终止。
解决方法:可能已经将部分数据写入硬盘,所以应该撤销事务,强行回滚。
2、系统故障
整个正常运行的事务突然被破坏。
解决方法
1)redo所有已经提交的事务。事务提交后的数据修改可能只停留在缓冲区内。
2)undo未完成的事务,未完成的事务可能在磁盘里面已经修改过了。

3、介质故障
硬盘损坏,外存当中的内容部分丢失或者全部丢失。
解决方式:装入某个时刻的数据备份,重做这个时刻之后成功提交的事务。

恢复操作的基本原理:冗余
利用数据库当中其他部分冗余的数据来恢复被损坏的数据。

冗余数据的建立
数据转储:数据转到其他的硬件上作为备份。
1)静态转储:
在转储的时候不运行其他的事务。
能够保证一致性状态。
2)动态转储
用户运行事务的同时也进行数据库的备份。
不能保证备份的数据的一致性和有效性。
需要把动态转储期间数据库的修改活动以日志形式记录下来,建立日志文件。
恢复的时候结合日志文件,将数据库恢复到某一状态。

3)海量转储
每次将所有的数据转储一遍
4)增量转储
只转储上次转储后更新的部分。
不能保证更新后的数据有效

日志文件:用来记录对数据库的操作的文件
操作方式和操作对象。操作前后的数据
可以基于事务和基于数据块。

静态转储 + 日志文件
可以利用日志文件进行恢复处理,而不必运行事务程序。

登记日志文件:先写日志文件,后写数据库

故障的恢复:
1)事务故障的恢复:
Undo该事务对硬盘的修改。
反向操作更新操作,将更新操作逆着做一遍,直到事务开始的标志。

2)系统故障的恢复
undo故障发生时未完成的事务,
redo故障发生时已完成的事务
从头扫描日志文件,确定redo队列和undo队列,

介质故障的恢复
1)重做数据库
恢复到一致性的状态
3)恢复已经完成的数据

  • 静态转储:已是一致性状态。
  • 动态转储:同过日志文件(redo + undo)将数据库恢复到一致性状态。


显式封锁:直接对该数据项进行加锁
隐式封锁:对该数据项的上级数据项加锁导致间接的对该数据项进行了加锁
所以检查是否加锁的时候需要检查上中下的内容。
该数据对象
有无显式封锁与之冲突
所有上级结点
检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突:(由上级结点封锁造成的)
所有下级结点
看上面的显式封锁是否与本事务的隐式封锁(将加到下级结点的封锁)冲突。

引进意向锁(intention lock)目的
提高对某个数据对象加锁时系统的检查效率
对任一结点加基本锁,必须先对它的上层结点加意向锁
如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁

第九章 —— 关系查询处理和查询优化

查询处理步骤
1.查询分析:词法语法分析
2.查询检查:权限检查
3.查询优化:有多种途径可以达到目的,选择最佳的一个
4.查询执行

  • 查询分析
    对查询语句进行扫描、词法和语法分析。

  • 查询检查
    检查语句中对象有效性,检查权限和约束。

  • 查询优化
    对可供选择的执行策略和操作算法进行挑选。

  • 查询执行
    根据优化器得到的执行策略生成查询计划。



    关系代数表达式的优化算法
    (1)分解选择运算
    (2)通过交换选择运算,将其尽可能移到叶端
    (3)通过交换投影运算,将其尽可能移到叶端
    (4)合并串接的选择和投影,以便能同时执行或在一次扫描中完成
    (5)对内结点分组
    (6)生成程序



第七章 —— 数据库设计
数据库设计的六个阶段
1、需求分析
2、逻辑结构设计阶段
E_R图登场
3、概念结构设计阶段
关系模型
4、物理设计阶段
选择存储方式和存储引擎
5、实施阶段
6、运行和维护阶段

一、需求分析的任务
确定新系统的功能
信息要求、处理要求、安全性与完整性要求。
信息要求:获取什么数据
处理要求:、安全性与完整性要求。

数据字典
1)用途:各类数据描述的集合。
数据通过详细分析而得到的结果
2)内容
数据项
数据结构(数据采用什么样的结构组织)
数据存储(我觉的是文件描述符那类的东西,记录了数据的存储位置)
处理过程
数据流(有一定长度,有起点和终点的有序数据序列,比如一个数据流,比如查询一个表,数据是一列一列的出来还是一行一行的出来。)

数据项是数据的最小组成单位
若干个数据项可以组成一个数据结构
数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

7.3.2 概念结构设计的方法与步骤
设计概念结构的四类方法
自顶向下
首先定义全局概念结构的框架,然后逐步细化

自底向上
首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构

逐步扩张
首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构
混合策略
将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

三种常用抽象

  1. 分类(Classification)
    定义某一类概念作为现实世界中一组对象的类型
    这些对象具有某些共同的特性和行为
    它抽象了对象值和型之间的“is member of”的语义
    在E-R模型中,实体型就是这种抽象

  2. 聚集(Aggregation)
    定义某一类型的组成成分
    它抽象了对象内部类型和成分之间“is part of”的语义
    在E-R模型中若干属性的聚集组成了实体型,就是这种抽象。

物理设计

  1. 为关系模式选择存取方法(建立存取路径)
  2. 设计关系、索引等数据库文件的物理存储结构

数据库的实施
1.用DDL定义数据库结构
2.组织数据入库

  1. 筛选数据。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。
  2. 转换数据格式。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。
  3. 输入数据。将转换好的数据输入计算机中。
  4. 校验数据。检查输入的数据是否有误。
    3.编制与调试应用程序
    4.数据库试运行
    数据库试运行也称为联合调试,其主要工作包括:
    1)功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。
    2)性能测试:测量系统的性能指标,分析是否符合设计目标。
    3)测试方法与数据:测试过程应当尽量在真实的环境下进行。测试数据要有量与质的保证(有充分的代表性数据)。进行时空效果综合评价。

2022-1-9数据库期末复习(五)第十章 - 第九章-第七章相关推荐

  1. 数据库期末复习知识点:(仅供参考)

    数据库期末复习知识点: 一运用SQL 基本sql语句 授权sql语句: 实体完整性sql语句: 二 ER 画出ER图,并转换成关系模式. 三.范式 范式 存储结构 一运用SQL 基本sql语句 (1) ...

  2. C语言程序设计第五版谭浩强 第七章答案

    C语言程序设计第五版谭浩强著 第七章答案 第七章 用函数实现模块化程序设计 1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果.两个整数由键盘输人. 题目解析: ...

  3. 算法复习第六章第七章

    算法复习第六章第七章 第六章回溯法 TSP问题 0-1bag问题 图着色问题 八皇后问题 第七章分支限界法 0-1bag问题 TSP问题 第六章回溯法 TSP问题 0-1bag问题 图着色问题 八皇后 ...

  4. MySQL数据库期末复习--这一篇就够了

    目录 一.前言 二.一些基本概念 1.时态数据库 2.分布式数据库 3.面向对象数据库 4.移动数据库 三.数据库的创建 1.工具 2.基本需求 3.根据上述需求画出E-R图 4.将E-R图转换成关系 ...

  5. BISTU数据库期末复习指导

    BISTU数据库原理与应用期末复习指导 一.章节概览 数据库概述 数据模型与数据库结构 关系数据库 SQL语言基础以及数据定义功能 数据操作语句 索引和视图 触发器 关系规范化理论 数据库设计 安全管 ...

  6. 【期末考试】数据库期末复习

    一 简答题: 重点: 第一章(绪论), 第五章(数据库完整性), 第十一章(并发控制) 数据库模型和约束条件: 网状模型: 其实就是图 约数条件: 插入数据时, 允许插入尚未确定双亲结点值的子女结点值 ...

  7. 《微机原理第五版》期末知识总结(第五章---第七章)

    微机原理与接口技术 本文承接上篇前四章的内容,对第五章到第七章做个期末总结,方便大家更好的掌握这门课的知识点.看到了这里说明你对这门课程还有很大的兴趣和执念,另外有配套的试题和PPT在我的主页可以翻阅 ...

  8. 计算机网络教程第五版|微课版 - 第七章 网络安全 - 重要概念【补充】

    第七章.网络安全[补充] 本章的重要概念 计算机网络中需要提供的基本安全服务有机密性.报文完整性.不可否认性.实体鉴别.访问控制和可用性等. 密码学是计算机网络安全的基础,是实现机密性.报文完整性.实 ...

  9. oracle数据库期末复习

    oracle数据库 第一章数据库 一. 1.数据库(DB) : (1)特性:共享性,独立性,完整性,减少数据冗余. 2.数据库管理系统(DBMS):功能: (1)数据定义功能:语言, (2)数据操作功 ...

最新文章

  1. A Context-aware Attention Network for Interactive Question Answering--阅读笔记
  2. 引用Drawable颜色常数及背景色
  3. 重学java基础第三课:学习方法和课程概述
  4. Jenkins_GithubFork程序_入门试炼04
  5. css-transform-案例-翻转牌效果
  6. 8.3实例程序:平面阴影
  7. osgconv使用指南(转)
  8. 吴恩达神经网络和深度学习-学习笔记-35-残差网络(Residual Network)
  9. Spring MVC JSON自己定义类型转换
  10. Kotlin实战【一】Kotlin定义与目的
  11. FLOPs和模型参数计算
  12. Unity Shader - Secondary Maps (Detail Maps) Detail Mask 第二部分贴图(细节贴图)
  13. Android开发实现选择城市界面,可根据拼音、首字母进行搜索
  14. IDEA maven项目使用Junit报错 java: 程序包org.junit不存在
  15. react仿微信聊天室|react即时聊天IM系统|react群聊
  16. c语言常用的运行速度优化,C语言程序设计优化(提速)
  17. Glibc:浅谈 malloc() 函数具体实现
  18. FC下常用软件的安装配置
  19. 这是一个关于女码农减肥的思考
  20. Windows HOOK 按键工具类

热门文章

  1. 谷粒商城RabbitMQ
  2. Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
  3. Oracle EBS: 物料的属性设定
  4. ijkplayer 参数说明文档 --个人使用
  5. 基于 java的停车场智能管理系统
  6. iOS 通过itms-services 实现在线安装
  7. 计算机专业毕业设计基于SSM的社区医院管理系统
  8. Minio分布式集群搭建
  9. nginx配置及网关
  10. matlab在汽车上的运用,25份MATLABSIMULINK在汽车开发中的应用PPT