维度与事务数据库?

Posted

技术标签:

【中文标题】维度与事务数据库?【英文标题】:Dimensional vs Transactional Database? 【发布时间】:2020-01-14 05:06:36 【问题描述】:

尝试了解有关数据库/数据仓库的更多信息,但对不同的术语感到困惑。维度数据库和事务数据库有什么区别?事务数据库与操作数据库相同吗?

根据我收集的资料,维度数据库采用星型模式,由具有外键的事实表和以这些外键作为主键的维度表组成。

试图了解 OLAP、RDBMS、T-SQL 等以及所有这些其他术语如何适用。

请像我 5 岁一样解释。

【问题讨论】:

【参考方案1】:

关系数据库系统 (RDMS) 是旨在以关系格式(行、列)保存数据的软件。 SQL 是一种用于使用 RDMS 的语言。 TSQL 是 SQL 语言的扩展,由 Sybase、Microsoft 为 SQL 语言定义添加更多功能。 Read more on T-SQL

高层有两种关系数据库系统。

    在线事务处理 (OLTP):事务/操作数据库 这些是为进行商业交易而设计的。 它们的设计方式使数据没有冗余。为了设计这些系统,应用了标准化。 Read more on Normal Forms。 表是具有有限列的窄表,使用关系连接。建模称为 ER 建模。 事务在表行上保持锁定,并且应该尽可能短,因为写入者会阻塞其他写入者。 在线分析处理 (OLAP):报告数据库 这些设计用于根据已经发生的业务流程生成报告。 它们的设计方式是,数据在同一个表中随时可用,而不是从另一个表中连接和获取数据。因此,表格很宽,列更多。为了设计这些系统,应用了维度建模。 Read more dimensional modeling。 表分为事实表、维度表。这些表是宽表,Fact 与使用维度键的维度表相关。由于单个事实被许多维表包围,看起来像一个星形,所以称为星形模式。该建模称为维度建模。 由于查询用于报告目的,因此没有事务的概念。读者不会阻止读者。因此,多个报告查询可以同时生成报告。

【讨论】:

这真的很有帮助,我很欣赏结构和细节! 我有一个不相关的问题。 OLTP 中的维表叫什么?我的意思是在 OLAP 中我们称它们为维度表,但我发现很难在 OLTP 中为相同的表找到一个好的标签。 @Lamar,我们可以将它们称为 OLTP 中的参考表或主表。有关类似问题,请参阅此答案:dba.stackexchange.com/questions/283213/…

以上是关于维度与事务数据库?的主要内容,如果未能解决你的问题,请参考以下文章

阿里笔记之数据模型

我应该跟踪关系/事务数据库中缓慢变化的维度吗? [关闭]

数据仓库建模-维度建模

数据仓库设计要点

可以在数据仓库维度表上存储事务主键以在事实暗淡之间关联吗?

阿里分布式事务多场景多维度架构的全攻略实践