一、关系建模——三范式理论
三范式是基于关系建模的术语,主要应用于OLTP,避免数据冗余,让每个数据只出现一次
第一范式:属性不可切分,指一张表的所有属性不可再往下细分
非主属性对码,存在部分函数依赖
码:假设k为表中的某个属性或属性组,当k确定的情况下,表中其余属性也都可以确定,那么k就被称为码,即候选码
第二范式:非主属性对码,只存在完全函数依赖和传递函数依赖,不存在部分函数依赖
第三范式:非主属性对码,只存在完全函数依赖,不存在部分函数依赖和传递函数依赖
参考文档链接:如何理解关系型数据库的常见设计范式?
缺点:三范式建模虽然可以减少数据冗余,但是造成的结果是拆分出来的单表会比较多,大规模数据跨表分析查询时,会造成多表关联,大表之间join等,大大影响执行效率。
所以这又引入了维度建模的模式,适用于OLAP数据仓库建模理论
二、维度建模——事实表和维度表
维度建模把各种关系表整理成了两个大类:事实表和维度表
事实表:事务型事实表、周期型事实表
维度表:实体表、可变的维度表、不可变的维度表
维度建模的核心也就是以一个事实表为中心,其他维度表进行环绕
维度建模模型分为三种:雪花模型、星型模型和星座模型