0

关系数据库的关系和星图中表示的维度之间有什么区别?

作为任务的一部分,我有一个关系数据仓库设计,其中大多数表已使用多对多、一对一、一对多关系模式进行规范化(我认为这是正确的术语?如果我是,请纠正我错误的)。下一步是绘制一个可以在数据挖掘环境中使用的星图,我猜这意味着一个从不同维度绘制的事实表......

我在这里有点困惑,因为 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}

我想知道课程成绩与模块成绩的关系。使用关系数据库,我将查询以将包含学生信息的表与模块成绩表连接起来。维度和报告的等价物是什么?特别是当我在成绩关系中使用多个列作为我的主键时..

4

1 回答 1

1

操作数据库是高度规范化的,这提高了写入性能,并最大限度地减少了写入异常。它旨在促进交易处理。

分析型数据库(数据仓库)是高度非规范化的,它提高了读取性能,并使非 DBA 更容易理解。它旨在促进分析

关系数据库的关系和维度有什么区别

数据仓库可以在关系数据库中,并且可以使用它的关系(表),所以没有区别。

我能想到的任何数据分析都可以从关系数据库中获取,那么重构它的意义何在?

数据仓库通常包含来自许多来源的数据,而不仅仅是您的操作数据库。示例:电子邮件、网站抓取。

如果你告诉你的老板加入十张桌子做一个简单的分析,你会被解雇的。

如果您要从中提取数据的某些表包含外键,您如何将其拆分为维度。

这完全取决于您要分析的内容,但通常您将数据非规范化并将其复制到维度表。

尺寸设计

您需要从要分析的流程事件开始。

使用 Excel。添加与您的分析相关的所有列。例如,如果您正在分析人们访问您的网站的过程,Excel 中的每一行将代表一次网站访问,列可能是 start_time、访问的页面数、第一页、最后一页等。

现在进行一级标准化。查找可以组合在一起的分类列(例如有关用户 Web 浏览器的信息)。这些将进入浏览器维度表。查找无法标准化的(真)数值。这些都是措施。例如,访问的页面数。

引用维度表的度量和键是事实表。

现在去读这本书

于 2014-08-27T19:00:56.877 回答