数据库面试常见问题总结

写在前面

本文记录了一些数据库面试常见问题,本意用于考研复试,以下面试题为网上整理的问题以及自己加入的一些问题,答案仅供参考!


Q:事务四大特性(ACID)

A:

  1. 原子性:事务是一个不可再分割的工作单位,要么执行,要么不执行
  2. 一致性:数据库的完整性约束没有被破坏,在事务执行前后都保持一致性状态
  3. 隔离性:多个事务并发时,每个事务应该是隔离的,一个事务不应影响其他事务的运行效果
  4. 持久性:一旦事务提交,对数据的改变就是永久的

Q:什么是存储过程?

A:存储过程是一些预编译的 SQL 语句

Q:什么是事务?

A:事务是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位

Q:DBMS 是什么

A:数据库管理系统(DBMS)是数据库系统的核心,是管理数据库的软件

Q:数据库的三级模式

A:

  • 模式:一个,逻辑结构
  • 外模式:多个,用户模式
  • 内模式:一个,物理结构

Q:什么是主键

A:唯一标识表中每行的这个列

Q:视图和表的区别是什么?

A:

  • 视图:从一个或几个基本表导出的表,是虚表,我们对视图只能进行查询但不能进行修改
  • 表:数据库中的实体,可以对其进行增删改查操作

Q:索引是什么?它的优点缺点?

A:索引是对数据库表中一或多个列的值进行排序的结构,可以加快检索表中数据

  • 优点:大大加快数据的检索速度、唯一索引可以确保每一行数据的唯一性
  • 缺点:索引需要占物理空间、创建索引和维护索引需要时间

Q:索引类型

A:

  • 普通索引:最基本的索引,它没有任何限制
  • 唯一索引:索引列的值必须唯一
  • 主键索引:特殊的唯一性索引
  • 全文索引:对于大规模数据集更快

Q:数据库三范式

A:

  • 第一范式 (1NF):属性不可分,即数据库表的每一列都是不可分割的基本数据项
  • 第二范式 (2NF):要求所有非主键属性完全依赖主键
  • 第三范式 (3NF):非主键属性无传递依赖

Q:数据库中几种删除都有什么,有什么区别?

A:

  • delete:删除部分数据行
  • truncate:保留表而删除所有数据
  • drop:删除表

Q:E-R 图?

A:实体关系图 (Entity-Relationship,E-R),有三个组成部分:实体、属性、联系。用来进行关系型数据库系统的概念设计

  1. 实体:矩形
  2. 属性:椭圆
  3. 联系:菱形

Q:E-R 模型转换为关系模式的原则?

A:一个实体型转换为一个关系模式

  • 一对一:遇到一对一关系的话,在两个实体任选一个添加另一个实体的主键即可
  • 一对多:遇到一对多关系的话,在多端添加另一端的主键
  • 多对多:遇到多对多关系的话,需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可

Q:数据库完整性

A:

  • 实体完整性:保证表的每一个特定实体的记录都是唯一的
  • 参照完整性:保证相关联表之间数据的一致性
  • 用户定义完整性:针对某一具体应用必须满足的语义要求

Q:什么是触发器?

A:触发器是用户定义在关系表上的一类由事件驱动的特殊过程

Q: 数据库有哪些锁,各自的作用?

A:

  • 排他锁(X 锁,写锁):当数据对象被加上排它锁(X 锁)时,其他的事务不能对它读取和修改
  • 共享锁(S 锁,读锁):当数据对象被加上共享锁(S 锁)时,可以被其他事务读取,但不能修改

Q:死锁?

A:指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去

Q:预防死锁?

A:一次封锁法、顺序封锁法

Q:二段锁协议

A:

  • 在对任何数据进行读、写操作之前,事务首先要申请并获得对该数据的封锁
  • 在释放一个封锁之后,事务不再申请和获得任何其他封锁

Q:冷备份和热备份

A:

  • 冷备份:在数据库停机的情况下,备份数据库
  • 热备份:在数据库运行的情况下,备份数据库

Q:数据库建立流程

A:

  1. 需求分析
  2. 概念结构设计
  3. 逻辑结构设计
  4. 物理结构设计
  5. 实施
  6. 运行维护

相关内容