美文网首页
数据库设计_2019-12-06

数据库设计_2019-12-06

作者: ppzbreeze | 来源:发表于2019-12-17 11:09 被阅读0次

    感觉这是个相当独立的部分,写一起不太好,但是又很重要

    三个范式1NF,2NF,3NF

    定义感觉有点复杂,没记太住,简单点吧
    把大象装冰箱总共分这么几步

    首先确定数据库涉及的最小单元,及相互依赖关系
    • 最小数据单元好确定
    • 依赖关系比较复杂,以下图为例,主要分为
      1.完全依赖,,系名完全依赖于学号
      2.部分依赖,,分数依赖于学号和课名
      3.传递函数依赖,,系主任依赖于系名依赖于学号,系主任传递依赖于学号
    • 码,某些元素中,除K之外的所有元素都完全依赖于K,K就是一个码了


      一个例子
    1NF

    就是分解,这步最简单,上图就是分解后的

    2NF

    这步理论上是将存在部分依赖关系的属性剥离,上图中,明显得出学号,课名,分数三个属性是部分依赖关系,将其单独列成表


    表1
    表2
    3NF

    最后一步是去除传递函数依赖,主要是修正图2中几个属性的依赖,明显得出学号,姓名是一组,二者理论相等,但学号更适合做主键,系名和系主任也是理论相等,不过出于便于理解的角度考虑,可以认为系主任依赖于系名,那就表明系主任->系名->学号,构成传递函数依赖,消除它,拆成学号,姓名,系名和系名,系主任两个表如下图,
    不过要是按学号->姓名和学号->系名->系主任,也是可以的,只是感觉有点别扭


    表1 表2 表3
    实践

    这次实际情况来说,就比较简单了客户->鸽子->轨迹->数据点,全部是传递函数依赖,那自然要直接拆3个表


    齐活

    相关文章

      网友评论

          本文标题:数据库设计_2019-12-06

          本文链接:https://www.haomeiwen.com/subject/mruegctx.html