由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - fact table 和 dimension table 的区别到底是什么?
相关主题
data warehouse里面,所有dimension table的数据要拷贝到新的fact table里面,觉得这做法比较傻。问一个初级的问题关于数据仓库的维度
聊Data Warehouse 3. Facts and Dimensions (转载)a complex sql query, high hand help!!!
DBA们说说现在你管理的系统,啥东西你觉得最困难?因该是很普通的要求, 可想不出怎么办
说说俺们这以前一个老印的code,滥用CTE求教...初级问题
借宝地问个面试中的sql的问题。how to see all the tables in SQL*PLUS?
一个ETL process 里边 change data capture 的问题, 大家讨论foreign key reference to two tables? how to do it?
SSAS电面问题how to list all tables in my account?
what is the difference between merge and update (oracle interview question)Can I create thousands table in one...
相关话题的讨论汇总
话题: dimension话题: fact话题: table话题: product话题: tables
进入Database版参与讨论
1 (共1页)
s****e
发帖数: 1180
1
fact table 和 dimension table 的区别到底是什么?
看了这个解释,还是不明白:
http://stackoverflow.com/questions/20036905/difference-between-
谁能用汉语和英语简练,清晰的概括描述这两种表的区别。多谢!:)
d****n
发帖数: 12461
2
star schema大概要求fact和dimension分开存放。dimension,就是例如员工姓名,部
门名称,商品描述之类的,属于那种不怎么变动,但是变动了就得大动的内容。fact,
例如员工工资,所属部门,商品价格,交易时间,属于即使变动也只是一个个动的内容
。fact和dimension之间通常用primary key或者surrogate key联系起来,例如用你的
工号,部门的编号,商品的SKU等等。
同样的内容,既可以做fact,也可以做dimension。例如员工地址,可能是fact。但是
公司不同部门的地址,可能就是dimensison。
s**********o
发帖数: 14359
3
FACT TABLE就是一堆KEY和你的MEASURES了,就是要分析的对象了
比如产量,销售量,销售额等等
DIMENSION TABLE就是DENORMALIZED的数据了,
比如ACCOUNT, PRODUCT,CUSTOMER每一个都是一个DIMENSION
d***e
发帖数: 793
4
DIMENSION是描述性的,说的是你这个东西是什么;Fact是度量性说,说的是你这个东
西有多少。
y*****g
发帖数: 677
5
都说得对,还是举例子好:
FACT table:
SALES (day_key, salerep_key, product_key, order_amount);
dimension tables:
DAY,
SALEREP,
PRODUCT

PRODUCT
|
|
\ /
DAY --> SALES <--SALEREP
s****e
发帖数: 1180
6
我有一个问题,有一组tables,
products has productID, productName, price
customer has cumstomerID, customerName,
sale has productID, customerID
面试人问这三个tables哪个是dimension tables, 哪个是fact tables,
我说, products 是fact table, customer 和sale 是dimension tables,那人说不对,
三个tables都是dimension tables.
我看了dynkin的说明就觉得很糊涂.
你们觉得呢?
多谢!:)

【在 d****n 的大作中提到】
: star schema大概要求fact和dimension分开存放。dimension,就是例如员工姓名,部
: 门名称,商品描述之类的,属于那种不怎么变动,但是变动了就得大动的内容。fact,
: 例如员工工资,所属部门,商品价格,交易时间,属于即使变动也只是一个个动的内容
: 。fact和dimension之间通常用primary key或者surrogate key联系起来,例如用你的
: 工号,部门的编号,商品的SKU等等。
: 同样的内容,既可以做fact,也可以做dimension。例如员工地址,可能是fact。但是
: 公司不同部门的地址,可能就是dimensison。

s****e
发帖数: 1180
7
还有,把这三个表join起来的sql 该怎么写?多谢!:)

【在 s****e 的大作中提到】
: 我有一个问题,有一组tables,
: products has productID, productName, price
: customer has cumstomerID, customerName,
: sale has productID, customerID
: 面试人问这三个tables哪个是dimension tables, 哪个是fact tables,
: 我说, products 是fact table, customer 和sale 是dimension tables,那人说不对,
: 三个tables都是dimension tables.
: 我看了dynkin的说明就觉得很糊涂.
: 你们觉得呢?
: 多谢!:)

