首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解OLTP和OLAP

理解OLTP和OLAP
EN

Database Administration用户
提问于 2023-02-21 19:18:24
回答 1查看 78关注 0票数 -1

我知道OLAP和OLTP的含义,以及谁是专门做什么的。目前,我只是从理论上研究数据建模,我不知道这些差异的实用性。

我想要一些能突出区别的例子。所以我做了一个(用ChatGPT),看不出是否真的存在任何差异。

就像我想模拟一个在线订单,所以我有三个实体- Customer, Order, Product

transactional database中,我将拥有以下表和列

代码语言:javascript
复制
Customer - {CustomerID, CustomerName}
Order - {CustomerID, OrderID}
Order_Details - {OrderID, ProductID, Location}
Product - {ProductID, Name, Category}

analytical database中,我将拥有以下表和列

代码语言:javascript
复制
Customer - {CustomerID, CustomerName}
Order - {OrderID, CustomerID, ProductID, Location}
Product - {ProductID, Name, Category}

我看到的唯一不同是,由于规范化,事务性数据库还有一个表。如果可能的话有人能说出确切的好处是什么吗。或者其他的例子是可能的。

此外,我还想知道两个模型的ER图是否有任何不同(除了一些命名更改,比如实体进入事实和维度),ER中的事情也会发生变化。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2023-02-23 07:52:40

总之,OLAP和OLTP的主要区别在于它们的重点和目的。OLTP系统是为实时事务处理和管理而设计的,而OLAP系统是为复杂的分析和报告任务设计的。

您不能通过ER图来区分差异。

你不能看着一个图表模型说:“哦,那是一个OLTP数据库.”

编辑:因为你在评论中问了我一个直截了当的问题,我将用一个实际的OLAP和OLTP表的实例来回答你:

这是一个OLAP表:

代码语言:javascript
复制
Customer - {CustomerID, CustomerName}
Order - {CustomerID, OrderID}
Order_Details - {OrderID, ProductID, Location}
Product - {ProductID, Name, Category}

这是一个OLTP表:

代码语言:javascript
复制
Customer - {CustomerID, CustomerName}
Order - {CustomerID, OrderID}
Order_Details - {OrderID, ProductID, Location}
Product - {ProductID, Name, Category}

你能分辨出不同之处吗?

不,因为他们是一样的。

其中一个用于OLTP,每分钟收到1000次插入。另一个是它的简单副本,在另一个服务器上,立即同步或定期刷新。它不会收到每分钟1000个insert,但是Tableau或Power连接到它来创建仪表板和可视化数据。

就是这样,他们完全一样。

编辑2:在本指南中,您可以看到同一个表是如何用于OLAP和OLTP的:

如果您是为了数据库管理目的而工作,则可以通过SSMS连接到同一数据库。但是,如果您是为了分析目的而工作,也可以通过SSAS连接到相同的数据库。数据库保持不变。

SSAS ( Server分析服务)是为形成OLAP立方体而开发的:

因此,您可以为OLTP和OLAP使用相同的数据库。

您还可以使用不同的表和不同的ER图创建数据的不同表示形式。

但这完全取决于你,没有任何规则。在网上你可以找到最佳做法跟踪。但是随着新技术的使用,OLAP的概念也越来越成熟,人们开始考虑像OLAP一样使用OLTP,这要归功于最新的性能改进。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/323871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档