文章目录

  • 1.如何理解数据库规范化过程/概述范式
  • 2.简述完整性约束条件
  • 3.简述事务和事务特性
  • 4.并发性一致的问题
  • 5.简述封锁
  • 6.简述ER图
  • 7.简述数据库的三级模式结构
  • 8.简述数据库的二级映像功能和数据独立性
  • 9.关系、关系模式、关系数据库的区别
  • 10.简述查询优化的策略
  • 11.简述数据字典
  • 12.数据库故障恢复策略

免费分享超过1000本计算机类电子书,包含编程语言、大数据、机器学习、校招面试经验等

(https://github.com/xiaoleetongxue/csbooks)

1.如何理解数据库规范化过程/概述范式

常见的范式有1NF、2NF、3NF、BCNF,他们的规范化程度是逐步增高的

  • 1NF是指数据库表的每一列都是不可分割的数据项,只要是关系型数据库都要满足1NF;
  • 2NF是在1NF的基础上消除了非主属性对码的部分依赖;
  • 3NF是在2NF的基础上消除了非主属性对码的传递依赖;
  • BCNF是在3NF的基础上消除了主属性对码的部分依赖和传递依赖。

2.简述完整性约束条件

完整性约束条件是指数据的正确性和相容性,具体分为实体完整性、参照完整性、用户自定义完整性。

  • 实体完整性是对主键的约束,主属性独一无二且不为空
  • 参照完整性是对外键的约束,外键必须是另一个关系的主键值或者为空
  • 用户自定义完整性是根据用户需求来的,例如sex字段只能取男或女

3.简述事务和事务特性

事务是一系列数据操作的集合,要么通过commit一起成功,要么通过rollback一起回滚,具有ACID性质

  • A 原子性,事务是最小的操作集合,不可再分割
  • C 一致性,数据库在事务执行前后都保持一致,在一致性前提下,所有事务对同一个数据的读取结果都是相同的
  • I 隔离性,一个事务所做的修改在其提交之前,对其他事务是不可见的
  • D 持久性,事务提交之后,所有对数据的修改都永远保存在数据库中。

4.并发性一致的问题

  • 【丢失修改】T1、T2事务同时对一个数据进行修改,T1先修改,T2后修改,T2修改的覆盖了T1的修改,造成了T1事务修改的丢失。
  • 【脏读】T1事务修改一个数据,但还未提交,之后T2访问了该数据,这时T1进行了回滚操作,T2再次读取数据会和第一次不同。
  • 【不可重复读】T2读取了一个数据,T1对该数据进行了修改,T2再次读取,重复读取的结果不同
  • 【幻读】T1读取某一个范围的数据,T2向这个范围内插入数据,T1重复读时发现结果不同了。

解决方案:通过并发控制来保证隔离,并发控制通过封锁来实现。

5.简述封锁

  • 【封锁粒度】行级锁和表级锁。封锁粒度越小,发生争用可能性就越小,系统并发度越高,但消耗资源越多(包括获取锁、检查锁、释放锁),需要在锁开销并发程度之间进行权衡
  • 【封锁类型】
    • 读写锁

      • 共享锁,称读锁、S锁,加了S锁,其他程序只能读,不能写,只能加S锁,不能加X锁
      • 排它锁,称写锁、X锁,加了X锁,其他程序不能读也不能写
    • 意向锁:支持多粒度封锁,解决表锁可能和之前的行锁冲突的问题,原来加表锁之前会每行检查,看是否有行锁存在,非常耗时。现在要锁一行时先加意向锁,这样加表锁时直接进入阻塞状态,不需要一行一行的检查是否有行锁的存在
  • 【封锁协议】
    • 三级封锁协议

      • 一级封锁协议:当T1修改数据时,加X锁,直到事务结束后释放X锁。
      • 二级封锁协议:在一级封锁协议基础上,当T1读取数据时,加S锁,读完马上释放S锁。
      • 三级封锁协议:在二级封锁协议基础上,当T1读取数据时,加S锁,等T1事务完全结束时释放S锁。
    • 两段锁协议:将事务分成加锁阶段和解锁阶段,事务开始时就处于加锁阶段,直到遇到commit或rollback才使事务进入解锁阶段。

6.简述ER图

ER图又称实体关系图,由三部分组成:实体、属性、联系。用来进行关系型数据库系统的概念设计。

  • 实体:用矩形表示,矩形框内写实体名
  • 属性:用椭圆形表示,并用无向边将其与相应实体连接起来
  • 联系:用菱形表示,菱形框内写联系名称,并在无向边的两侧指明是哪种关系

ER图转换为关系模式的原则:

  • 一对一:在两个实体中任选一个,添加另一个实体的主键即可
  • 一对多:在多的一端添加另一端的主键
  • 多对多:需要将联系转换为实体,并在该实体上加上另外两个实体的主键,作为联系实体的主键,再加上联系本身的属性即可

7.简述数据库的三级模式结构

数据库三级模式分为外模式、模式、内模式。

  • 外模式,又称子模式,是数据库用户可以看到和使用的局部数据的逻辑结构和特征描述,是数据库用户的数据视图,外模式是模式的子集,一个数据库可以有多个外模式
  • 模式,又称概念模式,是数据库中全体数据的逻辑结构和特征描述,是所有用户的公共视图,一个数据库只有一个模式
  • 内模式,又称存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的组织方式。

8.简述数据库的二级映像功能和数据独立性

数据库的二级映像分为外模式/模式、模式/内模式。
数据独立性分为逻辑独立性和物理独立性。

  • 逻辑独立性:是由外模式/模式映像保证的,当模式发生改变时,DBA对外模式/模式的映射作出相应改变,使外模式保持不变,保证了数据的逻辑独立性。
  • 物理独立性:是由模式/内模式映像保证的,当数据库存储结构发生变化时,DBA对模式/内模式映射作出改变,使得模式不变,保证了数据的物理独立性。

9.关系、关系模式、关系数据库的区别

  • 关系:是关系模式在某一时刻的状态,关系是动态的、不稳定的,随时间变化而变化。
  • 关系模式:是静态的、稳定的
  • 关系数据库:是建立在关系模式的基础上,利用关系来描述现实世界。

10.简述查询优化的策略

  • 如果子表达式多次出现,先将其计算结果保存起来,避免重复计算
  • 选择运算尽量先做
  • 尽可能指明展示列,少用*代替
  • 避免在列索引上使用IS NULLIS NOT NULL

11.简述数据字典

数据字典是对数据表中数据元素的定义和描述,目的是对数据流程图中的各个元素进行详细的说明。数据字典和数据流程图共同构成了系统的逻辑模型。

12.数据库故障恢复策略

  • 事务故障恢复:由系统自动完成,反向扫描日志,对事务更新操作执行逆操作
  • 系统故障恢复:由系统重启时自动完成,正向扫描日志,记录REDO队列和UNDO队列,对UNDO队列进行撤销处理,对REDO队列进行重做处理
  • 介质故障恢复:重装后援副本+REDO+UNDO

登记日志文件遵循的两条原则:

  • 登记次序严格按照并发事务执行的时间次序
  • 必须先写日志文件,后写数据库

免费分享超过1000本计算机类电子书,包含编程语言、大数据、机器学习、校招面试经验等

(https://github.com/xiaoleetongxue/csbooks)

更多考研资料、调剂技巧可以关注我的公众号,也可以加我的微信

考研复试常见问题(数据库系统概论篇)相关推荐

  1. 计算机专业考研复试(前沿知识篇)

    文章目录 前言 高频问题 1.人工智能的理解 人工智能包括六个方面: 2.神经网络 3 .机器学习--一种实现人工智能的方法 机器学习与大数据的高度耦合 区分机器.深度.强化学习 4.深度学习 5.数 ...

  2. 数据结构考研复试常见问题及答案(逆袭篇)

    文章目录 1.逻辑结构与物理结构(存储结构)的区别? 2.算法的特点? 3.常见的数据结构? 4.链表结构和顺序存储结构的区别? 5.线性链表? 6.数组和链表的区别? 7.判断一个链表是否有环,如何 ...

  3. c语言考研面试经常问到的问题,考研复试常见问题(C/C++、Java)

    C语言与C++的主要区别: C语言是面向过程编程的典范,C语言以过程为中心,用算法进行驱动.C++是继承C语言而来的,不仅包含面向过程编程,也包含了面向对象编程,支持类.封装.继承.多态等特性. 指针 ...

  4. (数据库系统概论|王珊)第七章数据库设计-第三节:概念结构设计

    pdf下载:密码7281 专栏目录首页:[专栏必读](考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解 文章目录 一:E-R模型 (1)两个实体之间的联系 ①:一对一联系( ...

  5. (数据库系统概论|王珊)第一章绪论:习题

    pdf下载:密码7281 专栏目录首页:[专栏必读](考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解 名词解释 数据:是数据库中存储的基本对象,是描述事物的符号记录 数据 ...

  6. 《数据库》_考研复试_面试篇

    前言: 本人为20考研党,所考专业为计算机科学与技术,考虑到线上复试笔试会更加侧重概念的考察,在复试准备期间找了大量笔试题,面试题,整理了很多资料. 本文作为本人的考研复试收尾笔记,主要概括了数据库在 ...

  7. 复试数据库系统概论(2)

    上一篇:复试数据库系统概论(1) 一.sql的特点 1.综合统一 SQL语言集数据定义语言DDL.数据操纵语言DML.数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活 ...

  8. 计算机考研复试面试常问问题 数据库篇

    计算机考研复试面试常问问题 数据库篇 在复习过程中,我用心查阅并整理了在考研复试面试中可能问到的大部分问题,并分点整理了答案,可以直接理解背诵并加上自己的语言润色!极力推荐打印下来看,效率更高!绝对良 ...

  9. 农业工程与信息技术是计算机类吗,中国海洋大学农业工程与信息技术概论2020考研复试大纲...

    2020考研初试已经落下帷幕,接下同学们就要开始准备2020考研复试备考工作了.本篇内容将带来中国海洋大学农业工程与信息技术概论2020考研复试大纲的内容,希望可以为同学们提供帮助. 中国海洋大学20 ...

  10. 复试数据库系统概论(1)

    一.数据库的基本概念 1.四个基本概念 数据(data) 数据库(database DB):长期存储在计算机内.有组织.可共享的大量的数据集合. 数据库管理系统(DBMS):位于用户与操作系统之间的一 ...

最新文章

  1. 从安装Kafka服务到运行WordCount程序
  2. 几种开源分词工具的比較
  3. 贝壳集团IPO背后,风投协议之外还要面临何时盈利的问题
  4. PHP秒杀截流原理,节流阀和去抖动的基本实现方法介绍
  5. 【英语学习】4000 Words 【V1】【U01】The Lion and the Rabbit
  6. 学习linux装,一个初学者的Linux学习之旅之Linux安装篇
  7. 京东发布全球物流无人机研报:美国领先、非洲政策最开放,中国产业链全景最复杂...
  8. 我发现了3572个漏洞 今天又是崭新的一天
  9. 使用OUTPUT从句从SQL Server表删除和归档大量记录
  10. 计算机操作系统教程徐甲同pdf,《操作系统实践教程》.pdf
  11. NW集成打包 自定义图标及注意事项
  12. 程序员公众号用什么工具写?
  13. SQL对时间的操作,比如在当前时间上增加减少一天,在当前的时间上增加减少一个月
  14. OD调试常见断点及原理
  15. 特别有趣的猜数小游戏
  16. c语言中字符串比较指令,如何在C条件预处理器指令中比较字符串
  17. 一个帮助选择困难症的小程序
  18. MT管理器和高级终端Termux
  19. java怎么调epass3003,Snooper.Spec-003-apdu脚本_taoism版.pdf
  20. C语言:判断一个数是否是完数?

热门文章

  1. 计算机网络课程设计家庭网,家庭无线局域网的组建
  2. wincc逻辑运算符_wincc表达式符号
  3. 13级计算机商务沟通与礼仪结课论文,商务沟通论文
  4. SAP SD跨公司销售案例教程案例介绍
  5. 生成对抗网络理论模型和应用综述
  6. 2016美国计算机研究生,2016年美国计算机工程专业研究生排名(转载)
  7. Docker 详细文档
  8. get和post用法和区别总结
  9. 多态性练习:定义一个基类BaseClass,从他派生出类DerivedClass。BaseClass有成员函数 fn1(),fn2()
  10. 黑帽SEO常用作弊手法分析