数据仓库建表疑问

三多 2010-11-10 05:03:44
A表(维度表)有三个部门字段(销售部门,项目部门,责编部门)且都会作为维度属性,都对应部门表B,这种情况在数据仓库是否要建三个部门表(销售部门表,项目部门表,责编部门表)啊。
...全文
355 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
adonis6255 2011-08-19
  • 打赏
  • 举报
回复
我是来看回复的,给力给力
三多 2011-07-01
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zxhx 的回复:]

雪花型架构:
事实表->图书表->部门表

星型架构:
事实表->图书表
图书表和部门表合并成一张新的图书表,在图书表增加一列,表示部门id对应的描述

具体怎么实施要看你的数据量

数据量不大一切都无所谓

数据量大星型架构效率更高
[/Quote]

星型架构相对简单,成解决问题,在“图书表”中把“部门表”作为其属性,即不再有单独的“部门表”,这样能解决一些问题,但还是有好多问题不好解决。
比如“图书表”中有三个日期这种情况,要解决这样的问题只能把三个日期移到事实表里去。
slzhang_07 2011-05-04
  • 打赏
  • 举报
回复
学习一下,sql数据仓库搞不懂。。。
zxhx 2011-03-30
  • 打赏
  • 举报
回复
雪花型架构:
事实表->图书表->部门表

星型架构:
事实表->图书表
图书表和部门表合并成一张新的图书表,在图书表增加一列,表示部门id对应的描述

具体怎么实施要看你的数据量

数据量不大一切都无所谓

数据量大星型架构效率更高

baobao590 2011-03-30
  • 打赏
  • 举报
回复
没有必要,只要在建B表的时候,把部门ID,建成主键就可以了!
zxhx 2011-03-11
  • 打赏
  • 举报
回复
建立维度的唯一依据是你的需求,不能无原则的扩充你的cube结构~
zhongqq 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kurehu 的回复:]
有此疑问是因为在Microsoft SQL Server Analysis Services项目中创建模型时发现抽取数据的语句不对。
这三个字段作为图书维度的属性时,KeyColumns是各自的字段,NameColumn都是部门表B的“部门名称“,
Visual Studio中处理这个维度时产生的语句如下:
对于销售部门ID:
SELECT A.销售部门ID,B.部门名称 FROM图书表A……
[/Quote]

这个不是正确的吗? B.部门名称 会根据部门id变化的
shangwg 2011-02-20
  • 打赏
  • 举报
回复
领导要什么数据,就做什么样的临时表,就OK,想得太多,找...
三多 2010-12-27
  • 打赏
  • 举报
回复
来自百度百科http://baike.baidu.com/view/19711.htm
三多 2010-12-27
  • 打赏
  • 举报
回复
定义
  数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。   数据仓库之父William H. Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
编辑本段特点
  1、数据仓库是面向主题的;   2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出 数据仓库的核心工具
来,进行加工与集成,统一与综合之后才能进入数据仓库;   3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;   4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求,他在商业领域取得了巨大的成功。3稳定的。数据以只读格式保存,且不随时间改变。   5、汇总的。操作性数据映射成决策可用的格式。   6、大容量。时间序列数据集合通常都非常大。   7、非规范化的。Dw数据可以是而且经常是冗余的。   8、元数据。将描述数据的数据保存起来。   9、数据源。数据来自内部的和外部的非集成操作系统。
面向主题
  操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。主题是与传统数据库的面向应用相对应得,是一个抽象概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明试图。
集成的
  数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
相对稳定的
  数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
反映历史变化
  数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
编辑本段实现方式
  数据仓库是一个过程而不是一个项目。   数据仓库系统是一个信息提供平台,他从业务处理系统获得数据,主要以星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取信息和知识。   从功能结构化分,数据仓库系统至少应该包含数据获取(Data Acquisition)、数据存储(Data Storage)、数据访问(Data Access)三个关键部分。   企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。
编辑本段体系结构
数据源
  是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;
数据的存储与管理
  是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
OLAP(联机分析处理)服务器
  对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP(多维在线分析处理)和HOLAP(混合型线上分析处理)。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
前端工具
  主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
编辑本段组成
数据仓库数据库
  是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其 IBM数据仓库解决方案产品组成
突出的特点是对海量数据的支持和快速的检索技术。
数据抽取工具
  把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。
元数据
  元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。   技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。   商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;   元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。
访问工具
  为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。
数据集市(DataMarts)
  为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。
数据仓库管理
  安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。
信息发布系统
  把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。
