DW的两种模型

根据事实表和维度表的关系,DW的模型分为星型模型和雪花型模型,实际上,主要是根据Dimension的结构方式来划分的。

1,星型结构

星型结构是一种不符合3NF的结构,存在传递依赖,数据出现冗余。

例如中的乡政府结构,乡(乡ID,乡名称,县ID,县名称,市ID,市名称,省ID,省名称),这就是星型结构的Dimension。

在DW中,允许违反3NF,虽然造成数据冗余,但是可以减少join,提高查询速度。

2,雪花型结构

雪花型结构遵守3NF,不存在传递依赖,没有数据冗余,在设计时,使用外键关系来约束。

例如乡政府结构,乡(乡ID,乡名称,县ID),县(县ID,县名称,市ID),市(市ID,市名称,省ID),省(省ID,省名称)。

3,两种结构的性能

从查询性能角度来看,在OLTP-DW环节,由于雪花型要做多个表联接,性能会低于星型架构,但从DW-OLAP环节,由于雪花型架构更有利于度量值的聚合,因此性能要高于星型架构。

时间: 2024-11-06 07:12:22

DW的两种模型的相关文章

待处理数据的两种模型

在业务处理时,经常会存在待处理的业务数据,在处理这部分数据时,有如下的处理方式. Worker模型:包含Worker处理类(Processor),调度处理框架,时间规则配置. Worker处理类,待处理业务数据的处理类. 调度处理框架,根据时间配置的规则, 在指定的时间点内,调用worker处理类. 时间规则配置,设置worker处理类的启动时间以及频率. 优点:1.实现简单,现在有Spring和Quartz框架,直接配置好时间表达式之后以及处理器之后,就可以直接执行了. 2.各种Worker之

[原]异步编程的两种模型,闭包回调,和Lua的coroutine,到底哪一种消耗更大

今天和人讨论了一下CPS变形为闭包回调(典型为C#和JS),以及Lua这种具有真正堆栈,可以yield和resume的coroutine,两种以同步的形式写异步处理逻辑的解决方案的优缺点.之后突然想到,这两种做法,到底拿一种会更消耗.我自己的判断是,在一次调用只有一两个异步调用中断时(即有2次回调,或者2次yield),闭包回调的方式性能更好,因为coroutine的方式需要创建一个具有完全堆栈的协程,相对来说还是太重度了.但是如果一次调用中的异步调用非常多,那么coroutine的方式性能更好

DIV+CSS两种盒子模型(W3C盒子与IE盒子)

在辨析两种盒子模型之前,先简单说明一下什么叫盒子模型. 原理: 先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属性. 这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也就是能装东西的一种箱子,也具有这些属性,所以叫它盒子模式. 特点: 每个盒子都有:边界.边框.填充.内容四个属性: 每个属性都包括四个部分:上.右.下.左:这四部分可同时设置,也可分别设置

epoll的两种触发模式

epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知. 以代码来说明问题: 首先给出server的代码,需要说明的是每次accept的连接,加入可读集的时候采用的都是ET模式,而且接收缓冲区是5字节的,也就是每次只接收5字节的数据: Java代码   #include <

C#读写XML的两种一般方式

针对XML文档的应用编程接口中,一般有两种模型:W3C制定的DOM(Document Object Method,文档对象模型)和流模型. 流模型的两种变体:"推"模型(XML的简单API)和"拉"模型(.NET中的流模型). XML的解析方法: “推”模型 “拉”模型 DOM “推”模型也就是常说的SAX,SAX是一种靠事件驱动的模型.它每发现一个节点就用“推”模型引发一个事件. .NET在中对XML解析是基于“拉”模型的实现方案.“拉”模型在遍历文档时会把感兴趣

epoll的两种工作模式

epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知. 以代码来说明问题: 首先给出server的代码,需要说明的是每次accept的连接,加入可读集的时候采用的都是ET模式,而且接收缓冲区是5字节的,也就是每次只接收5字节的数据: Java代码   #include <

以Attention Model为例谈谈两种研究创新模式

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/                                                     author: 张俊林 各位观众朋友好,也许此刻您刚打开电梯--.读这一篇之前,请您最好先拜读一下本篇的前传:文本处理中的Attention Model:是什么及为什么.因为那里有些背景知识需要交代. 话接上回书,在研读AttentionModel相关文献过程中,我再次深切感受到了科研中的两种创新模式:模型创新与应用创新

简介C#读取XML的两种方式

简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的好处在于它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询 XML作用 对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企 业可以制定一套自己的数据格式.用于Internet的数据

JAVA学习篇--JAVA的两种编程模式对比

在Drp项目中,讲解了两种编程模式Model 1和Model2,下面是对这两种模式的简单理解,以及由于Model2是基于MVC架构的模式,就将我们易混淆的MVC与我们之前学的三层架构进行对比学习一下. Model1 所谓Model1就是JSP大行其道的时代,在Model1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应.用少量的JavaBean来处理数据库连接.数据库访问等操作. 代码示例:修改用户信息 主页面的js跳转: function