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. |