编辑本段设计步骤
  1)选择合适的主题(所要解决问题的领域)   2)明确定义事实表   3)确定和确认维   4)选择事实表   5)计算并存储fact表中的衍生数据段   6)转换维表   7)数据库数据采集   8)根据需求刷新维表   9)确定查询优先级和查询模式。   硬件平台:数据仓库的硬盘容量通常要是操作数据库硬盘容量的2-3倍。通常大型机具有更可靠的性能和和稳定性,也容易与历史遗留的系统结合在一起;而PC服务器或UNIX服务器更加灵活,容易操作和提供动态生成查询请求进行查询的能力。选择硬件平台时要考虑的问题:是否提供并行的I/O吞吐?对多CPU的支持能力如何?   数据仓库DBMS:他的存储大数据量的能力、查询的性能、和对并行处理的支持如何。   网络结构:数据仓库的实施在那部分网络段上会产生大量的数据通信,需不需要对网络结构进行改进。
编辑本段建立步骤
步骤
  1)收集和分析业务需求    数据仓库价值曲线
2)建立数据模型和数据仓库的物理设计   3)定义数据源   4)选择数据仓库技术和平台   5)从操作型数据库中抽取、净化、和转换数据到数据仓库   6)选择访问和报表工具   7)选择数据库连接软件   8)选择数据分析和数据展示软件   9)更新数据仓库
数据转换工具
  1)数据转换工具要能从各种不同的数据源中读取数据。   2)支持平面文件、索引文件、和legacyDBMS。   3)能以不同类型数据源为输入整合数据。   4)具有规范的数据访问接口   5)最好具有从数据字典中读取数据的能力   6)工具生成的代码必须是在开发环境中可维护的   7)能只抽取满足指定条件的数据,和源数据的指定部分   8)能在抽取中进行数据类型转换和字符集转换   9)能在抽取的过程中计算生成衍生字段   10)能让数据仓库管理系统自动调用以定期进行数据抽取工作,或能将结果生成平面文件   11)必须对软件供应商的生命力和产品支持能力进行仔细评估   主要数据抽取工具供应商:Prismsolutions.Carleton'sPASSPORT.InformationBuildersInc.'s   EDA/SQL.SASInstituteInc.
编辑本段数据仓库带来了什么
  每一家公司都有自己的数据。并且,许多公司在计算机系统中储存有大量的数据,记录着企业购买、销售、生产过程中的大量信息和客户的信息。通常这些数据都储存在许多不同的地方。   使用数据仓库之后,企业将所有收集来的信息存放在一个唯一的地方——数据仓库。仓库中的数据按照一定的方式组织,从而使得信息容易存取并且有使用价值。   目前,已经开发出一些专门的软件工具,使数据仓库的过程实现可以半自动化,帮助企业将数据导入数据仓库,并使用那些已经存入仓库的数据。   数据仓库给组织带来了巨大的变化。数据仓库的建立给企业带来了一些新的工作流程,其他的流程也因此而改变。   数据仓库为企业带来了一些“以数据为基础的知识”,它们主要应用于对市场战略的评价,和为企业发现新的市场商机,同时,也用来控制库存、检查生产方法和定义客户群。   每一家公司都有自己的数据。数据仓库将企业的数据按照特定的方式组织,从而产生新的商业知识,并为企业的运作带来新的视角。
编辑本段为何要建立数据仓库
  计算机发展的早期,人们已经提出了建立数据仓库的构想。“数据仓库”一词最早是在1990年,由Bill Inmon先生提出的,其描述如下:数据仓库是为支持企业决策而特别设计和建立的数据集合。   企业建立数据仓库是为了填补现有数据存储形式已经不能满足信息分析的需要。数据仓库理论中的一个核心理念就是:事务型数据和决策支持型数据的处理性能不同。   企业在它们的事务操作收集数据。在企业运作过程中:随着定货、销售记录的进行,这些事务型数据也连续的产生。为了引入数据,我们必须优化事务型数据库。   处理决策支持型数据时,一些问题经常会被提出:哪类客户会购买哪类产品?促销后销售额会变化多少?价格变化后或者商店地址变化后销售额又会变化多少呢?在某一段时间内,相对其他产品来说哪类产品特别容易卖呢?哪些客户增加了他们的购买额?哪些客户又削减了他们的购买额呢?   事务型数据库可以为这些问题作出解答,但是它所给出的答案往往并不能让人十分满意。在运用有限的计算机资源时常常存在着竞争。在增加新信息的时候我们需要事务型数据库是空闲的。而在解答一系列具体的有关信息分析的问题的时候,系统处理新数据的有效性又会被大大降低。另一个问题就在于事务型数据总是在动态的变化之中的。决策支持型处理需要相对稳定的数据,从而问题都能得到一致连续的解答。   数据仓库的解决方法包括:将决策支持型数据处理从事务型数据处理中分离出来。数据按照一定的周期(通常在每晚或者每周末),从事务型数据库中导入决策支持型数据库——既“数据仓库”。数据仓库是按回答企业某方面的问题来分“主题”组织数据的,这是最有效的数据组织方式。
