首页 > 编程知识 正文

三大范式的基本概念是什么,简述三大范式

时间:2023-05-04 08:52:13 阅读:186285 作者:2316

现在,关系数据库中存储有第一模式(1NF )、第二模式(2NF )、第三模式(3NF )、总线代码模式(BCNF )、第四模式(4NF )、第五模式(55 )

通常,我们使用最多的是第一范式(1NF )、第二范式(2NF )、第三范式) 3NF ),也就是本文所述的“三大范式”。

第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。

举例说明:

上表中,“家庭信息”和“学校信息”列均不满足原子性要求,因此不满足第一范式,调整如下。

由于调整后的各列不可再分割,因此可知满足第一范式(1NF )

基于第二范式(2NF ) 1NF,非代码属性必须完全依赖于候选代码(基于1NF消除对非主属性的主代码的部分函数依赖) )。

在第二种模式中,必须确保数据库表中的每一列都与主键相关。 它不仅仅与主键的一部分相关。 主要用于联盟主键。

举例说明:

在上图中,由于同一订单可能包含不同的产品,因此必须将主键配置为“订单编号”和“产品编号”的组合。

但是,您可以看到,产品数量、产品折扣和产品价格均与“订单编号”和“产品编号”相关,而订单金额和订单时间仅与“订单编号”相关,与“产品编号”无关。

这样不满足第二范式的要求,需要如下调整,分为两个表。

基于第三范式(3NF ) 2NF,任何非主要属性不依赖于其他非主要属性(基于2NF消除转发依赖) )。

第三种模式要求数据表每列中的数据与主键直接相关,而不是间接相关。

举例说明:

上表满足了第二种模式,因为所有属性完全依赖于学校号码,但“我的DLS性别”和“我的DLS年龄”直接依赖于“我的DLS姓名”。

因为不是主键“学号”,所以需要做如下调整。

这样,就满足了第三范式的要求。

如果将上表中的mydls重命名为mydls教学号,ps:可能会更准确,更符合实际情况,但如果能理解就好了。

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