OLPT联机事务处理
On-line Transaction Processing,联机事务处理
基本思路是:从外部得到新数据之后更新数据库系统的数据,只会去读取一小部分数据或更新一小部分数据。
比如一个客户在登陆网站时只会更新自己的登录信息,记录等,只会访问小部分的tuple
OLAP联机分析处理
On-line Analyticla Processing,联机分析处理
基本思路是,基于已有的数据派生出新的信息。
比如从数据库中得到用户名以.gov结尾的表。
OLTP只产生了简单的,少量的写操作;而OLAP产生了复杂的,大量的读操作。
其中HTAP为混合事务处理分析,包含了两种工作,比如读取数据的同时更新数据。
数据库的存储模型,N-ary存储模型(NSM)
将单个的tuple中的所有属性提取出,并连续的存储在page中,也就是表中的列元素连续的存储在一个Page中,而不更改他们的相对顺序。
为什么不按行存储
如上图,我们需要从表中提取以.gov结尾的hostname,并将它们以lastlogin聚合在一起。这个查询语句其实只应用到了hostname和lastlogin。
如果按行存储的话,我们进行分析就必须要将每一个tuple都提取出来,然后才能读取他们相应的attribute也就是本例的hostname和lastlogin,这样子会有大量的效率和空间浪费。
N-ary存储:
如何进行识别,也就是在每一个Page中我如何知道这个元素对应的是哪一个tuple
- Fixed-length offsets,我知道这一个Page里面所有的元素类型,我就知道他们每一个元素的相对偏移量,这样就可以经过简单的计算来得到他属于哪一个tuple,是最常用的方法
- embedded tuple ids,用一个独一无二的id来标识Page中的元素。缺点很明显:会造成大量的空间浪费,因此不常用。