编辑本段数据仓库和数据集市
  有关决策支持型数据库的数据集市是面向企业中的某个部门或是项目小组的。一些专家顾问将数据集市 数据仓库基本体系结构
的建造描述为建立数据仓库全过程中的一步。首先,一个储存企业全部信息的数据仓库被创建,其中,数据均具备有组织的、一致的、不变的格式。数据集市随后被创立,其目的是为不同部门提供他们所需要的那部分信息。数据仓库聚集了所有详细的信息,而数据集市中的数据则是针对用户们的特定需求总结而出的。   而另外一些专家则认为数据集市的建立并不需要首先建立一个数据仓库。在这个模型中,数据直接由事务型数据库转入数据集市中。一个公司可能建立有多个数据集市,而彼此之间毫无联系。   这种不在建立数据仓库的基础上创建数据集市的方式会更便宜、更快速,因为它的规模更加易于管理。   第二种观点的缺陷在于无法实现最初创建数据仓库的最主要的目的——将企业所有的数据统一为一致的格式。现有的事务处理系统的数据往往是不一致、冗余的。如果首先建立起一个全公司范围的数据仓库,组织就能够获得一个统一关于企业的活动和客户的知识库。如果先建立起一个个独立的数据集市,那么数据仓库的诸多优势都能够得以实现,但是企业远远无法做到对数据的一致的储存。
编辑本段数据仓库与数据库的区别
  数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。   数据库是面向事务的设计,数据仓库是面向主题设计的。   数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。   数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。   数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。   数据库库在基本容量上要比数据仓库小的多。   数据库是为了高效的事务处理而设计的,服务对象为企业业务处理方面的工作人员,而数据仓库是为了分析数据进行决策而设计的,服务对象为企业高层决策人员。
Hankuker 2010-12-15
  • 打赏
  • 举报
回复
不懂,飘过!
lotusprince 2010-12-14
  • 打赏
  • 举报
回复
请问楼主什么是数据仓库?
whb147 2010-12-11
  • 打赏
  • 举报
回复
还有一个就是直接物化成实表,就不用关联了
三多 2010-11-11
  • 打赏
  • 举报
回复
有此疑问是因为在Microsoft SQL Server Analysis Services项目中创建模型时发现抽取数据的语句不对。
这三个字段作为图书维度的属性时,KeyColumns是各自的字段,NameColumn都是部门表B的“部门名称“,
Visual Studio中处理这个维度时产生的语句如下:
对于销售部门ID:
SELECT A.销售部门ID,B.部门名称 FROM图书表A AS A,部门表B AS B WHERE A.销售部门ID=B.部门ID

对于项目部门ID:
SELECT A.项目部门ID,B.部门名称 FROM图书表A AS A,部门表B AS B WHERE A.销售部门ID=B.部门ID

对于责编部门ID:
SELECT A.责编部门ID,B.部门名称 FROM图书表A AS A,部门表B AS B WHERE A.销售部门ID=B.部门ID


三多 2010-11-11
  • 打赏
  • 举报
回复
谢谢大家。我表达的意思是:图书表(A),部门表(B)这两个表都是维度表
图书表A有三个部门字段,分别的销售部门ID,项目部门ID,责编部门ID,这三个字段都是部门表B主键字段的外键。

比如图书表A的结构:图书ID,销售部门ID,项目部门ID,责编部门ID
部门表B的结构:部门ID,部门名称

对应这样的表在数据仓库创建时是否要把部门表B分成三个表,即:销售部门表,项目部门表,责编部门表
zhongqq 2010-11-10
  • 打赏
  • 举报
回复
在数据仓库中 建一个维度表 一个事实表就可以啦
维度表

部门

事实表

部门 ,其他字段

通过部门做关联即可
whb147 2010-11-10
  • 打赏
  • 举报
回复
你去参考以下星型,雪花形就知道了
fpzgm 2010-11-10
  • 打赏
  • 举报
回复
描述不清楚

关于组织结构维度应该为这样
人-组表: 人id 人名 组id
组-部门: 组id 组名 部门id
部门: 部门id 部门名

或者一张自关联表
子id 子名 父id


反正你说的格式不对,最好详细描述一下
王向飞 2010-11-10
  • 打赏
  • 举报
回复
一个部门表就行了,其他的用到的时候抽取或行列转换,
gengchenhui 2010-11-10
  • 打赏
  • 举报
回复
不明白什么意思?有点行转列的意思?还数据仓库?
加载更多回复(1)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