【问题标题】:dimensions, foreign keys, relational data维度、外键、关系数据
【发布时间】:2014-08-26 21:12:07
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: relational-database dimensional-modeling


    【解决方案1】:

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

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

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

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

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

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

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

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

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

    立体设计

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

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

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

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

    现在去阅读this book

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      相关资源
      最近更新 更多