1、第一范式1NF
定义:数据库表中的字段都是单一属性的,不可再分。
简单的说,每一个属性都是原子项,不可分割。
1NF是关系模式应具备的最起码的条件,如果数据库设计不能满足第一范式,就不称为关系型数据库。也就是说,只要是关系型数据库,就一定满足第一范式。
我们先来看一张不符合1NF的表1-1
CardNo | StudentNo | StudentName | Sex | Department | CardCash | UserID | UserLevel | Time |
001 | 021101 | 小明 | 男 | 教育学院,心理系,1班 | 100 | Operator | 操作员 | 2011/10/03,09:00 |
之所以说这张表不符合1NF,是因为Department和Time字段可以再分,所以应该更改为表1-2:
CardNo | StudentNo | StudentName | Sex | Academy | Major | class | CardCash | UserID | UserLevel | Date | Time |
001 | 021101 | 小明 | 男 | 教育学院 | 心理系 | 1 | 100 | Operator | 操作员 | 2011/10/03 | 09:00 |
--------------------------------
1.第一范式(确保每列保持原子性)
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式,如下表所示。
上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。
显然第一个表结构不但不能满足足够多物品的要求,还会在物品少时产生冗余。也是不符合第一范式的。