第一范式
定义
- 表中的所有字段值都是原子值,不可再分
- 即每一列中的值都是不可分割的基本数据项
要求
- 每个表格中的列(字段)必须是单一值
- 每个字段只包含一个值,不能包含重复组或数组
- 所有字段都应包含相同类型的数据
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
不符合1NF的表: | OrderID | Product | Quantity | |---------|---------------|----------| | 1 | "Apple, Banana" | 10, 5 | | 2 | "Orange" | 8 | 符合1NF的表: | OrderID | Product | Quantity | |---------|---------|----------| | 1 | Apple | 10 | | 1 | Banana | 5 | | 2 | Orange | 8 | |
第二范式
定义
- 在满足第一范式的基础上,每个非主键字段都完全依赖于主键(即不存在部分依赖)
要求
- 表必须先满足第一范式
- 表中的每一个非主键字段都必须完全依赖于主键,而不能仅依赖于主键的一部分(在复合主键的情况下)
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
不符合2NF的表: | OrderID | ProductID | ProductName | Quantity | |---------|-----------|-------------|----------| | 1 | 101 | Apple | 10 | | 1 | 102 | Banana | 5 | | 2 | 103 | Orange | 8 | (ProductName 依赖于 ProductID,而不是 OrderID) 符合2NF的表: 表1:Orders | OrderID | ProductID | Quantity | |---------|-----------|----------| | 1 | 101 | 10 | | 1 | 102 | 5 | | 2 | 103 | 8 | 表2:Products | ProductID | ProductName | |-----------|-------------| | 101 | Apple | | 102 | Banana | | 103 | Orange | |
第三范式
定义
- 在满足第二范式的基础上,表中的非主键字段之间不存在传递依赖关系
要求
- 表必须先满足第二范式
- 表中的非主键字段之间不能存在传递依赖
- 即一个非主键字段不能依赖于另一个非主键字段
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
不符合3NF的表: | OrderID | ProductID | ProductName | SupplierName | |---------|-----------|-------------|--------------| | 1 | 101 | Apple | Supplier A | | 1 | 102 | Banana | Supplier B | | 2 | 103 | Orange | Supplier C | (SupplierName 依赖于 ProductID,而 ProductID 依赖于 OrderID) 符合3NF的表: 表1:Orders | OrderID | ProductID | Quantity | |---------|-----------|----------| | 1 | 101 | 10 | | 1 | 102 | 5 | | 2 | 103 | 8 | 表2:Products | ProductID | ProductName | SupplierID | |-----------|-------------|------------| | 101 | Apple | 1 | | 102 | Banana | 2 | | 103 | Orange | 3 | 表3:Suppliers | SupplierID | SupplierName | |------------|--------------| | 1 | Supplier A | | 2 | Supplier B | | 3 | Supplier C | |
本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 索引相关10/28
- ♥ 表_修改表结构10/26
- ♥ 表操作_数据排序10/23
- ♥ 表_创建 && 操作10/26
- ♥ 表操作_条件查询-运算符10/23
- ♥ 连接查询-笛卡尔积 || 连接方式10/25