📜  第一范式 (1NF)

📅  最后修改于: 2021-09-09 10:39:31             🧑  作者: Mango

如果一个表存在数据冗余并且没有正确规范化,那么数据库将难以处理和更新,而不会面临数据丢失的问题。它还会占用额外的内存空间,如果数据库未规范化,插入、更新和删除异常将非常频繁。

规范化是从一个关系或一组关系中最小化冗余的过程。相关冗余可能导致插入、删除和更新异常。因此,它有助于最大限度地减少关系中的冗余。范式用于消除或减少数据库表中的冗余。

有各种级别的归一化。这些是其中一些:

1. First Normal Form (1NF)
2. Second Normal Form (2NF)
3. Third Normal Form (3NF) 
4. Boyce-Codd Normal Form (BCNF)
5. Forth Normal Form (4NF)
6. Fifth Normal Form (5NF) 

在本文中,我们将讨论第一范式(1NF)。

第一范式(1NF):
如果关系包含复合或多值属性,则违反第一范式,或者如果关系不包含任何复合或多值属性,则为第一范式。如果该关系中的每个属性都是单值属性,则该关系处于第一范式。

一个表是 1 NF iff:

  1. 只有单值属性。
  2. 属性域不改变。
  3. 每个属性/列都有一个唯一的名称。
  4. 数据存储的顺序无关紧要。

考虑下面给出的例子。

示例 1:
由于多值属性 STUD_PHONE,表 1 中的关系 STUDENT 不在 1NF 中。其分解为 1NF 如表 2 所示。

示例 2:

ID   Name   Courses
------------------
1    A      c1, c2
2    E      c3
3    M      C2, c3 

在上表中,Course 是一个多值属性,因此它不在 1NF 中。

下表在 1NF 中,因为没有多值属性:

ID   Name   Course
------------------
1    A       c1
1    A       c2
2    E       c3
3    M       c1
3    M       c3

注意:如果数据库设计甚至不符合第一范式 (1NF),则它被认为是糟糕的。
https://youtu.be/-JOpBzyrZ_8