一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

04-11 1287阅读

1NF要求属性具有原子性,即列不可再分解;

表:字段1、 字段2(字段2.1、字段2.2)、字段3 …

如学生(学号,姓名,性别,出生年月日)

有些钢筋可能要问了,姓名可以拆成姓、名两列, “出生年月日” 也可以拆成年、月、日三个字段。所以就不满足第一范式了!!!这里再强调一下原子性,原子性是根据使用方便来自定义的最小单位。中国人一般姓名一起用,美国就习惯姓名分别存两字段

二、第二范式


2NF要求记录有惟一标识,即不存在部分依赖;

简单来说就是拆表,以人为粒度做一张明细表,以课程号为粒度做一张维度表,两表关联使用,消除了数据冗余

表:学号、课程号、姓名、学分;

这个表明显说明了两个事务:学生信息, 课程信息;由于非主键字段必须依赖主键,这里学分依赖课程号,姓名依赖与学号,所以不符合二范式。

可能会存在问题:

  • 数据冗余:每条记录都含有相同信息;

  • 删除异常:删除所有学生成绩,就把课程信息全删除了;

  • 插入异常:学生未选课,无法记录进数据库;

  • 更新异常:调整课程学分,所有行都调整。

    正确做法:

    学生:Student(学号, 姓名);

    课程:Course(课程号, 学分);

    选课关系:StudentCourse(学号, 课程号, 成绩)。

    三、第三范式


    3NF是对字段的**冗余性**,要求任何字段不能由其他字段派生出来,它要求字段没有冗余,即不存在传递依赖;

    表: 学号, 姓名, 年龄, 学院名称, 学院电话

    因为存在依赖传递: (学号) → (学生)→(所在学院) → (学院电话) 。

    可能会存在问题:

    • 数据冗余:有重复值;

    • 更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况 。

      正确做法:

      学生:(学号, 姓名, 年龄, 所在学院);

      学院:(学院, 电话)。

      四、反范式化


      一般说来,数据库只需满足第三范式(3NF)就行了。

      没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余,达到以空间换时间的目的。

      〖例〗:有一张存放商品的基本表,如表1所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。

      在Rose 2002中,规定列有两种类型:数据列和计算列。“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。

      五、范式化设计和反范式化设计的优缺点


      一、Python所有方向的学习路线

      Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

      一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      二、Python必备开发工具

      工具都帮大家整理好了,安装就可直接上手!一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      三、最新Python学习笔记

      当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

      一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      四、Python视频合集

      观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

      一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      五、实战案例

      纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      六、面试宝典

      一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      简历模板一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

      由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

      如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)

      一篇文章搞懂数据仓库:三范式与反范式,缓存架构技术

      该从何学起的朋友,同时减轻大家的负担。**

      由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

      如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)

      [外链图片转存中…(img-djnaaUfV-1711002180989)]

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]