zoukankan      html  css  js  c++  java
  • 第一二三范式

    1.概念定义

    第一范式:如果关系模式R所有的属性均为简单属性,即每个属性都是不可分的,则称R属于第一范式,简记为1NF,记做R∈1NF。

    第二范式:如果关系模式R∈1NF,且每个非主属性完全函数依赖于R的候选键,则称R属于第二范式,简记为2NF,记为R∈2NF。

    第三范式:如果关系模式R∈2NF,并且每个非主属性不传递函数依赖于R的候选键,则称R属于第三范式,简记为3NF,记为R∈3NF。

    2.学习心得

    如加粗字体可见,每个范式都是对属性做出了一些限制,如果一个表中的属性,不满足某一范式的标准,则需要将其拆解成两张或者多张表结构。

    第一范式所作出的规范是,行列无序,列不可再分,满足基本表的原子性。

    第二范式所作出的规范是,要有唯一主键,其他非主属性,都要依赖于这个主属性。

    第三范式所作出的规范是,不能有传递依赖的情况,即只有父子结构,不能出现父子孙的结构。

    拿个例题来解释一下第二范式和第三范式:

    有表Student(Sno,Sname,Sage,Sdept,Mname,Cno,Cname),其中Sno,Sname,Sage,Sdep为学生的基本信息,即学号、姓名、年龄、专业。Mname为导师。Cno,Cname分别是课程编号和课程名称。Sno、Cno分别是两个主键。

    若要让此表满足第二范式,则需将连个主键划分到不同的表中。即添加Class表,Class(Cno,Cname),Student(Sno,Sname,Sage,Sdept,Mname)。

    在Student表中有这样的结构Sno→Sdept→Mname,即Mname不是直接依赖于Sno,而是通过Sdept间接依赖于Sno。所以这不满足3NF。若要满足3NF,应新建表D(Mname,Sdept),将Mname从Student表中删除。

  • 相关阅读:
    (2).net体系
    (1)php开篇常识
    java基础知识-xx
    java基础知识-字符串与数组
    java基础知识-流程控制
    小明的喷漆计划
    加分二叉树
    括号序列
    P1045
    胖男孩
  • 原文地址:https://www.cnblogs.com/chlde/p/2799844.html
Copyright © 2011-2022 走看看