EM系统所有提交文件重定向 在线手势提交系统.请求作者直接向文章提交 在线手势提交系统相关日志

整合运行长编码和面向列数据库使用二进制搜索树

Akhil Ramachandran和Anu Krishna Rajamohan
前学生计算机科学工程系Trivandrum工程学院
相关文章at普梅德,学者谷歌

访问更多相关文章科技创新研究国际杂志

抽象性

最近面向列数据库吸引了大量注意力,数据库面向技术系统广泛用于分析处理,如数据仓库、决策支持和商业情报预测应用中发现的那些系统面向列数据库极有可能压缩数据,因为相邻记录相似性论文将讨论算法使用列面向数据库中的相似性整合压缩执行过程新索引法称为二进制搜索树索引化支持O(logn)插入、删除和查找操作论文还描述这些基本操作的实施情况

关键字

面向列数据库、运行长度编码、压缩、二分搜索树、性能

导 言

面向列数据库日复一日得到更多关注,并越来越多地用于分析和数据仓应用这是因为垂直分割关系使得阅读和聚合速度更快成为可能此外,各种压缩方法,如运行长度编码和位图编码帮助实现列面向数据库更高压缩比性能取决于压缩实现程度[1]显示运行编码和位图编码方法取决于图例排序出序插入通常会降低所实现压缩并随之提高检验性能
平均而言,插入或删除图例所需时间从关系线性不等,关系图例数随线性变化这是因为除更新图例外,连续图例存储键或标识器也必须更新此外,读优化关系中的图例需要在更新操作后解压并再压缩需要额外时间论文显示使用二叉树以子线性时间执行嵌入、删除和更新的可能性二进制搜索树中每个节点都包含属性值,并指向存储属性存储数据库索引的链表压缩比进一步改进,因为数据库图例索引与图例属性并存
长程编码方法-面向列数据库中图例中的每一属性按值序列单独存储串行编码或位图编码运行长度编码程序压缩连续重复值或顺序运行有两种方式表示连续重复值或串行序列[2]-计数基础表示法计取值序列 10(1062)610639106491065括号中的整数(从1062开始)表示数据库索引与图例相关联,属性为部分使用基于计数表示数编码此序列,结果将产生(10,1,6,1,9,2,10,2,4,3,6,2,14,2)。反之,如果我们使用偏向表示法(10,1),(6,2),(9,4),(10,6),(4,9),(6,11),(14,13)
本文组织如下
开工第二节下列本日志引用的相关作品
二叉第三.A节定义BST索引并解释BST索引如何为上文显示的示例序列创建
3级第三.B节解释基本操作如查找、插入、删除和更新是如何用BST索引执行的

背景和相关工作

A.数据库压缩
数据库压缩有效保存空间并减少磁盘I/O多压缩程序基于字符编码或检测重复字符串
字典编码[2]是一种压缩技术,使用字符编码压缩数据所有显性值都写进词典中,并编译为符号,作为数据词典中的索引作用令牌占用空间小于数据并替换所有事件,结果压缩举例说,如果属性耗用5字节空间只有8个显性值,则可代之以符号3比特长度解压缩只指词典用令牌索引查找数据,因此它有非常高解压缩性能
运行长度编码(RLE)[3]是一种简单数据压缩形式,将数据运行量(同值相继发生序列)转换成双对(值长度)。双词s表示值sqv例例计序列:aaabbbb序列可压缩为:(a)4,(b)3,(a)2,(b)4使用RLE技术性能压缩法取决于运行长度越长运行量越高压缩比
除上述方法外,实战系统还使用其他压缩方法,如Null抑制法、三角洲编码法、bit打包法[2][4]等
.b.面向行存储器、面向列存储器、压缩
传统数据库使用面向行存储器,全记录作为单一实体存储相对新式方法面向列存储器[5],即列中所有值合并存储,而不是记录存储两种方法都有自身的好处和限制举例说,如果记录从表插入或删除,面向行数据库可以在单盘查找中实现,面向列数据库则需要多盘查找,因为记录列单独存储反之,如果要计算总值,只需访问所需列,而不是整个记录面向行数据库适合事务处理,面向列数据库分析效果更好
数据压缩在查询处理中起着主要作用,因为它会减少磁盘I/O相邻列记录可能有不同的值域当这些值同行存储时,页面上值定位变差面向行存储只有一点点压缩潜力反之,列数据为统一类型,同值可重复出现,面向列数据比对应数据压缩更多产生效果优化列存储事务和新编码压缩程序已成为主动研究领域
列压缩执行的显著贡献由[3]提供内插删除更新并查寻运行编码序列N运行时间子线性图例数将计数索引保留为二叉树实现此目标,树上顺序之对(值长)组成叶节点,内部节点存储子之和根节点存储序列中元素总数论文中显示一个新的索引化方法,称为二叉树索引化,它也使用运行长度编码技术以二叉树表示序列使得有可能执行所有操作-插入、更新和删除,O(logn)时间为n运行

星际搜索树INDEX

A.定义性
整数序列BST索引及其数据库索引定义为二叉树结构,内含结点整数数据库索引保留为主树每个节点链表样本BST索引结构下文显示导论部分提及的整数序列
图像显示
图像显示
伪插入代码操作如下:
插入(root,值,db_index)
图像显示
2)删除
从数据库删除项通过从条目BST节点删除相应的数据库索引实现deetion可在下列假设情景下发生:
时值删除索引不是唯一节点索引:目前BST索引像下文
图像显示
举例说,如果索引:1071节点#######删除,节点###########查找链接索引表后查找索引:1071从链接列表删除索引表示值sq##########删除后BST不变链接节点表############
图像显示
图像显示
3)更新
数据库项更新新值时,必须在BST索引中做相应的修改数据库更新后可能产生两类修改
3.1)当字段新值已作为另一个节点的一部分存在于BST索引中时
在此例中,节点从链接列表删除与旧值相关联,节点插入链表与新值相关联举例说,如果数据库索引1066属性值10更新为6
图像显示
图像显示

结论

列存储极有可能压缩,因为相邻记录相似性论文中,我们建议实现高水平压缩而不损及基本操作性能-插入、更新和删除-使用极长编码技术与BST索引表示法组合运行长度编码提供良好的压缩水平,而BST索引化执行O(logn)插入、删除和查找操作因此,我们认为这是一项重要工作,有助于理解面向列数据库的实际潜力。

引用

  1. 公元前J.阿巴迪A.Boncz和S哈里佐普洛斯面向库系统程序设计师VLDB,2009年
  2. 丹尼尔J阿巴迪塞缪尔RMadden和Miguel C.Ferreira,“整合面向列数据库系统压缩执行”,ProcSIGMOD2006,ACM,pp671-682,2006年
  3. AbhietMohapatra和Michael Genesereth,“加速保持列内编码属性”,IDES12,2012年
  4. 阿里森LHolloway和DavidJDeWitt,“阅读优化数据库深度”,ProcVLDB2008年,Morgan Kaufmann,2008年,pp502513
  5. M.Stonebrakeretal,C-Store:面向列DBMS,ProcVLDB2005年,Morgan Kaufmann2005年,pp553-564