论文部分内容阅读
数据仓库作为一种分析型的数据环境,越来越受到人们的重视。数据仓库与操作型数据库环境相分离。相对于操作型环境而言,分析型环境对数据查询的速度提出了更高的要求。相对于行存储,列存储在读优先的分析型环境中具有明显的优势。为此早在一年多之前,作者所在实验室就开始基于列存储的数据仓库管理系统的研发工作。本文结合实际项目的研发,研究了数据库和数据仓库的数据存储技术、现有关系数据库管理系统和数据仓库管理系统的相关技术,特别是列存储技术,设计并实现了列存储数据仓库的存储结构和管理功能,包括外部存储和缓存。在缓存管理方面提出了一种基于双管理链的自适应页面置换算法——HA算法(Hybrid Adaptive Algorithm)。首先,本文研究了传统RDBMS和行存储DWMS的数据存储,较详细地研究了行存储和列存储的DB实现方式,特别分析和总结了两种开源数据库PostgreSQL和C-Store的数据存储技术。在分析已有关系数据库存储的基础上,对基于列存储的数据仓库的数据存储进行了深入的研究,概要地设计了DWMS中列存储的整体结构和功能模块,详细阐述了DWMS中的文件管理器、缓冲区管理器和访问方法管理三个部分的设计与实现。DWMS中的数据存储分为两个方面:逻辑层次结构和物理层次结构。文件管理器使用分层管理的思想将其分为操作系统文件管理、虚拟文件管理和DWMS文件管理三个部分。虚拟文件管理采用LRU算法淘汰文件句柄、哈希算法查找文件。缓冲区管理器是整个系统的核心和数据流枢纽。本文在通用的缓冲区管理算法的基础上提出了一种基于双管理链的自适应页面置换算法——HA算法,该算法是对DMC(2c)算法的改进,它引入动态置换点,同时,根据缺页失败数确定算法的工作链,并根据页面访问序列的局部特征选择效率较高的页面置换策略。实验结果表明,该算法的缺页率较改进前可降低近30%。B+树索引是访问方法管理的一种重要的索引方式。本文主要介绍了该索引的结构、创建、查找和更新操作。最后,本文分析了DWMS存储管理器的性能,并提出了它的代价评估模型。结合该代价评估模型和系统的具体实现,从数据存储的角度提出了两个方面的优化:存储结构的优化和数据缓冲区管理的优化。具体优化的方法有:将数据项中的ROWID存储在数据块的头部信息中,节省存储空间;赃块的设置操作包含在块管理中,避免数据丢失;将段内包含的区信息保存在段控制块中,有利于段内数据扫描;哈希链采用双向链表的结构,节省哈希查找时间和便于更新操作;将数据缓冲区进行状态设置,减少批量数据导入时数据缓冲区管理代价。