s****e
发帖数: 1180
8
fact table 和 dimension table 的区别到底是什么?
看了这个解释,还是不明白:
http://stackoverflow.com/questions/20036905/difference-between-
谁能用汉语和英语简练,清晰的概括描述这两种表的区别。多谢!:)
d****n
发帖数: 12461
9
star schema大概要求fact和dimension分开存放。dimension,就是例如员工姓名,部
门名称,商品描述之类的,属于那种不怎么变动,但是变动了就得大动的内容。fact,
例如员工工资,所属部门,商品价格,交易时间,属于即使变动也只是一个个动的内容
。fact和dimension之间通常用primary key或者surrogate key联系起来,例如用你的
工号,部门的编号,商品的SKU等等。
同样的内容,既可以做fact,也可以做dimension。例如员工地址,可能是fact。但是
公司不同部门的地址,可能就是dimensison。
s**********o
发帖数: 14359
10
FACT TABLE就是一堆KEY和你的MEASURES了,就是要分析的对象了
比如产量,销售量,销售额等等
DIMENSION TABLE就是DENORMALIZED的数据了,
比如ACCOUNT, PRODUCT,CUSTOMER每一个都是一个DIMENSION
相关主题
一个ETL process 里边 change data capture 的问题, 大家讨论问一个初级的问题关于数据仓库的维度
SSAS电面问题a complex sql query, high hand help!!!
what is the difference between merge and update (oracle interview question)因该是很普通的要求, 可想不出怎么办
进入Database版参与讨论
d***e
发帖数: 793
11
DIMENSION是描述性的,说的是你这个东西是什么;Fact是度量性说,说的是你这个东
西有多少。
y*****g
发帖数: 677
12
都说得对,还是举例子好:
FACT table:
SALES (day_key, salerep_key, product_key, order_amount);
dimension tables:
DAY,
SALEREP,
PRODUCT

PRODUCT
|
|
\ /
DAY --> SALES <--SALEREP
s****e
发帖数: 1180
13
我有一个问题,有一组tables,
products has productID, productName, price
customer has cumstomerID, customerName,
sale has productID, customerID
面试人问这三个tables哪个是dimension tables, 哪个是fact tables,
我说, products 是fact table, customer 和sale 是dimension tables,那人说不对,
三个tables都是dimension tables.
我看了dynkin的说明就觉得很糊涂.
你们觉得呢?
多谢!:)

【在 d****n 的大作中提到】
: star schema大概要求fact和dimension分开存放。dimension,就是例如员工姓名,部
: 门名称,商品描述之类的,属于那种不怎么变动,但是变动了就得大动的内容。fact,
: 例如员工工资,所属部门,商品价格,交易时间,属于即使变动也只是一个个动的内容
: 。fact和dimension之间通常用primary key或者surrogate key联系起来,例如用你的
: 工号,部门的编号,商品的SKU等等。
: 同样的内容,既可以做fact,也可以做dimension。例如员工地址,可能是fact。但是
: 公司不同部门的地址,可能就是dimensison。

s****e
发帖数: 1180
14
还有,把这三个表join起来的sql 该怎么写?多谢!:)

【在 s****e 的大作中提到】
: 我有一个问题,有一组tables,
: products has productID, productName, price
: customer has cumstomerID, customerName,
: sale has productID, customerID
: 面试人问这三个tables哪个是dimension tables, 哪个是fact tables,
: 我说, products 是fact table, customer 和sale 是dimension tables,那人说不对,
: 三个tables都是dimension tables.
: 我看了dynkin的说明就觉得很糊涂.
: 你们觉得呢?
: 多谢!:)

s**********o
发帖数: 14359
15
三个都是DIMENSION TABLES,你的回答表明你没真正懂得DW
建好的微软的CUBE当然是用MDX来QUERY

【在 s****e 的大作中提到】
: 还有,把这三个表join起来的sql 该怎么写?多谢!:)
M*********e
发帖数: 190
16
题目问的有问题吧。
product 和 customer是dimension table。
sale应该是fact table吧。可是题目只给了两个dimension的key,没有给其他的column。
不make sense。

