第一范式(1NF)无重复的列$ u5 f% y- {! u2 G: w+ b
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。6 R/ |1 Y, H+ q4 h8 Z
说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
, P$ L& ]' Z- D$ S+ v% C例如,如下的数据库表是符合第一范式的:1 w: E1 {0 Y6 H" {% `, s
字段1 y7 w7 V: x f4 k. Y& Y2 A
字段2 @: y0 u- D& o8 E4 S) Z
字段3 ]. q3 C; g! K. O
字段4
. L) [; X# Z6 B而这样的数据库表是不符合第一范式的:
# d9 y5 n$ D, T字段10 ?' C5 l f1 ^# A4 i, W
字段2
9 V! ?8 S. K1 v# M字段3
' E6 C" @, J" @" r字段4. ?2 W F5 i7 @# T' q: p
5 e8 X' M- ]- N! p# ?# f, q* B ( S. N5 k, G: @' L
$ R) e% E8 \0 b i/ h: c字段3.1' O; W% ^3 I# h+ g v# K: Q
字段3.28 \6 m# R; q+ V9 O9 o f
+ b3 i( T/ n6 | [9 `5 N
( y( k1 w+ p$ p3 Z% q ( \; v2 F: M$ C
1 o8 e( ?4 _# r2 v' L7 \
! o( H( m. a" K6 J: J4 }7 u" e 4 z, b: o! b# M6 `
数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。 |