数据库的三大范式分别具体阐述
网站编辑2023-07-20 11:06:13287
- 第一范式(1 table named collection,简称1.0)
第一范式是关系型数据库设计的基础,它的目标是建立数据表之间的完整性约束,包括键、值和它们之间的关系。在关系型数据库中,数据的唯一性是通过定义一对键(Key和Value)来实现的。关系型数据库的表格是一张表格,其中每个列都对应着一个数据实体。每个实体都有一个唯一的索引来表示它在数据库中的位置。
在1.0范式中,数据元素之间的依赖关系被认为是关系的范式。这意味着表格的每个元素都应该满足下列约束条件:
- 数据元素之间的主键关系。
- 数据元素之间的非主键关系。
- 数据元素之间的相对索引关系。
- 数据元素之间的唯一性关系(包括唯一的列和主键)。
例如,对于一个名为"my_collection"的表格,其中有两个数据列,分别为id和name,它们之间的关系被定义为:
- id是唯一的值。
- name是唯一的值。
- id和name之间没有主键关系。
- name和id之间有一个非主键关系。
这表明在这个表格中,所有的元素都有唯一的键和值。此外,该表格还定义了一个非空列collection,其中的数据元素可以包含null值。
- 第二范式(2 table named collection,简称2.0)
第二范式是关系型数据库设计的扩展版,它的目标是建立数据表之间的相互约束关系,包括键和值之间的关系。在2.0范式中,数据元素之间的依赖关系被认为是键的范式。在键的范式中,所有数据元素必须有一个唯一的主键,该主键在表格中被定义为键的索引,用于确定数据元素之间的关系。在键的范式中,每个数据元素必须满足下列约束条件:
- 如果表格中没有数据元素,则主键必须唯一。
- 如果表格中没有主键,则非主键列必须包含该主键的键值对。
- 如果表格中有一个唯一的主键,但是该主键在其他地方也存在,则该主键不能被其他数据元素包含。
- 如果表格中存在一个唯一的主键,但是该主键和其他表中的非主键重复,则该主键不能被其他数据元素包含。
例如,对于一个名为"my_collection"的表格,其中有两个数据列,分别为id和name,它们之间的关系被定义为:
- id是唯一的值。
- name是唯一的值。
- id和name之间没有主键关系。
- name和id之间有一个非主键关系。
- id和id之间的主键关系是"abc",它在"abc"中也存在,但是"abc"不是表格的唯一主键。
- 如果"abc"中存在一个唯一的主键,但是该主键和其他表中的非主键重复,则该主键不能被其他数据元素包含。
这表明在这个表格中,所有的元素都必须满足下列约束条件:
- 如果表格中没有数据元素,则主键必须唯一。
- 如果表格中没有主键,则非主键列必须包含该主键的键值对。
- 如果表格中有一个唯一的主键,但是该主键和其他表中的非主键重复,则该主键不能被其他数据元素包含。
- 如果表格中存在一个唯一的主键,但是该主键和其他表中的







