美文网首页
范式理论与多维模型(星型、雪花、事实星座)

范式理论与多维模型(星型、雪花、事实星座)

作者: 林深雾雨 | 来源:发表于2019-11-25 15:38 被阅读0次

关系模型:简单 非过程化

作用:

1.减少数据冗余(这是最主要的好处,其他好处都是由此而附带的)
2.消除异常(插入异常,更新异常,删除异常)
3.让数据组织的更加和谐…

范式理论

什么是范式

简单的说,范式是为了消除重复数据减少冗余数据,从而让数据库内的数据更好的组织,让磁盘空间得到更有效利用的一种标准化标准,满足高等级的范式的先决条件是满足低等级范式。(比如满足2nf一定满足1nf)。

对表进行第一范式(1NF)
************单一属性不可再分 有原子性特点。***************
如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。
简单的说,第一范式就是每一个属性都不可再分,有原子性的特点。不符合第一范式则不能称为关系数据库。

对表进行第二范式(2NF)
************表中的非主属性 不存在部分依赖。***************
每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF
简单的说,是表中的属性必须完全依赖于全部主 键,而不是部分主键.所以只有一个主键的表如果符合第一范式,那一定是第二范式。这样做的目的是进一步减少插入异常和更新异常。

对表进行第三范式(3NF)*
************消除数据库中关键字之间的依赖关系***************
每个属性都跟主键有直接关系而不是间接关系。
像:a-->b-->c 属性之间含有这样的关系,是不符合第三范式的。
比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)
这样一个表结构,就存在上述关系。 学号--> 所在院校 --> (院校地址,院校电话)
这样的表结构,我们应该拆开来,如下。
(学号,姓名,年龄,性别,所在院校)--(所在院校,院校地址,院校电话)
=======================================================

钻取

上钻、下钻统称钻取。
上钻:从当前数据往上回归到上一层数据。例如:(某数据的分类下面分为品名)从品名列表收拢到分类列表。
下钻:从当前数据往下展开下一层数据。例如:(某数据的分类下面分为品名)从分类列表展开到品名列表。
切片:展现同一层面的数据。如上述的产品。
转轴:这些应该属于查询、展现范畴。
=======================================================

数据仓库的概念模型

最流行的数据仓库概念模型:多维数据模型。这种模型可以是星型模式、雪花模式、或事实星座模式的形式存在。

(1)星型模式(star schema):事实表在中心,周围围绕地连接着维表(每一维),事实表含有大量数据,没有冗余

特点:星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余;
星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高。

星型结构不用考虑很多正规化的因素,设计与实现都比较简单。因此在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。

维表location 中 city 和 country 属性重叠即属性冗余(造成空间浪费和数据不一致性)

(2)雪花模式(snowflake schema):是星型模式的变种,其中某些维表是规范化(将冗余字段用新的表来表示)的,因而把数据进一步分解到附加表中,结果,模式图形成类似于雪花的形状。

特点:通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。

(3)事实星座模式(fact constellations):多个事实表共享维表,这种模式可看做星型模式集,因此称为星系模式(galaxy schema,星型模式的集合),或者事实星座(fact constellation)

相关文章

网友评论

      本文标题:范式理论与多维模型(星型、雪花、事实星座)

      本文链接:https://www.haomeiwen.com/subject/bkkdwctx.html