关系数据库中的关系必须满足一定的要求。
数据库的范式是数据库设计必须满足的规范。
只有了解数据库的范式,才能设计出高效优雅的数据库。 否则,可能会设计错误的数据库
主要有六种范式:
第一范式。
第二范式。
第三范式
BC范式。
第四范式。
第五范式。
满足最低要求的被称为第一范式,简称为3358www.Sina.com/。 基于第一范式还满足几个要求的是第二范式,简称1NF.其馀类推。
范式越高为:
优点:可以避免数据冗馀
缺点:性能越差,为了得到需要的数据就需要联系多个表,操作变得更困难。
利害关系,2NF
数据冗余小,易于管理
1NF是关系模型必须具备的最低条件,为一般项目会使用 第三范式
定义:当关系模式r的各关系r的属性是不可分割的数据项时,r被称为第一范式的模式
例如,(学生信息表) :
学生编号姓名性别联系方式0001mhdkl女性email:zm@126.com、phone:1234560002wmdbg女性email:lm@126.com、phone:456789以上表格不一致,首先
满足第一范式(1NF )的表结构必须为以下:
学生姓名性别电子邮件电话0001mhdkl女性zm@126.com1234560002wmdbg女性lm@126.com456789第二范式(2NF )定义:关系模型r为1NF,每个非主要属性http://www
例如,产品流水证明书模板表(产品代码和交易类型为联合如果数据库设计不能满足第一范式,就不称为关系型数据库:
产品代码交易类型产品名称证书模板代码差价证书模板代码p1666产品At1tt1p2777产品Bt2tt1p1888产品At1tt1可以根据产品代码大栏目第三范式和交易类型确定证书模板代码、差价证书模板代码、产品名称
但是,产品名称并不完全依赖于(产品代码、交易类型),只有通过产品代码才能确定产品名称。 此依赖项称为完全函数依赖于)或部分依赖项)。
第二范式是主键
修正后,满足第二范式:
产品代码交易类型证书模板代码差额证书模板代码p1666t1tt1p2777t2tt1p1888t1tt1产品代码产品名称p1产品Ap2产品b第三范式(3NF )定义:首先满足第二范式,然后http://www.Sina .
因为满足了第二个模式,所以每个非主键属性都指示函数依赖于主键。 如果非主要属性之间存在函数相关性,则存在不完全依赖,从而不再满足第三种模式。
例如,产品流水证明书模板表(产品代码和交易类型为联合不完全依赖:
产品代码交易类型证书模板代码差额证书模板代码差额证书模板名称p166t1tt1差额Ap2777t2tt1差额Ap1888t1tt1差额证书模板代码为主键(产品代码、交易类型),差额证书模板名称为差额证书模板
修正为满足第三范式:
产品代码交易类型证书模板代码差额证书模板代码p166t1tt1p2777t2tt1p1888t1tt1差额证书模板名称tt1差额a