数据库设计_2019-12-06

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

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

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

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


    一个例子
1NF

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

2NF

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


表1

表2
3NF

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


表1
表2
表3
实践

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


齐活
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关系型数据库设计时为确保数据存储规范化,通常需要按照范式设计数据,接下来主要介绍下1NF-3NF递进式数据库设计,...
    稻草人_d41b阅读 17,743评论 2 10
  • 数据库设计三范式 定义 按照《数据库系统概论》中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各...
    芒果菠萝蛋炒饭阅读 1,106评论 0 3
  • 首先介绍几个概念: 函数依赖 定义:设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时...
    eliter0609阅读 13,472评论 4 16
  • 踏着金穗的香气,伴随着秋天的气息,我们迎来了龙珠达集团9月份员工生日会,本次生日会主题为“轰趴派对”,地点为唐家盘...
    梁冰娥阅读 3,238评论 0 2
  • 科技的渐变过程使人们在新科技的发展初期很难预测它将给人们的生活造成多大的影响。一种新科技的爆发爆发都会有近乎相同的...
    一棵老草阅读 144评论 0 0