【在 s**********o 的大作中提到】
: 三个都是DIMENSION TABLES,你的回答表明你没真正懂得DW
: 建好的微软的CUBE当然是用MDX来QUERY

s**********o
发帖数: 14359
17
SALE是有FACT的嫌疑,但是没有那么多KEY了怎么可能是FACT TABLE
FACT至少要有CUSTOMID,PRODUCTID了
其实SALE就是ORDER,就是个DIMENSION,这位问问题的人也是
随口说说,没仔细准备

column。

【在 M*********e 的大作中提到】
: 题目问的有问题吧。
: product 和 customer是dimension table。
: sale应该是fact table吧。可是题目只给了两个dimension的key,没有给其他的column。
: 不make sense。

d*******n
发帖数: 109
18
这三个table从一般的理解就是sales是fact table, 其他两个是dimension table.
从本身三个table的特性是这么理解,而且,
从sales table的两个column都是refe到其他两个table的也可以看出这一点。
所以不太理解为什么说三个都是dimension table.
当然实际上fact table都是有一堆fk的。
关于理解multidimensional database, 有时间的话可以看看下面的系列视频
http://www.youtube.com/watch?v=cwpL-3rkRYQ&list=PLrbIyvYCdg0iAU
w*r
发帖数: 2421
19
很久以前我就说过在商业数据库应用上有两个极端,一个normalize, 一个denormalize
.
normalize是关系数据库的应用,3rd normal form解决了大部分OLTP的应用,其理念就
是处理insert/update/delete的时候如何尽量减少IO cost.
denormlize解决的是reporting的问题,在关系数据库出现之前,大家把数据做成
spreadsheet, mainframe cobol基本上处理的就是这样的文本文件,一个copybook 定
义每个field是什么,然后读写操作,
从dennormalize到normalize之间使用关系数据库解决report问题就是这个怪胎:
dimension model.
你仔细想想这两个极端,很容易发现dimension model就是一个compromise.
至于FACt-Dimesnsion这样的定义没有必要纠结去严格区分,
简单来说FACT就是dimension key + measurement.
Dimesion就是你要group by的东西,
举例说明:
3rd normal form:
ORDER : ORDER ID, ORDER_DATE, CUSTOMER_ID, SHIPPING_ID, ORDER_STATUS...
ORDER DETAIL : ORDER_ID , ORDER_DETAIL_ITEM_SEQ, PRODUCT_ID, PRICE,QTY
PRODUCT : PRODUCT_ID, PRODUCT_CATEGORY_ID, VENDOR_ID....
CUSTOMER: CUSTOMER_ID, ZIP, STATE, CITY, PHONE ....
dimension
ORDER FACT:
ORDER_ID, PRODUCT_ID, CUSTOMER_ID, ORDER_DATE, QTY,PRICE
DIMESION
PRODUCT,
CUSTOMER,
GENERAL_DATE_DIM (date, year, quarter, week,... )
用fact, 你可以回答下列问题:
BY CUSTOMER SHIPPING STATE, BY QUARTER, HOW MUCH SALE WAS GENERATED BY EACH
PRODUCT.
Top 5 best setting product by each state in last 1 month.
Compare product A's sales month by month for the past 12 months.
1 (共1页)
进入Database版参与讨论
相关主题
Can I create thousands table in one...借宝地问个面试中的sql的问题。
请教用ACCESS做REPORT(TABLE & GRAPH)一个ETL process 里边 change data capture 的问题, 大家讨论
Oracle下如何能得到所有table的名字?SSAS电面问题
analyze 在oracle里怎么用?what is the difference between merge and update (oracle interview question)
data warehouse里面,所有dimension table的数据要拷贝到新的fact table里面,觉得这做法比较傻。问一个初级的问题关于数据仓库的维度
聊Data Warehouse 3. Facts and Dimensions (转载)a complex sql query, high hand help!!!
DBA们说说现在你管理的系统,啥东西你觉得最困难?因该是很普通的要求, 可想不出怎么办
说说俺们这以前一个老印的code,滥用CTE求教...初级问题
相关话题的讨论汇总
话题: dimension话题: fact话题: table话题: product话题: tables