第一范式(1NF)
- 它是否有主码
- 每一个域的名字是否唯一
- 数据是否原子性
- 是否有重复或冗余的域
非原子性的实例:
一个人的全名;一个完整的地址;一个更大数据集的部分数据;
例:
下面哪个数据表不符合第一范式?
-
Title Firstname Surname Full name Address City Mr Tom Smith Tom Smith 42 Mill Street London -
ID[主码] IP Address username last accessed Activity Result active 1003[主码] 198.168.1.5 Smith 20081021:14.10 Save file success y -
ItemID[主码] Product Description Size Colour Colour Colour 234 Shoe High Heel 6 red blue brown
4.
StudentID[主码] | Firstname | Surname | SchoolID* | ClassID* |
---|---|---|---|---|
354 | Tom | Smith | 6 | 5F |
说明:
表一:不属于1NF,没有定义主码,因此每一条记录不能保证是唯一的。Full name 是冗余的——数据并非原子性,因为它是 Firstname和Surname的简单组合。 表二:至少属于1NF,它有一个主码。数据是原子性的。每一个域都有唯一的名字。没有重复数据。
表三:不属于1NF,它有主码,数据是原子性,但是color域重复了,并且这些域的名字也是相同的!
表四:属于1NF,符合1NF的所有规则
第二范式(2NF)
- 表必须已经符合第一范式
- 非关键属性必须依赖主码的每一部分
第三范式(3NF)
- 它已经是2NF
- 没有任何非关键属性依赖其他非关键属性