维度与事务数据库?
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/…以上是关于维度与事务数据库?的主要内容,如果未能解决你的问题,请参考以下文章