数据库常见面试笔试题


1.什么是数据库的第三范式

数据库的第三范式(Third Normal Form, 3NF)是关系数据库设计中规范化的核心要求之一,旨在消除数据冗余、确保数据依赖合理,从而提升数据一致性和存储效率。它的核心规则是:所有非主属性必须直接依赖于主键,且不传递依赖于其他非主属性。

要满足第三范式(3NF),必须满足以下两个条件:

  1. 已满足第二范式(2NF):所有非主属性完全依赖于主键(无部分依赖)。
  2. 消除传递依赖:所有非主属性直接依赖于主键,而不能通过其他非主属性间接依赖主键。

通俗理解:

  • 表中每一列数据都应该直接与主键相关,而不是通过其他字段间接关联。
  • 例如:“学生姓名”直接依赖于“学号”(主键),但“班主任电话”如果通过“班主任姓名”间接依赖“学号”,则违反3NF。

区别:第二范式处理的是部分依赖的问题,即所有非主属性必须完全依赖于主键,而第三范式解决的是传递依赖的问题。


2.什么是存储过程

存储过程(Stored Procedure) 是数据库中预先编译并存储的一段可重复调用的 SQL 代码集合,用于封装复杂业务逻辑、提高执行效率并增强数据安全性。它类似于编程中的函数,支持输入参数、输出结果、条件判断、循环等操作。

2.1特性

  • 预编译执行:代码在首次执行时编译并缓存,后续调用直接复用,减少解析和优化开销。
  • 减少网络传输:客户端只需传递调用命令和参数,避免传输大量 SQL 语句。
  • 逻辑封装:将业务逻辑封装在数据库层,实现代码复用和统一管理。
  • 安全控制:通过权限限制,允许用户执行存储过程但不直接访问底层表。

3.什么是游标

游标(Cursor) 是 SQL 中用于 逐行处理查询结果集 的机制,类似于编程中的迭代器。它允许开发者在存储过程或脚本中逐行访问数据,适用于需要复杂行级操作的场景。然而,游标通常 性能较低,应谨慎使用。

3.1游标的核心作用

  1. 逐行处理数据:遍历结果集,对每一行单独操作(如计算、更新、逻辑判断)。
  2. 支持复杂逻辑:在无法用单条 SQL 语句实现时(如依赖中间结果的循环操作),提供灵活性。
  3. 事务控制:结合事务,实现精细化的数据提交或回滚。

文章作者: Fuchanglai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Fuchanglai !
赏
  目录