一、操作型数据库和分析型数据库的区别

数据库的"分家"

        随着经典的RDBMS,如Oracle,MySQL,SQL Server等被成功推向市场,为社会信息化的发展做出了重大贡献。并且随着数据库使用范围的不断扩大,它被逐步划分为两大基本类型:

        1. 操作型数据库

        主要用于业务支撑。一个公司往往会使用并维护若干个数据库,这些数据库保存着公司的日常操作数据,比如商品购买、酒店预订、学生成绩录入等;

        2. 分析型数据库

        主要用于历史数据分析。这类数据库作为公司的单独数据存储,负责利用历史数据对公司各主题域进行统计分析;

   放在一起会发生资源抢夺等情况,具体区别如下:

 

操作型数据库 VS 分析型数据库

 

        1. 数据组成差别 - 数据时间范围差别

   操作型数据库只会存放90天以内的数据,

   分析型数据库存放的则是数年内的数据。

   这点也是将操作型数据和分析型数据进行物理分离的主要原因。

        2. 数据组成差别 - 数据细节层次差别

        操作型数据库存放的主要是细节数据,

   分析型数据库中虽然既有细节数据,又有汇总数据,但对于用户来说,重点关注的是汇总数据部分。

        操作型数据库中自然也有汇总需求,但汇总数据本身不存储而只存储其生成公式。这是因为操作型数据是动态变化的,因此汇总数据会在每次查询时动态生成。

        而对于分析型数据库来说,因为汇总数据比较稳定不会发生改变,而且其计算量也比较大(因为时间跨度大),因此它的汇总数据可考虑事先计算好,以避免重复计算。

        3. 数据组成差别 - 数据时间表示差别

        操作型数据通常反映的是现实世界的当前状态;

   分析型数据库既有当前状态,还有过去各时刻的快照,分析型数据库的使用者可以综合所有快照对各个历史阶段进行统计分析。

        4. 技术差别 - 查询数据总量和查询频度差别

        操作型查询的数据量少而频率多,

   分析型查询则反过来,数据量大而频率少。要想同时实现这两种情况的配置优化是不可能的,这也是将两类数据库物理分隔的原因之一。

        5. 技术差别 - 数据更新差别

        操作型数据库允许用户进行增,删,改,查;

   分析型数据库用户则只能进行查询。

        6. 技术差别 - 数据冗余差别

        数据的意义是什么?就是减少数据冗余,避免更新异常。而如5所述,分析型数据库中没有更新操作。因此,减少数据冗余也就没那么重要了。

       "某大公司Hadoop Hive里的关系表不完全满足完整/参照性约束,也不完全满足范式要求,甚至第一范式都不满足。这种情况正常吗?",答曰是正常的。因为Hive是一种数据仓库,而数据仓库和分析型数据库的关系非常紧密(后文会讲到)。它只提供查询接口,不提供更新接口,这就使得消除冗余的诸多措施不需要被特别严格地执行了。

        7. 功能差别 - 数据读者差别

        操作型数据库的使用者是业务环境内的各个角色,如用户,商家,进货商等;

   分析型数据库则只被少量用户用来做综合性决策。

        8. 功能差别 - 数据定位差别

        这里说的定位,主要是指以何种目的组织起来。操作型数据库是为了支撑具体业务的,因此也被称为"面向应用型数据库";

   分析型数据库则是针对各特定业务主题域的分析任务创建的,因此也被称为"面向主题型数据库"。

posted @ 2019-01-18 10:46  周家飞少  阅读(7664)  评论(2编辑  收藏  举报