(1)第一范式(1NF):要求数据库表的字段都具有原子性,也就是不可再分。
ID | name | addr |
1 | Sophie | 广州市天河区迎龙路 |
对于addr地址内容,如果只要显示一个完整的地址,这就是符合第一范式的,但是如果要求对地址划分成省市县,这就不符合第一范式了。
ID | name | province | city | town |
1 | Sophie | 广东省 | 广州市 | 天河区 |
(2)第二范式(2NF):要求非主属性对键不具有部分函数依赖。
CourseID | StudentID | Score | StudentName |
1 | 1 | 100 | Sophie |
主键是(CourseID,StudentID),(CourseID,StudentID)-->Score,(StudentID)-->StudentName 存在部分函数依赖
CourseID | StudentID | Score |
1 | 1 | 100 |
StudentID | StudentName |
1 | Sophie |
(3)第三范式(3NF):要求消除非主属性对键的传递函数依赖
OrderID | BookID | BookName |
1 | 1 | Java |
主键(OrderID),BookID-->BookName,OrderID-->BookID,传递推出OrderID---BookNme
(4)BCNF:要求消除主属性对键的传递函数依赖
(例子后续补充)