经典方法
数据建模,是一种表达事务的方法,即用数据来记录、查阅事务。
## 范式建模
数据冗余,最大的问题不是浪费存储,而是引起数据的维护异常。维护频率约高,异常发生的概率越大。
做模型拆解,可以解决冗余问题。前辈们总结了一系列的模型拆解方法,即零-六级范式。
为避免冗余,而做的模型拆解方法,即范式建模。
值得注意的是,范式级别越高,冗余越少,但系统复杂度越高。
故企业使用的范式建模,主要是第一、二、三范式。
第一范式:表字段是原子性的,不可拆分。
第二范式:表有主键,非主键字段完全依赖主键字段。
第三范式:非主键字段,直接依赖主键字段。
## 维度建模
事务查阅,含单条查阅、批量查阅。
与单条查询不同,批量查阅,对系统的性能要求是新型的、巨大的。
为了实现批量查阅的高性能响应,前辈提出维度建模方法
为实现批量查阅的高性能响应,通过维度表定义事务发生的环境,事实表度量事务的方法,即维度建模。
## 宽表建模
相对于RDBMS,Hadoop上的关联查询非常低效,因为需要扫描更多、更大的文件目录。
且关联越多,查询效率越低。
为解决多表关联查询低效问题,把维度表、事实表的字段都融合进一张表的方法,即宽表建模。
该方法,在互联网公司被广泛使用。
各有所长
适合场景
- 范式建模
适合业务系统
*数仓dw层也可以参考该思想?*
- 维度建模
数仓dm层,以便让数据查询高效。
- 宽表建模
数仓app层,以便让数据查询极致高效。