数据库系统概论知识总结
文章目录
- 数据库系统概论
- 1. 简述两段锁协议的内容
- 2. 并发调度的正确行的标准是什么,如何保证并发调度的正确性
- 3. 请简述事务的概念和4个特性。以及恢复技术能保证事务的那些特性?
- 4. 数据库中为什么要并发控制,并发控制可以保证事务的那些特性?
- 5. 并发操作会带来哪几类数据不一致,用什么方法能避免各种不一致的情况?
- 6. 什么是活锁和死锁,及各自的产生原因和解决方法?
- 8. 什么是冲突,和冲突可串行化调度?
- 9. 冲突可串行化调度是可串行调度的充分条件,但不是必要条件
- 10. 两段锁协议与一次封锁法的异同:
- 11. 什么是意向锁,引进意向锁的目的是什么?
- 12. 具有意向锁的多颗粒封锁方法
- 13.封锁协议:指在运用X锁,S锁,对数据对象加锁时,需要约定一些规则。
- 14. 事务时恢复和并发控制的基本单位,并发控制机制的基本任务是;
- 15. 登记日志文件必须遵循的两条原则
- 16. 范式
- 17. 数据库设计步骤
- 18.数据字典
- 19.进程和线程的区别
数据库系统概论
1. 简述两段锁协议的内容
两段锁协议是指所有事务必须分为两个阶段对数据项加锁和解锁:
第一阶段是获得封锁,也称扩展阶段,事务可以申请获得任何数据项上的任何类型的锁,但不能释放任何锁。
第二阶段是释放封锁,也称收缩阶段,事务可以释放任何数据项上的任何类型的锁,但不能再申请任何锁。
2. 并发调度的正确行的标准是什么,如何保证并发调度的正确性
可串行性是并发事务正确调度的准则,也就是它的执行结果与串行调度结果一致的可串行化调度。
普遍采用的是两端锁协议的方法实现并发调度的可串行性,从而保证调度的正确性。
3. 请简述事务的概念和4个特性。以及恢复技术能保证事务的那些特性?
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
原子性: 事务的步骤集合必须作为一个单一的、不可分割的单元出现。
一致性: 事务执行时保持事务的一致性
隔离性: 事务执行不能被其他事务干扰
持续性: 事务一旦提交对数据库数据改变应该永久性
故障恢复技术可以保证事务的原子性和持续性。
并发控制可以保证事务的一致性和隔离性
4. 数据库中为什么要并发控制,并发控制可以保证事务的那些特性?
数据库共享资源的,通常有多个事务同时运行。如果不对并发操作加以控制就可能会存取和存储不正确的数据,而破坏数据库的一致性。
并发控制可以保证事务的一致性和隔离性。
5. 并发操作会带来哪几类数据不一致,用什么方法能避免各种不一致的情况?
分为三类:丢失修改,不可重复读,读“脏”数据。
避免数据不一致的方法就是并发控制,常用的并发控制技术有封锁方法,时间戳方法,多版本并发控制方法。
6. 什么是活锁和死锁,及各自的产生原因和解决方法?
活锁:事务长时间处于等待(可能永远等待)
活锁产生原因:当一系列封锁不能按照先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。
避免活锁的方法一般是采用先来先服务的策略。
死锁:事务T1在等待事务T2,T2又在等待T1,两个事务永远不能结束,从而形成死锁。
死锁产生的原因:两个或多个事务都已经封锁了一些数据对象,又请求对已经为其他事务封锁的数据对象加锁,从而出现死等待。
解决方法:死锁的预防 死锁的诊断和解除
死锁的预防:一次封锁法,顺序封锁法
一次封锁法:每个事务必须一次性将所有要使用的数据全部加锁,否则就不执行
缺点:降低系统并发度,难以事先精确确定封锁对象
顺序封锁法:预先对数据对象规定一个封锁顺序
缺点:维护成本高,难以实现
诊断和解除的方法:超时法 等待图法
等待图法:事务等待图是一个有向图G(T,U),其中T为结点集合,每个结点代表正在运行的事务,u为边集合,每条边代表事务的等待情况。
并发控制子系统周期性,生成事务等待图,检测事务,若是发现图中存在回路,便是出现死锁。
解除死锁的方法:选择一个处理死锁代价最小的事务,撤销事务,释放此事务所持有的锁,使其他事务运行下去。
遵守两段锁协议的调度是正确调度的充分条件,但不是必要条件
可串行化的调度就是正确的调度,可串行性是并发事务正确调度的准则
8. 什么是冲突,和冲突可串行化调度?
冲突:是指不同事务对同一数据的读写操作和写写操作。
除读写操作和写写操作外,其他操作是冲突的操作
不同事务的冲突操作和同一事务的两个操作(读写)是不能交换的
一个调度sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序,得到另一个调度sc’,
如果是sc’是串行的,则称其调度sc为冲突可串行化的调度。
9. 冲突可串行化调度是可串行调度的充分条件,但不是必要条件
若并发事务都遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的
事务遵守两段锁协议是可串行化调度的充分条件,但不是必要条件。
10. 两段锁协议与一次封锁法的异同:
一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不执行,因此一次封锁法遵守两段锁协议。
两段锁协议并不要求事务必须一次性将所有要使用数据全部加锁,因此遵守两段锁协议也可能发生死锁。
11. 什么是意向锁,引进意向锁的目的是什么?
意向锁的含义:如果一个结点加意向锁,则说明该节点的下层结点正在被加锁。对任一个结点加基本锁,必须先对它的上级加意向锁。
引进意向锁的目的:提高对某个数据加锁时系统的检查效率。
原因:在多粒度封锁方法中,一个数据对象可能以两种方式加锁,显式封锁,与隐式封锁。因此在系统在对某一数据对象加锁时,不仅要检查该对象上有无(显式和隐式)封锁与之相冲突,还要检查其所有上级结点和所有下级结点,看申请的封锁是否与这些结点上的封锁发生冲突。显然这样检查方法效率是很低的,为此而引进了意向锁。
12. 具有意向锁的多颗粒封锁方法
任何事务T要对一个数据对象加锁,申请封锁时按自上而下的次序进行,释放封锁时按自下而上的次序进行。
具有意向锁的多颗粒封锁方法,提高了系统的并发度,减少了加锁与解锁的开销。
13.封锁协议:指在运用X锁,S锁,对数据对象加锁时,需要约定一些规则。
一级封锁协议:指事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
功能:可防止丢失修改,并保证事务T恢复
二级封锁协议:指在一级封锁协议的基础上,增加事务T在读取数据R之前,必须加上S锁,读取完成后即可释放S锁。
功能:不仅防止了丢失修改,还防止了读“脏”数据。(由于读完后,即可释放S锁,所以不能保证可重复读。
三级封锁协议:在一级封锁协议的基础上加上对事务在读取数据R之前,必须加上S锁,直到事务结束才可释放S锁。
功能:可防止 丢失修改,读“脏”数据,不可重复读。
14. 事务时恢复和并发控制的基本单位,并发控制机制的基本任务是;
对并发操作进行正确调度
保证事务的隔离性
保证事务的一致性(即数据库的一致性)
15. 登记日志文件必须遵循的两条原则
登记的次序必须严格按并发事务执行的时间次序
必须先登记日志文件,后写数据库(因为一旦断电后,若是先写数据库,则在恢复时可能会发生错误)
16. 范式
1NF:每个分量都是不可分的数据项 ,
2NF:每个非主属性都要完全函数依赖于任何一个候选码(在1NF基础上)
3NF:若F中不存在传递函数依赖,则是第三范式(在1NF基础上)
BCNF:在3NF下,Y依赖与X,其中,X中必须包含码(而且每一个依赖都要满足)
4NF:对于每一个非平凡的多值依赖(Y多值依赖于X)其中X都含有候选码。
优化范式:通过模式分解可以实现,能够消除数据冗余,插入异常,更新异常,删除异常。
17. 数据库设计步骤
需求分析阶段(数据字典,全系统中数据项,数据结构,数据流,数据存储的描述)
概念结构设计阶段(E-R图)
逻辑结构设计阶段(E-R图变换成关系表)
物理结构设计阶段(存储安排,存取方法选择,存取路径建立,创建索引)
数据库实施阶段(创建数据库模式,装入数据,试运行)
数据库运行与维护
18.数据字典
(作用): 它是下一步概念结构设计的基础,是在需求分析阶段建立,在数据库设计过程中不断修改,充实,完善的。它是关于数据库中数据的描述,而不是数据本身。
(内容): 通常包括数据项,数据结构,数据流,数据存储和处理过程 这5个部分组成)
19.进程和线程的区别
1.根本区别:进程是操作系统资源分配的基本单位,而线程是CPU处理器任务调度和执行的基本单位。
2.开销区别:每个进程独有独立的代码和数据空间,进程之间切换开销大;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换开销小(这也是引进线程的一个原因)。
3.所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)
4.内存分配:系统为每个进程分配不同的内存空间;而对线程而言,除CPU外系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。
5.包含关系:线程是进程的一部分,所以线程也称为轻量级进程。一个进程可以有多个线程,且至少还有一个线程。
6.进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有自己的地址空间,至少有5种基本状态;而线程是CPU处理器调度和分配的基本单位。
数据库系统概论知识总结相关推荐
- 数据库系统概论②——关系数据库基础
本篇文章主要讲解关系数据库基础中的基本概念,包括关系模型概述.关系的完整性约束等等内容. 同时想要了解更多数据库系统概论知识的朋友可以看下我的上一篇文章数据库系统概论①--数据库系统基本概念 文章目录 ...
- 数据库系统概论第三单元基础知识(一)
mysql基础操作 mysql8.0 workbench /* ----------------------------基础知识------------------------------ */ # ...
- 数据库系统概论(知识整理)你值得拥有
数据库系统概论 数据库系统概论 第一章: 1.数据库的四个基本概念 a.数据(data): b.数据库(DataBase,DB): c.数据库管理系统(DataBase Management Syst ...
- 数据库系统概论第五版知识大纲
数据库系统概论第五版知识大纲 第1章 绪论 1.1 数据库系统概述 基本概念 数据:描述事物的符号记录 数据库:数据库是长期储存在计算机内.有组织的.可共享的大量数据的集合 数据库系统:数据库系统是由 ...
- 数据库系统概论必背知识
本篇我总结了学习数据库系统概论时必备的知识,可以用于巩固知识或者期末复习~~~如果觉得博主爆肝总结的不错,感谢点赞! 往期回顾: 十万字带你学习C++(细节拉满)_小生发火的博客-CSDN博客_c++ ...
- 移动笔试计算机知识,移动笔试知识点之--计算机类-数据库系统概论复习资料
<移动笔试知识点之--计算机类-数据库系统概论复习资料>由会员分享,可在线阅读,更多相关<移动笔试知识点之--计算机类-数据库系统概论复习资料(29页珍藏版)>请在人人文库网上 ...
- 数据库笔记整理--基于《数据库系统概论》第五版王珊一书|第二章--关系数据库知识整理和课后习题答案
该系列的博客都是基于<数据库系统概论>第五版王珊一书 前提: 因为最近要升学的原因,再加上重温数据库部分内容,所以整理一份比较详细且重点的笔记.适合有考研升学需求的人收藏 -------- ...
- 数据库笔记整理--基于《数据库系统概论》第五版王珊一书|第八章--数据库编程知识整理和课后习题答案
该系列的博客都是基于<数据库系统概论>第五版王珊一书 前提: 因为最近要升学的原因,再加上重温数据库部分内容,所以整理一份比较详细且重点的笔记.适合有考研升学需求的人收藏 -------- ...
- 【思维导图总结——数据库系统概论】绪论
绪论 数据库系统概论--绪论 绪论 写在前面 一.数据库系统概述 二.数据模型 (一).数据模型的构建要求及组成要素 (二).分类 1.概念模型(信息模型) 2.逻辑模型(物理模型) 三.数据库系统的 ...
最新文章
- RabbitMQ 延迟队列,太实用了!
- python 数据可视化 -- 读取数据
- pve 群晖 virtio速度慢_群晖DS Note高级教程——教你使用智能记事本
- Should i Backup all my domain controllers
- Java Web——文件上传(Apache Commons FileUpload实现上传图片DEMO)
- wxpython下载缓慢_我可以在wxPython的wx.grid.Grid中加速优化GridCellAttr的使用吗?
- c++ map iterator 获取key_JAVA | Map集合使用详解
- tb项目管理实践_项目经理与项目管理整理
- linux定时任务不能执行.sh脚本,求助sh脚本手动可以执行crontab不能执行的问题
- 面向对象学习(1):认识软件系统的复杂性
- 国外除了Google还有什么搜索引擎?
- 软件需求工程 高校教学平台 项目总体计划
- 01靶场环境搭建(Windows2008系统安装优化及phpstudy安装、cms)
- 如果你想专升本那就一定要看的专升本语文_文学常识完整版(四)
- 兵以诈立 —— 三国的谋略
- 前有刘德华,后有腾格尔和光头李进,明星为何都热衷于线上演唱会
- java 实现导出excel模板
- iOS Wow体验 - 第四章 - 为应用的上下文环境而设计
- 近之则不逊;慈不掌兵
- IDEA安装 激活 基本使用