首页 > 编程知识 正文

1范式2范式3范式(如果关系模式r属于第三范式)

时间:2023-05-05 07:20:17 阅读:67800 作者:833

参考: 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操作异常等问题。

所以我们可以修改它:

学生:(学校编号、姓名、年龄、所属学院) )。

学院:(学院、地点、电话)。

这种数据库表符合第三种范式。

在关系数据库中,除了函数依赖外,还存在多值依赖、耦合依赖的问题,提出了比第四正规化、第五正规化等更高的正规化要求。

规范化流程:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。