电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

科普!数据仓库的建模——3NF模型

来源:金蝶云社区作者:金蝶2024-09-163

科普!数据仓库的建模——3NF模型

之前分享的一篇《如何搭建一个数据仓库》中,有提到数据仓库 的各层建模方法是不一样的。其中有朋友就问,这个 3NF 模型是个 啥? 三范式 3NF 模型就是第三范式模型。在这里使用三范式的原因,是因为 明细数据层只做清洗和转换的工作,结构与业务库(OLTP)的一致, 而业务库基本是遵循三范式。


111.webp


三范式 

3NF 模型就是第三范式模型。在这里使用三范式的原因,是因为 明细数据层只做清洗和转换的工作,结构与业务库(OLTP)的一致, 而业务库基本是遵循三范式的。


三范式指的是: 

第一范式:保证列的原子性(每一列都是不重复的,不可再拆分 的原子列)

2222.webp上图中,销售下有金额和数量,咱数据库可不能做成多表头的样 子,所以只能把表头拆分。地区中含有省市县三级,不是最细的原子 粒度,所以也需要拆分。 


第二范式:保证行的原子性(每一行都有唯一的主键,其他字段 的值与主键一一对应

32.webp

上图中,原表的用户 id 重复出现 2 次了,原因有 2:销售额和销 售量出现错行,需要合并;采购两个商品,这两个商品与主键“用户 id”不是一一对应的,所以需要拆出一个订单商品表。 


上图中的例子,原表描述了用户的销售,以及采购的数据,数据 颗粒度不一样,所以需要拆分。所以第二范式也通常可以理解为“每 张表只描述一件事情”


第三范式:保证表的原子性(每张表中的数据不会冗余,一旦有冗余字段,就需要拆一张表出来,用外键与主表关联

55.webp


上图中的例子,业务员姓名和类型信息在用户销售表中被冗余了, 不符合第三范式,所以需要拆表。1 表的用户 id 是主键,业务员 id 是外键与 2表的业务员 id 主键关联。


数据库设计 

现在的很多开发人员,甚至是数据开发人员都不太遵守三范式了, 有些三范式规则甚至被禁用,比如外键


所有事物的发展都是有规律的,当时提出三范式,是因为我们在 进行数据库设计的时候,必须要有一个规则,用来统一所有人的思想, 保证数据库设计的通用性和可理解性。三范式就是用来约束所有设计者的。

33.webp

数据库设计的过程,就是将现实世界抽象到信息

科普!数据仓库的建模——3NF模型

之前分享的一篇《如何搭建一个数据仓库》中,有提到数据仓库的各层建模方法是不一样的。其中有朋友就问,这个 3NF 模型是个啥?三范式3NF...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信