参考: http://wenku.baidu.com/link? URL=kzn 3v3 voao4ovz _ izsiujmn8vmzmiarzgybrue 8tv l5l _ ydc1b _6_1eey7vfo SiO2- ortxaxzvbzwaxjxir 68 z6 G4 gmd _1alz wzx 448
第一范式(1NF ) :关系的所有组件都不能重新划分。 这意味着数据库表中的字段是单个属性,不能重新划分。
在这两种关系数据库中,第一范式(1NF )是关系模型的基本要求,不满足第一范式(1NF )的数据库不是关系数据库。
例如,这对应于student(id、name、age、class )
这不属于student(id,(first name, last name),age,class )
如果第二范式(2NF )关系模型r属于1NF,并且每个非主属性完全取决于主代码,则标记为关系r属于第二范式,r属于2NF。
第二范式是基于第一范式建立的。
例如,
之所以选择科目关系表作为SelectCourse (学校编号、姓名、年龄、课程名称、成绩、单位),关键字作为组合关键字(学校编号、课程名称),是因为存在以下决定关系。
(学校编号、课程名称)-(姓名、年龄、成绩、学分) )。
此数据库表不满足第二个范例,因为它具有以下决策关系:
(课程名称(-)单位) )。
(学校编号- (姓名、年龄) ) )。
也就是说,存在单位和名字,年龄部分依赖于主要关键词。
修改。 修改了设计,将选择关系表SelectCourse更改为以下三个表:
学生: Student (学校号码、姓名、年龄) )。
课程: Course (课程名称,学分)。
选择关系: SelectCourse (学号、课程名称、成绩) ) ) ) ) ) ) ) )。
注:所有单个关键字的数据库表都符合第二范式。 这是因为不存在联接关键字,也不存在依赖于主要关键字的非主要属性部分。
第三范式(3NF )关系中的非主属性必须直接依赖主代码,而不能通过其他非主属性传递依赖主代码。
如果贯通依赖于例如a依赖于b、b依赖于c,则a贯通依赖于c。
学生关系表假设为Student (学校号码、姓名、年龄、所属学院、学院场所、学院电话),由于关键字是单一的学校号码,肯定符合第2范式,但非关键字学院场所和学院电话依赖于所属学院,即传递依赖于学校号码同样会导致数据冗馀化、DDL操作异常等问题。
所以我们可以修改它:
学生:(学校编号、姓名、年龄、所属学院) )。
学院:(学院、地点、电话)。
这种数据库表符合第三种范式。
在关系数据库中,除了函数依赖外,还存在多值依赖、耦合依赖的问题,提出了比第四正规化、第五正规化等更高的正规化要求。
规范化流程: