一、OLTP和OLAP的区别
1、OLTP(on-line transaction processing):联机事务处理
执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型的事务。
OLTP的特点一般有:
(1)实时性要求高。
(2)数据量不是很大,生产库上的数据量一般不会太大,而且会及时做相应的数据处理与转移。
(3)交易一般是确定的,比如银行存取款的金额肯定是确定的,所以OLTP是对确定性的数据进行存取
(4)高并发
(5)满足ACID原则。比如两人同时操作一个银行卡账户,比如大型的购物网站秒杀活动时上万的QPS请求。
2、OLAP(On-Line Analytical Processing):联机分析处理
数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态的报表系统。
OLAP的特点一般有:
(1)实时性要求不是很高,比如最常见的应用是数据报表。
(2)数据量大,因为OLAP支持的是动态查询,所以用户也许要通过将很多数据的统计后才能得到想要知道的信息
(3)OLAP系统的重点是通过数据提供决策支持,所以查询一般都是动态,自定义的。所以在OLAP中,维度的概念特别重要。一般会将用户所有关心的维度数据,存入对应数据平台。
二、关系建模
关系模型主要应用与OLTP系统中,为了保证数据的一致性以及避免冗余,所以大部分业务系统的表都是遵循第三范式的。
三、维度建模
主要应用于OLAP系统中,因为关系模型虽然冗余少,但是在大规模数据,跨表分析统计查询过程中,会造成多表关联,这会大大降低执行效率。
1、雪花模型(最常用)
2、星型模型
3、星座模型