关系数据库的关系和星图中表示的维度之间有什么区别?
作为作业的一部分,我有一个关系数据仓库设计,其中大多数表已经标准化,使用了多到多、一对一、一对多的关系模式(我认为这是正确的术语吗?)如果我错了,请纠正我。下一步是绘制可用于数据挖掘环境的星图,我猜这意味着从不同维度绘制的事实表.
我在这里有点困惑,因为1.我能想到的任何数据分析都可以从关系数据库中提取,那么重新构造它有什么意义呢?2.如果要从中提取数据的某些表包含外键,如何将其分解为维度。
例如:我有这样的关系:
Courses {course_id, description}
Modules {module_id, description}
Course_modules {course_id, module_id}
Students {student_id, address, enrollment_option, enrollment_date, name, surname, nationality, home_language, gender ...}
Module_grades {student_id, module_id, assignment_1, assignment_1_sub_date, assignment_2, assignment_2_sub_date, exam, exam_date, overall_result}我想知道课程成绩和模块成绩有什么关系。使用关系数据库,我将查询将包含学生信息的表与模块等级表连接起来。维度和报告的等效性是什么?尤其是当我在年级关系中使用多列作为我的主键时。
发布于 2014-08-27 19:00:56
操作数据库是高度规范化的,这提高了写入性能,并最小化了写入异常。它的目的是促进事务处理。
分析数据库(数据仓库)高度非规范化,提高了读取性能,使非DBA更容易理解。它的设计是为了便于分析。
关系数据库的关系和维度之间的区别是什么?
数据仓库可以在关系数据库中,并且可以使用它的关系(表),所以没有区别。
我能想到的任何数据分析都可以从关系数据库中提取,那么重构它有什么意义呢?
数据仓库通常包括许多来源的数据,而不仅仅是您的操作数据库。例如:电子邮件,网站抓取。
如果你告诉你的老板加入十个表来做一个简单的分析,你就会被解雇。
如果要从中提取数据的某些表包含外键,如何将其拆分为维度。
这完全取决于您试图分析的内容,但通常情况下,您将数据反错并复制到维度表中。
尺寸设计
您需要从要分析的流程或事件开始。
使用Excel。添加与分析相关的所有列。例如,如果您正在分析访问您网站的人员的过程,Excel中的每一行将表示一个站点访问,并且列可能是start_time、访问的页面、第一页、最后一页等。
现在执行一个级别的规范化。找到可以组合在一起的分类列(比如关于用户web浏览器的信息)。这些内容将放在浏览器维度表中。找到(真)你无法正常化的数值。这些是度量值。例如,访问的页面数。
引用维度表的度量值和键是事实表。
现在去读这本书吧。
https://stackoverflow.com/questions/25515214
复制相似问题