关系模式的范式判断和规范化

目录

一、1NF

    1. 第一范式的定义

    2. 分量的定义

    3. 不满足1NF

二、 2NF

    1. 第二范式的定义

    2. 不满足2NF 

    3. 第二范式面临的问题

三、3NF

    1. 第三范式的定义

    2. 传递函数依赖

四、范式的判断

五、 规范化的方法

六、例题

七、参考资料


一、1NF

    1. 第一范式的定义

       作为二维表,关系要符合一个最基本的条件是每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。

    2. 分量的定义

       元组中的一个属性值。假如一个学生信息的关系模式S(Sno,Sname,Ssex,Sdept),那么表中的一个元组(20245311338,张三,男,信息学院)中的 "张三" 就是一个分量,"20245311338" 也是一个分量。

    3. 不满足1NF

       不满足第一范式的情况有两种,①表中有表②分量可再分
       ①表中有表

       ②分量可再分

二、 2NF

    1. 第二范式的定义


       非主属性就是除主码外的属性。
       完全函数依赖和候选码请参考文章一篇文章讲清楚怎么求候选码-CSDN博客

    2. 不满足2NF 


    其中Sno→Sdept、Sno→Sloc,而主码为(Sno,Cno),说明并不满足每一个非主属性都完全依赖于候选码,则关系模式S-L-C(Sno, Sdept, Sloc, Cno, Grade)不满足2NF。

    3. 第二范式面临的问题

三、3NF

    1. 第三范式的定义

       如果关系模式R∈2NF,且每个非主属性都不传递函数依赖于任何一个候选码,则称R属于第三范式,简称3NF,记作R∈3NF。

    2. 传递函数依赖


    举例来说,假设一个关系模式S-L(Sno,School,Sloc)[注:Sloc:School Location],其中有Sno→School,School→Sloc,那么Sloc传递函数依赖于Sno,则关系模式S-L不满足3NF。

四、范式的判断

    总结上面的定义

       1. 第一范式:表中每一个分量必须是不可分的数据项。

       2. 第二范式:每一个非主属性对候选码完全函数依赖。
           如果一个关系模式SC(Sno,Cno,Sname,Cname)候选码是(Sno,Cno),2NF要求(Sno,Cno)→Sname,但Sno→Sname,表明非主属性对候选码部分函数依赖,不满足2NF。

       3. 第三范式:前提是该关系模式∈2N,并且每个非主属性都不传递函数依赖于任何一个候选码。
           如果一个关系模式S-L-C(Sno, School, Sloc, Cno, Grade ),分解为两个关系模式:SC(Sno,Cno,Grade)和S-L(Sno,School,Sloc),此时满足2NF,但S-L中Sno→School,School→Sloc,那么Sloc传递函数依赖于Sno,则关系模式S-L不满足3NF。

五、 规范化的方法

    没有研究出独道的方法,但书上画函数依赖图的方法很直观很好用。
       1.小框,框属性。
       2.大框,框候选码。
       3.实线箭头表示完全函数依赖。
       4.虚线箭头表示部分函数依赖。

    实际应用请看例题。

六、例题



    只要会画图了,部分函数依赖和传递函数依赖在图中体现得十分完全,消除他们也很简单了。
    我是真想吐槽一下,这第一问写函数依赖集才是最难的...



答案如下,我是真不会写函数依赖集......

七、参考资料

王珊 萨师煊. 数据库系统概论(第5版). 高等教育出版社. 2014
【1NF→4NF】那些让你醍醐灌顶的数据库范式……_哔哩哔哩_bilibili
第三范式_百度百科

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑子不好真君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值