数据库知识?啥是1NF,2NF,3NF?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库知识?啥是1NF,2NF,3NF?相关的知识,希望对你有一定的参考价值。

请用最最最通俗的语言解释一下,书上描述不是很明白!~

1NF即第一范式,是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

2NF即第二范式,是指每个表必须有且仅有一个数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应。

3NF即第三范式,是指表中的所有数据元素不但要能唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其他的函数关系。

扩展资料:

第二范式的规则是要求数据表里的所有非主属性都要和该数据表的主键有完全依赖关系;如果有哪些非主属性只和主键的一部份有关的话,它就不符合第二范式。如果一个数据表的主键只有单一一个字段的话,它就一定符合第二范式(前提是该数据表符合第一范式)。

如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式1NF中表的每一行只包含一个实例的信息。

参考资料来源:

百度百科——范式

百度百科——1NF

百度百科——第二范式

百度百科——第三范式

参考技术A 第一范式,第二范式和第三范式
是数据库数据间要求的约束条件
第一范式是 数据库最基本的要求,即属性不可分
第二范式 是数据库非主属性对码的部分函数依赖
第三范式 是非主属性对码的传递依赖
举个简单例子吧
一个学生表有学号,姓名,出生年月等属性
假设学号是由两个属性年级号和个人号两个组成,那么这就不是第一范式
假如主键是由学号和姓名联合组成的,出生年月有学号就可以确定,那么这就不是第二范式
假如主键只是学号,出生年月既可以由学号决定又可以由姓名决定,那么这就不是第三范式

说的也不是很通俗,将就理解下吧本回答被提问者和网友采纳
参考技术B 数据库的第一范式,第二&第三

数据库范式1NF 2NF 3NF详细阐述

范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的不同范式。满足最低要求的叫第一范式,简称1NF ,在第一范式中满足进一步要求的为第二范式,其余以此类推。通俗来说是满足数据库关系表中的一套规则。

 

范式理论研究:Codd提出1NF,2NF,3NF概念

 

2NF

  例如:有关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade),其中Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno,Cno)。则函数依赖:Grade对(Sno,Cno)是完全依赖函数。这就属于2NF。

当然  (Sno,Cno)—>Sdept  只需要其中一个Sno或Cno就能推出Sdept。记做Sdept对(Sno,Cno)码的部分函数依赖,那么这就不属于2NF。

    

  一个R关系模式不属于2NF就会产生以下几个问题:

  (1).插入异常:假若要插入一个学生Sno=S7,Sdept=PHY,Sloc=BLD2,但该学生还没有选课。即这个学生无Cno。这样的元组就插不进S-L-C中。因而学生的固有信息无法插入

  (2)删除异常:当要删除如一个学生要删除某一个门课程,而课程属性是主属性,删除了课程整个元组就必须一起删除,使这个学生的信息也被删除了,从而造成删除异常。  

 

3NF

  没有传递依赖,如:关系模式SJP(S,J,P)中,S是学生,J代表课程,P代表名次,T表示教师。每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个学生。由此得到函数依赖

  (S,J)—>P;(J,P)—>S  T—>J   这就是3NF

 

 

总结:    1NF就是不能有表中表

    2NF就是非主属性全部依赖

    3NF就是没有传递函数

以上是关于数据库知识?啥是1NF,2NF,3NF?的主要内容,如果未能解决你的问题,请参考以下文章

数据库中的1NF、2NF、3NF、BCNF、4NF、5NF是怎么回事?

数据库范式1NF 2NF 3NF详细阐述

数据库Mysql数据库的三大范式1NF 2NF 3NF

数据库范式(1NF 2NF 3NF BCNF)

数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解

数据库范式小结 1NF 2NF BCNF 3NF 4NF DB normal form