咨询热线

HASHKFK

BETHASH新闻资讯
您当前的位置: 首页 > BETHASH新闻资讯 > BETHASH新闻
BETHASH玩法 BETHASH新闻

【doc】HASH编BETHASH码数据压缩

时间:2024-11-05 18:11:48
更多
  

  BETHASH官方网站(访问: hash.cyou 领取999USDT)

【doc】HASH编BETHASH码数据压缩

  HASH编码数据压缩HASH编码数据压缩谭强明(重庆大学)DATAC0MPRESS10NWITHHASHC0DESTANI^NGMIN姐%u∞扣£)AbstractInmanydatabaseapplication.datahave如becompressedbeforesLoring.DatacompressiontechnjoueswishlessowrheadandbettorspacesavingaTe~suallyexpected.Thispaperglv稍adatacompressiont.ehⅡIqⅡebywhichthezeofafilemaybereduood~hroughsubI七uincodesfor扎sfieldvalues.Thecodesarebhe晰resonding]oca~ionsofthevalne~iahash~ab]ethatiscomprisedofallvaluesofmefleO,d.Thiscompress/oniseffectiveformanyapplieations.Thecos6ofoo~i]g/d~odmgj吕equaltothatanac,e艇IiIor~LrchJngthehashtable.The血plementa-t的ntechniqueasacompressiontoolindatabasemanagementsystemfordatastoreandthealgorithmsofcodlngldecodingaredisoussed.摘要在数据库应用中常要求数据压缩存贮.所采用的压缩技术应当有较小的系统开销和期望的压缩效果.文章给出了一种用数据在ha吕h表的位置作为其编码来取代组织在文件中的诙数据本身,以减少文件的数据存贮量的压缩方法.对于文件的域满足域长较大并且域值个数小于总记录教或者域长大干域值的平均长度时这种编码压缩方法有效;压缩的编码/解码成为对hash表一次查找或直接访问的开销.文章也讨论了该方法作为一种数据库管理系统的数据压缩存贮工具的实现技术,以及编码和解码的算法.一引言许多微机数据库应用系统其数据存贮量往往超过计算机有限的存贮空间(硬盘).解决这一问题可有下列途径:.合理的数据库设计,减少数据冗余.?把不常用的数据脱机,侧如保存在软盘上在要求使用这些数据时才装入.奉文1987年4月日收到.?2??增加新的硬盘.?采用数据压缩技术.考虑使用何种途径来解决存贮空间不足的问题视具体的应用情况而定.但对数彝进行压缩存贮无疑是优先选择的一种既经济又有效的途径.数据压缩方法多种多样依赖予应用的不同,各种方法的压缩效果以及对系统效率的影响也不同.一般的无论采用何种压缩技术,系统效率的降低是不可避免的设是系统所允许的最大响应时间,.是期望数据压缩率(允许数据存贮的空间与数据存贮量之比),那么所选用的数据压缩技术应当满足,其数据压缩率≤m并且压缩后系统的响应时间T≤To.如果数据压缩不能满足这一要求,就只有另辟途径.下列的情况在设计数据库应用系统或其它数据处理软件时常可见到.设是一数据文件(关系),其记录数为.有这祥的域(属性)满足域长3,域值个数MⅣ显然,可对该域的值进行某种编码(编码长_,),然后用此编码替换对应的域值,以获得的压缩存贮.对的编码存贮应对用户透明,用户在使用时应感不到有任何编码的存在.因此在存贮数据时除了对数据进行编码外在输出时还应进行解码,即把编码转换成原有的数据形式.显然这会产生系统的额外开销,增加系统的响应时间.对文件压缩存贮所获得的好处能否_抵偿由此而引起的对系统效率的损失,什么情况下才能有期望的压缩放果,压缩后系统的响应时间是否超过允许的限度——这成为这些应用系统设计者决定剥文件进行压缩存贮时先要考虑的问题.hash编码数据压缩的基本思想是把文件中要压缩的数据放入一hash表中,用它们在该表中的存放位置作为对应的编码去取代文件中相应数据的存在以减少文纠:的存贮量.本文讨论了该压缩方法在数据库管理系统中的实现技术和编码解码算法,分析了它的压缩效果和对系统响应时间的影响.该方法编码解码算法简单速度快是一种较好的压缩数据存贮的方法.二,压缩方法设有一有限集台.;,h是到整数集台[1:脚]上的hash函数,H[1:盥】是一存贮空间,将每个七按下列方法存贮后所在且中的位置称为的hash编码:①计算=h(as)七[1:jIf].②若H()为空,则日(tb);否则在日中任找一空单元其位置为1Tt,,H(m)仁$.我们把已存入的存贮空间日称为在上的hash表.显然,在日中,每个都有难一确定的位置,而每个位置也有一对应的,亦即存在一个由hash表月确定的由到£1:Ⅳ]的置换f龅蜘…‰)这里嘶是在且中的位置或日hash编码.我们记*=…/()为,21在日上编码,而一()一日)为在上解码.一般的,对是不唯一的,随着生成hash表时取的顺序不同而变化,并且()≠(∞).但若^(茹)在[1:皿]上均匀分布,即^(为到[1:]韵一一对应函数,刚有唯一的,并且$iF(as)一h(as)o船?设数据文件的域,I的域值空问为n日是依赖于hash函数日的hash表,为由丑t确定的到fl:世]的置换,将的每个值替换成巩()的过程称为对曰在,I上的hash编码压缩.压缩后的数据文件记为%(曰),压缩后的域记为(,),其域值空间为[1:皿].对多个域进行hash编码压缩是可能的同样有玎(.1((--()…))称为对的hash编码压缩...~....一…~….三,压缩率这节讨论用hash编码对数据压缩存贮的效果.我们有如下的定义:期望压缩率:O0一K这里是文件露的数据量(bye),是期望存贮的空间大小.在要求数据压缩的场台,有0o-01l《S‰.实际压缩率:口一8(m/8n这里—.是对压缩后数据的存贮量它等于()的大小与所增加的hash表大小之和与oo之阃关系为岫.对域的压缩率:一口一秸Im这里.rm是对在,{上压缩后的数据存贮最,在^上进行有效的数据压缩要求l.设的域长为;为,l值的平均长度,P为编码长度Ⅳ为记录的总数工为每个记录的长度显然O-i—N 丁 (L-t,+P)+MJ,一1 一 警+甏 要使口.l,则有下列不等式成立: M,—P Ⅳf 一 般有lI—t,使得(1 一P)/t.1 因此皿.Ⅳ就有1.若;I 即使皿一N 时, 也有矾1. 对于..当Ⅳ》皿t 并且时,近似有? 一一 半 周此,在Ⅳ》Md 和Ll{时,仅与相关(假定五不变),即越大压缩效果越好. 下面分析与的关系.设对曰的个域进行了hash 编码压缩因此有 Ⅳ(工一∑(1I—P))+∑五 一——百—上L 一 奎Ⅳ(一;+P)+皇ffI 一一I)NL=1一1 一 壹生一+l 壹k+l 五.一 ? 牙9? 要求蛳.就有 ∑吼oro+一1 四,压缩的实现 1.hash 表存贮结构 在使用了 hh 编码压缩技术的系统中,ha 出表作为相联数据文件的一部分,也应作 为 一 磁盘文件来存贮.由于操作系统访盘时间远大于内存数据的存取时间,因此,评价 文件的 访问效率将以访盘的次数为标准.考虑到操作系统读写文件的特点,hh 表的文件 结构如 图l 所示.文件分为个组,每个组由个块组成(块的大小为操作系统一个磁盘读写 块的尺寸).hash 函数把每个压缩数据映射到唯一的组;在每个组内顺序存放当一 个组存满之后,文件在空闲存贮区获取一溢出组,并把放入这个溢出组内.文件中 每个组 最后两字节g-pit 作为指向溢出组的指针. hash表可具有定长记录和变长记录两种格式.变长记录除了存放m本身外,前面还 加 一 记录长度域.变长记录hash 表对于压缩属性值长度变化范围大的域十分有效. 图1hash 表文件结构 2.编码解码算法 如此实现的hash 表文件结构决定了的hash 编码是一二元组(gB),其q,是∞所 在的螬e 是其为该组的第个记录.对编码即查找在ba8h 表的位置().其算法 如下: OC)DIKG(∞,0) (1)一矗(),B 一1. : (2)置读指针到第组. (3)读一记录如果有一,退出. (4)如果为空,若hash 表为变长记录格式,计算的长度,形成的变长记录写入; 否则为一定长记录写入,退出. (5,B 一8+i. (6)任何时候若组结束出现.由自由存贮区取一溢出组,置g 和溢出组指针—为溢 出组的组号,否则一p 缸. (7)置读指针到第组,转(3). 对的解码即由其ba 编码(B)查找,其算法为: DEGODING(e) (1)如果为定长记录则直接置读指针到第组的第e 个记录处;否则 ?30.. (2)若al 重复做:读记录长度,由此置读指针到下一记录并且8 一e—l. (3)读记录. 删除 hash 裴中的记录使同一组或相连溢出组的在该记录后面的所有记录向前移 动修 改后的记录放入末尾.UPDATE(.g 口)是按编码修改的算法: UPDA1_E(g,B) (1)执行DECODING,8)获得和∞记录的开始位置. (2)重复做:置读指针到8=+记录长度并读当前记录若为空则转(3).否则拷 贝到如=∞;任何时候若组结束出现置读指针到g-p~r 指向的组. (3)删除指向的记录.若有;g-pr,回收溢出组. 删除将使以后的记录位置均产生改变,亦即它们的hash 编码发生改变.为J 保 证数据的一致性,必须对与 hash 表相联的数据文件中对应的 hash 编码做相应修 改. 设 hash 表中每个组的平均记录数为麒那么由前面给出的算法可知对于编码读记 录 11 的平均次数为寺(+1);解码定长记录为 1 变长记录也为寺(+1).删除为解码的成本 加 ■ 上平均寺(.B+1)读写次数(没有考虑对相联数据文件的改动). R.实现的方法 在数据库管理系统中实现haah 编码压缩技术很简单.在操作系统和数据库管理系 统 之间加一编码解码界面即可如图 2 所示.该界 1 丽的功能是完成对由数据库读出 数据的解 码以及写入数据库前对数据的编码. 编码和解码操作本身是透明的,并不引起任何 用户应用程序的改变.因为施加在压缩文件(R) 上的任何操作在解码/编码后,完全与施加在未压缩 文件上相同.hash 编码压缩技术在数据库管理 系统中实现,将使该管理系统增加数据压缩的功能. 下列的命令提供用户压缩数据,以及维护hash 表使 用.. e文件,属性名,hash 表名,, 格式,选择,装入内存{,自编ha 血函数入口} 对文件的指定属性进行数据压缩.这里hash 一.富 图2hetsh 绷码压纬在数据库 管理系统_1 实现 表名生成ha8h 表的文件名是hash 表的组划分数,是每组块数. 《格式说明 hash 表是定长或是变长记录.选择给出是否打印输出 hash 表中记录的分 布,空间的利 用率等信息.装入内存规定是否在读写相联数据文件时把整个 hash 表放 入内存.自编 hash 函数入口可缺省,缺省由系统定义的hash 函数计算. inshfhash 表名,值串. 在hash 袭中增加数据. u-bf(bash 表名,值掺改值- 把haElll 表中的值修改成修改值. olr-hf文件名属性名,(选择.

地址:广东省广州市   电话:HASHKFK
传真:0896-98589990
ICP备案编号:
Copyright © 2012-2024 BETHASH竞技游戏工作室有限公司 版权所有