搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
办公|编程助手
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
1分钟小知识
›
小知识分享区
›
小知识点
›
数据仓库到底是什么是事实表和维度表?
0
1
0
分享
数据仓库到底是什么是事实表和维度表?
阿飞
2020-5-18 11:26:28
发表于
小知识点
[显示全部楼层]
阅读模式
关闭右栏
1
4670
事实表和维度表的分界线
事实表是用来存储主题的主干内容的。以日常的工作量为例,工作量可能具有如下属性:工作日期,人员,上班时长,加班时长,工作性质,是否外勤,工作内容,审核人。
那么什么才是主干内容?
很容易看出上班时长,加班时长是主干,也就是工作量主题的基本内容,那么工作日期,人员,工作性质,是否外勤,工作内容是否为主干信息呢?认真分析特征会发现,日期,人员,性质,是否外勤都是可以被分类的,例如日期有年-月-日的层次,人员也有上下级关系,外勤和正常上班也是两类上班考勤记录,而上班时长和加班时长则不具有此类意义。
所以一般把能够分类的属性单独列出来,成为维度表,在事实表中维护事实与维度的引用关系。
更多诠释:
在上述例子中,事实表可以设计成如下
WorkDate EmployeeID,WorkTypeID,Islegwork,Content,
而时间,员工,工作类型,是否外勤则归为维度表。
总的来看,和其他建立主外键关系的表也都一样。但是维度表的建立是需要有层次的(虽然不是必须,但是也是典型特征),而事实表的建立是针对已经发生的事实的,是历史数据的存档,也就是说是不应该修改的。以测试部测试软件的Bug为例。每个Bug都是一个事实。这个Bug的状态在数据字典里可能设计成新建,转派,修复,拒绝等等。那么在事实表中Bug表中有一个字段为Status。当测试员或者开发人员改变了这个状态的值,事实表中该如何更新呢?是直接更新Status还是什么其他的方式?显然,为了能够追踪这个Bug的历史信息,应该是重新插入一条新的记录。那么这和以往的数据库设计有什么区别呢?可以看出对于原始记录和新插入的记录,其他字段全部是相同的,也就是全部冗余的。如果以BugID作为主键,这时候会发现主键都是冗余的(当然,插入之前只能删除主键)。所以可以看出,事实表一般是没有主键的。数据的质量完全由业务系统来把握。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(1)人评论
电梯直达
正序浏览
美丽天空
发表于 2020-5-19 10:16:49
感谢分享
回复
使用道具
举报
显身卡
还有一些帖子被系统自动隐藏,点此展开
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
阿飞
超级版主
关注
1893
主题
1998
帖子
123
粉丝
TA的主题
华为OD目标院校名单(2024.07新版)
2024-7-19
国/央企投递全流程经验分享
2024-7-15
2024年了,互联网大厂福利还香吗?
2024-5-23
华为3年涨薪6次,每次涨薪高达3万
2024-5-14
华为OD面试
2024-5-13
24小时热文
kafka面试题精选
Nebula Flink Connector 在实时 ETL 的实践
Apache Doris 用户案例集
国家电网公司主数据管理系统技术规范
企业的主数据建设方法论与实践
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