数据库设计_2019-12-06

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

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

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

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


    一个例子
1NF

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

2NF

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


表1

表2
3NF

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


表1
表2
表3
实践

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


齐活

你可能感兴趣的:(数据库设计_2019-12-06)