📜  DBMS中1NF和2NF的区别

📅  最后修改于: 2021-09-11 03:34:30             🧑  作者: Mango

1. 第一范式(1NF):
对于任何属于第一范式 (1NF) 的关系,该关系不应包含任何复合或多值属性。因此,如果关系包含原子值,则关系将处于第一范式。该关系应仅包含单值属性。因此,处于第一范式的关系必须遵循以下规则:

  • 关系中不应该有重复的组或元素,即它应该只包含单值属性。
  • 应该为表中的每个属性指定一个唯一的名称。
  • 它不应包含任何复合属性。

例子:
考虑以下关系:

Roll Number Student Name Marks
1 Abhay 96
2 Amit 78
3 Ayushi 86


这种关系属于 1NF,因为它不包含任何多值或复合属性。

2. 第二范式(2NF):
第二范式的基本概念是全函数依赖。因此它适用于包含复合键的关系(其中主键由多个属性组成)。因此任何包含单个属性主键的关系总是在 2NF(第二范式)中。因此,包含复合主键以便在 2NF 中的关系不应该包含任何部分依赖。当任何非主要属性依赖于候选键的任何适当子集时,就会发生部分依赖。因此,每个非主要属性都应该依赖于关系中的每个候选键的整体。因此一个关系在 2NF 中,如果:

  • 它是 1NF(第一范式)。
  • 它不包含任何部分依赖。

例子:
考虑关系 R(X, Y, E, F) 的函数依赖。

{XY->EF, E->F} 

因此我们找到了 (XY) 的闭包,即 {X, Y, E, F}
由于它的闭包包含关系中的所有属性,因此 XY 是候选键。对于每个函数依赖,即 XY->EF:
它不包含任何部分依赖,因为非主要属性依赖于整个候选键。
E->F:它不包含任何部分依赖,因为这里的非素数属性仅相互依赖。

1NF 和 2NF 的区别:

S.NO. 1NF 2NF
1. In order to be in 1NF any relation must be atomic and should not contain any composite or multi-valued attributes. In order to be in 2NF any relation must be in 1NF and should not contain any partial dependency.
2. The identification of functional dependency is not necessary for first normal form. The identification of functional dependency is necessary for second normal form.
3. First Normal form only deals with the schema of the table and it does not handle the update anomalies. Second normal form handles the update anomalies.
4. A relation in 1NF may or may not be in 2NF. A relation in 2NF is always in 1NF.
5. The primary key in case of first normal form can be a composite key. The primary key in case of second normal form cannot be a composite key in case it arises any partial dependency.
6. The main goal of first normal form is to eliminate the redundant data within the table. The main goal of second normal form is to actually ensure the data dependencies.
7. The first normal form is less stronger than the second normal form. The second normal form is comparatively more strong than first normal form.