第一范式(1NF)无重复的列
! F' c$ ?, o6 L: R 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。
# o" r9 h/ Z/ U3 r说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
* l7 J0 H$ E/ N/ L/ \- K例如,如下的数据库表是符合第一范式的:/ O! H3 h% ~8 t; R* l
字段15 T/ u8 _9 E8 F* n, I
字段2
q# h+ X, b4 v3 {字段3) e# Y G, [. }, T; i$ ?: ^- B
字段4/ o: t- f6 C2 A1 _; ?
而这样的数据库表是不符合第一范式的:
0 r2 K7 T' G2 ~4 ]0 Q0 L. ^: k字段1# O4 ^4 G9 K+ o9 l9 U' U0 U3 w) F8 ~, x
字段2
! G1 {, C. h. _2 M/ M字段3
) g, @5 k1 H6 q- f4 l字段4
2 O5 ~" T H- |" c: P0 k. Z
`; R( I" B% M+ W1 b) C + B& A3 D8 w0 B6 n5 h% H
. K; d/ o' S g! ~9 w6 n: t( n1 M; @字段3.1' t8 ?8 b9 D& D8 k5 f5 n3 X( k( t: s
字段3.23 I- v, D/ `5 @: G4 W/ h$ z
/ L" G% y& p- Z( n9 Z' k5 E
7 ?% N0 @- G U2 ]+ b. c
7 r& |. H" s) c* F9 o 4 y8 ?5 g7 L- L8 O" G) d$ j
, A7 V# O: X. |
2 d4 E" I s) \数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。 |