SQL 面试题 目录

解释数据库设计中的第一范式 (1NF)

推荐答案

在数据库设计中,第一范式(1NF)是最基本的规范化形式。它要求数据库表中的每一列都是不可再分的原子值,且每一行都是唯一的。具体来说,1NF 要求:

  1. 每一列都是原子的:表中的每一列都只能包含单一的值,不能包含集合、数组或其他复合结构。
  2. 每一行都是唯一的:表中的每一行必须有一个唯一标识符(通常是主键),以确保没有重复的行。

本题详细解读

1NF 的核心要求

  1. 原子性:1NF 要求表中的每一列都是原子的,即每一列的值不能再分解为更小的部分。例如,如果一个列存储了多个值(如逗号分隔的列表),那么它就不符合 1NF。为了满足 1NF,应该将这些值拆分成多个列或多个行。

  2. 唯一性:1NF 要求表中的每一行都是唯一的,通常通过主键来实现。主键可以是单列或多列的组合,确保每一行都能被唯一标识。

1NF 的示例

假设有一个存储学生信息的表 Students,初始设计如下:

StudentID Name Courses
1 Alice Math, Science
2 Bob History, English
3 Charlie Physics, Chemistry

在这个设计中,Courses 列包含了多个值,违反了 1NF 的原子性要求。为了满足 1NF,应该将 Courses 列拆分为多个行:

StudentID Name Course
1 Alice Math
1 Alice Science
2 Bob History
2 Bob English
3 Charlie Physics
3 Charlie Chemistry

这样,每一列都是原子的,每一行也是唯一的,符合 1NF 的要求。

1NF 的重要性

1NF 是数据库设计的基础,确保数据的原子性和唯一性,为后续的规范化(如 2NF、3NF 等)打下坚实的基础。遵循 1NF 可以减少数据冗余,提高数据的一致性和查询效率。

纠错
反馈