• 关系数据理论 规范化


    码(Key)

    候选码:某一属性组的值可唯一标识一个元组,其子集不能,该属性组为候选码(如学生表中的学号,成绩表中学号+课程号)

    R  K\overset{F}{\rightarrow}U   K是R的候选码

    主属性:候选码的所有属性都是主属性

    键字=码字, 主键=主码=主关键字,候选键=候选码=候选关键字

     

    范式(Normal Form

    规范化:一个低一级的关系模式通过模式分解可以转化为若干个高一级的关系模式的集合

    1NF(字段不可分)

    如果一个关系满足:每一属性值都是不能再分的元素,那么该关系是一个规范化的关系。

    范围第一范式:手机号(一个人有多个手机号,值不唯一)、姓名+住址放同一列

    2NF(有关键字,非主属性依赖关键字)

    如果一个关系属于1NF,且每个非主属性完全函数依赖于关键字,则该关系称为2NF

    特点:每条数据具有唯一性

     NmaeCour、Inst、Addr、NameCour都是非主属性,但他们没有完全函数依赖于关键字,所以不属于2NF

    模式分解后,每个非主属性完全函数依赖于关键字

    3NF(非主属性不能相互依赖)

    如果关系中每个非主属性不部分依赖于关键字,也不传递依赖于关键字的关系是属于3NF

    如果没有非主属性,一定至少达到了第三范式

    Inst、Addr是非主属性上图情况不能存在

    分解合并后的关系模式集合依然符合第三范式的要求,A、C、E都是各自关系模式的主属性。

    R12(A,B,C):

    • A是主属性
    • B和C都完全函数依赖于A

    R34(C,D,E):

    • C是主属性
    • D和E都完全函数依赖于C

    R5(E,F,G):

    • E是主属性
    • FG都完全函数依赖于E

    BCNF

    关系模式R〈U,F〉∈1NF。若X→Y且Y ∈X时X必含有码,则R〈U,F 〉∈BCNF
    即关系模式R〈U,F〉中,若每一个决定因素都包含码,则R〈U,F 〉 ∈BCNF

    翻译后:

    (1) 所有非主属性都完全函数依赖于每个候选码
    (2) 所有主属性都完全函数依赖于每个不包含它的候选码
    (3) 没有任何属性完全函数依赖于非码的任何一组属性
    (4) 主属性不传递依赖于任何一个侯选关键字
    (5) 非主属性不传递依赖于任何一个侯选关键字

    (1)是第二范式特征

    (2)主属性也要完全函数依赖于关键字

    (3)不能有非码可以“决定”,比如码为 (s,t)(s,j),但出现了 t->j 就违反了BC范式,因为t是主属性但不是码

    (4)(5) 禁止了所有传递依赖

  • 相关阅读:
    未登录拦截和登陆后直接跳转到当时想要跳的页面去
    【无标题】
    LVGL 之 windows 上 lvgl 模拟器基于 Visual Studio 搭建方法的简单整理
    Web 应用程序中的数据流
    来自北大算法课的Leetcode题解:847. 访问所有节点的最短路径
    java计算机毕业设计销售合同管理系统源码+系统+数据库+lw文档+mybatis+运行部署
    Spark系列之Spark应用程序运行机制
    npm install 报错ERESOLVE unable to resolve dependency tree
    Homebrew国内和国外如何自动安装(Mac & Linux)
    Vue监视数据的原理
  • 原文地址:https://blog.csdn.net/liangcha_xyy/article/details/134274510