计算机考研复试面试常问问题 数据库篇
在复习过程中,我用心查阅并整理了在考研复试面试中可能问到的大部分问题,并分点整理了答案,可以直接理解背诵并加上自己的语言润色!极力推荐打印下来看,效率更高!绝对良心之作!
此系列一共有8篇:编程语言篇|数据结构篇|操作系统篇|组成原理篇|计算机网络篇|数据库篇|软件工程篇|计算机专业英语篇(还未全部完成,敬请期待,你们的支持和关注是我最大的动力!)
个人整理,不可用于商业用途,转载请注明出处。
作者各个平台请搜索:程序员宝藏。快来探索属于你的宝藏吧!
需要pdf直接打印版,可在公众号"程序员宝藏"回复复试上岸获取(会持续更新)
需要408电子书最新版,可在公众号"程序员宝藏"回复408电子书获取
需要408初试视频最新版,可在公众号"程序员宝藏"回复408视频获取
需要复试机试视频,可在公众号"程序员宝藏"回复机试必过获取
相对于408初试,复试需要的少多了,加油,大家都可以上岸!!!让我们一起努力!!!
章节导读:
1.事务
概念:事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。
ACID特性:
(1)原子性 (Atomicity):事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。(2)一致性 (Consistency):数据库在事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的。
(3)隔离性 (Isolation):一个事务所做的修改在最终提交以前,对其它事务是不可见的。
(4)持久性 (Durability):一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。
使用重做日志来保证持久性。
事务的 ACID 特性概念简单,但不是很好理解,主要是因为这几个特性不是一种平级关系:
只有满足一致性,事务的执行结果才是正确的。
在无并发的情况下,事务串行执行,隔离性一定能够满足。此时只要能满足原子性,就一定能满足一致性。
在并发的情况下,多个事务并行执行,事务不仅要满足原子性,还需要满足隔离性,才能满足一致性。事务满足持久性是为了能应对数据库崩溃的情况。
2.并发一致性问题
丢失数据
丢失数据: T 1 T_1 T1 和 T 2 T_2 T2 两个事务都对一个数据进行修改, T 1 T_1 T1 先修改, T 2 T_2 T2 随后修改, T 2 T_2 T2 的修改覆盖了 T 1 T_1 T1 的修改。简记为
同时修改
。
读脏数据
读脏数据: T 1 T_1 T1 对一个数据做了修改, T 2 T_2 T2 读取这一个数据。若 T 1 T_1