首页天道酬勤一范式二范式三范式(范式建模)

一范式二范式三范式(范式建模)

admin 11-30 18:05 462次浏览

范式建模是数据仓库建模的方法之一。范式建模不仅在在线业务数据库中表现出强烈的风格,而且在数据仓库中也发挥着重要的作用。范式建模的难点在于如何抽象业务为DW构建做准备。建立了该层的数据模型,将大大提高数据仓库层数据构建的效率,并大大降低其复杂度。

一个

概念

范式,实体关系(ER)模型,是数据仓库之父Inmon提出的枢纽自顶向下(EDW-DM)数据仓库架构。本文从关系数据库的角度,结合业务系统的数据模型,设计了一个企业级的3NF模型,实现数据仓库的建模。

模型设计的三种范式

1.第一范式(1NF):原子性,列不能再分了,每一列只包含一个属性,所有属性都是同一类型,但集合、数组、记录等非原子数据项不是,即当一个实体中的一个属性有多个值时,必须拆分成不同的属性。这是所有关系数据库最基本的要求;

2.第二范式(2NF):唯一性,一个表只描述一件事,表中所有的列都必须依赖主键,没有一列可以与主键无关,即一个表只描述一件事;

(1)功能依赖

如果在确定属性(或属性组)X的值时,可以在一个表中确定属性Y的值,那么可以说Y函数依赖于X,写成X-Y,简单来说就是数据表中没有两条记录。它们在X属性(或属性组)上具有相同的值,但在Y属性上具有不同的值。这就是“函数依赖”这个名字的由来,类似于函数关系y=f(x)。当确定x的值时,必须确定y的值。例如,假设公民表中的字段(身份证号、姓名、联系方式和联系内容)找不到任何记录,它们的身份证号相同但对应的姓名不同。所以我们可以说名字函数依赖于身份证号,写“身份证号-名字”。相反,因为可能有同名同姓的人,所以可能有两个不同的记录。它们在名称上有相同的值,但是对应的ID号不同,所以不能说ID号功能依赖于名称。一、完全函数依赖在一个表中,如果X - Y,并且对于X的任意适当子集(如果属性组X包含多个属性),X ' - Y不成立,那么我们称Y为对X的完全函数依赖,并记录为xf-y,比如因为同一个人的ID号对应的联系内容是不确定的,那么同一联系方式对应的联系内容也是不确定的。部分功能依赖

y函数依赖x,但同时y也不完全依赖x,所以我们称y部分函数依赖x,并记录为x p-y。

比如,(身份证号,联系方式)-名字是“部分功能依赖”,名字只依赖主键中的身份证号,与联系方式无关。c .传递函数依赖比如工作负责人依赖公司,与身份证号、联系方式无关。因为公司依赖身份证号,工作领导间接依赖身份证号。(2)代码将k设置为表中的属性或属性组。如果除了k之外的所有属性在功能上都完全依赖于k(不要错过这个“完整”),那么我们称k为候选代码,简称为code。在实践中,我们通常可以理解,如果当k确定时,表中除k之外的所有属性的值都会相应地确定,那么k就是一个代码。一个表中可以有多个代码。(为了方便实际应用,通常选择其中一个代码作为主代码。)例如,假设公民表中的字段(身份证号、姓名、联系信息、联系内容)和属性组(身份证号、联系信息)是代码。表中只有一个代码,相当于表的唯一约束。(3)非主体属性

任何代码中包含的属性都将成为主属性。例如,假设公民表中的字段(身份证号、姓名、联系信息、联系内容)有两个身份证号和联系信息作为主要属性。

(4)判断是否符合第二范式要求的方法,最终可以回看2NF。首先需要判断表是否符合2NF的要求。根据2NF的定义,判断的依据其实是看非主属性对数据表中的代码是否存在部分功能依赖。如果存在,数据表最高只满足1NF的要求;如果不存在,则满足2NF的要求。判断的方法是:

第一步:找出数据表中的所有代码。

第二步:根据第一步得到的代码找出所有的主要属性。

第三步:在数据表中,除了所有的主属性,其余都是非主属性。

第四步:检查非主属性对代码是否有部分功能依赖。

3.第三范式(3NF):每一列都与主键直接相关,依赖主键属性不能传递属性。

3NF在2NF的基础上,消除了非主属性对代码传递函数的依赖。也就是说,如果非主属性对代码的传递函数存在依赖,则不满足3NF的要求。

符合第三范式的关系必须满足以下三个条件:

首先,每个属性的值都是唯一的,不含糊。其次,每个非主键属性必须完全依赖于整个主键,而不是主键的一部分。第三,每个非主属性不能依赖于其他关系中的属性,因为在这种情况下,这个属性应该被分类到其他关系中。

范式模型的特征

1.同样的数据只存储在一个地方,所以只能从一个地方获取,没有数据冗余,从而保证了数据的一致性。

2.去耦(系统级和业务级)便于维护。

3.设计思路自上而下,适合上游基础数据存储。同一数据只存储一个副本,没有数据冗余,便于解耦和维护。缺点是开发周期普遍较长,维护成本高。

模型的优缺点

1.优势

从关系数据库的角度出发,结合业务系统的数据模型,方便实现数据仓库的建模。

2.不足之处

>

由于建模方法限定在关系型数据库之上,在某些时候反而限制了整个数据仓库模型的灵活性、性能等,特别是考虑到数据仓库的底层数据向数据集市的数据进行汇总时,需要进行一定的变通才能满足相应的需求。

范式模型应用场景

通过范式模型构建一个符合三范式的集中式的数据中心DW层,此层次的表一般不对BI和应用开放,而是基于DW的数据构建数据集市DM层来对外服务,DM层的数据一般也采用范式建模,不过随着对分析决策的需求,融入了维度建模的思想,采用维度建模构建出来的数据模型更加符合普通人的认知、易于被普通人所理解,从而有利于数据的推广使用,但是并未提出使用一致性维度。

https://mp.weixin.qq.com/s/6e_kaSBoQsIqIp19G99-kA

推荐使用对加权元素进行分区限制总分区权重如何通过viewModels获取viewModel?(片段-ktx)
人教版四年级行程问题(四年级上册行程应用题) 物态变化知识点总结(音乐理论基础知识试题)
相关内容