admin 管理员组文章数量: 1184232
2024年4月22日发(作者:asp网站源码是多少)
维普资讯
第27卷
计算机应用
Vo1.27
2007年6月
Computer Applications
June 2007
文章编号:1001—9081(2007)S1一O012—02
非线性结构在RDMS系统中的压缩存储研究
汪建 ,赵海洋 ,叶发忠
(1.重庆邮电大学计算机科学与技术学院,重庆400065;
2.西南大学计算机与信息科学学院,重庆400715;
3.绵阳师范学院计算机科学与工程系,四川绵阳621000;
4.中国科学院成都计算机应用研究所,四川成都610041)
(wangjian@equpt.edu.en)
摘要:关系数据库管理系统(RDMS)是以线形二维数据表作为存储模型,而在科学研究领域
中,许多数据模型并非处于线性状态。讨论的中心问题是如何在RDMS中存放非线性数据结构,使
其在维护海量数据的同时,降低数据冗余,并讨论数据一致性的保证和对比分析存储、检索算法的时
空复杂度。
关键词:数据压缩;非线性数据结构;存储;检索;前缀码
中图分类号:TF311.13 文献标识码:A
0 引言
表1路径表示法关系表
#NO PathName
在计算机科学领域中,数据结构分为线性结构和非线性
1
Root:、
结构两类。线性结构的存储和处理技术比较熟,而非线性结
2
Root:|Dirl|
构因其复杂性和多样性导致其处理困难。
Root:、Filel
树形数据结构(简称:树结构)是一种常见且非常重要的
Root:、File2
非线性结构,其应用非常广泛,是层次模型的典型代表。但是
Root:|Dirl|File3
针对一般树的存储及运算没有通用的算法,通常是将其转换
Root:、Dirl、File4
为二叉树进行处理。
Root:|Dirl|File5
关系数据库是目前海量数据组织处理中最有效的方法,
表2双亲表示法关系表
并且它提供了高效的查询服务。但是在关系数据库应用开发
中,大部分是处理以二维表为基础的线性结构数据。对于非
线性的树形结构,绝大多数关系数据库没作介绍,特别是对树
高和度未知的一般树更是没有统一的解决方案和算法。下面
将分析树结构在关系数据库存储的一般算法,然后提出一种
以前缀码为基础的新型树结构压缩存储算法,最后比较两类
算法的时间复杂度和空间复杂度。
1 传统的树结构存储算法
表中#NO字段是关键字,代表每一个数据项的编号;
1.1路径表示法
NodeName字段记录了每一个目录或文件的名称;FatherNode
一
般树的存储通常是采用
字段标明该节点的父节点在数据库中的编号。
记录路径的方式存放层次结
构。以文件分配表为例,各级
2树结构压缩存储法
目录名和文件名构成了FAT
2
双亲表示法巧妙的删除了树结构中的无关数据,节省了
结构,如图1所示,它是一个典
存储空间。但是由于每个节点与其在关系表中的位置紧密相
型的树形数据结构。
File3 File4 Files
关,无论是在表中插入、删除数据或对数据进行排序都会改变
将其转化为关系数据库结
图1 FAT结构
数据项的位置,从而导致为了维护树结构的正确性付出高昂
构,如表1所示。其中#NO字段是数据库自动编号,且是关键
的开销去调整FatherNode字段的内容。
字;PathName字段记录了每一个目录和文件的完整路径。
因此怎样解决双亲表示法弊端的问题就变成了怎样使
1.2双亲表示法
NodeName字段与物理位置无关的问题。以下是使用前缀码
顾名思义,以回溯的方式组织和记录树结构。该方法以
替代简单的父节点位置的方法:
二维表作为存储基础,适合关系数据库的组织模式。根据上
首先,为了使用前缀编码,必须将一般树结构转化为等价
例可构成双亲表示法的关系表,如表2所示。
的二叉树,具体方法是:建立同层兄弟节点间的联系;保留父
收稿日期:2006—12—14
作者简介:汪建(1978~),男,重庆人,讲师,硕士研究生,主要研究方向:智能信息处理、数据挖掘;赵海阳(1976一),四川绵阳人,讲师,
主要研究方向:网络安全;叶发忠(1976一),男,四川广汉人,工程师,硕士,主要研究方向:软件工程.
维普资讯
6月 汪建等:非线性结构在RDMS系统中的压缩存储研究 13
节点与第一子节点的联系,删除父节点与其他子节点间的联
系,转换算法如图2所示。
然后,采用前缀码编码方式
对转换得到的二叉树进行编码:
每个节点的左分支编码为0,右
2
分支编码为1,如图3所示。
编码后得到树结构压缩存
File3 File4 File5
储法关系表,如表3所示。
J口l
F
表3树结构压缩存储法关系表
Root
醪
F
由于每一个节点的
PrefixCode字段只跟父节点的
PrefixCode字段相关,与记录项
的物理存储位置无关,不会因为
数据的插入删除和排序操作引
发树结构层次混乱,有效地保证
的数据的一致性。
图2一般树转化为二叉树
3 算法比较
Root
3.1空间复杂度
3.1.1路径表示法
假设系统中目录结构是一
棵满n叉树、树深为k且每个节
点宽度为m,则按照常规的矩阵
存储方式:第一层只有1个根节
点,占用的绝对存储空间是m,
第二层含有n个节点,占用的绝
图3前缀码编码表
对存储空间是mn,以此类推第k
层含有n 个节点,占用的绝对存储空间是n ’m。所以整棵
树理论上所占用的绝对存储空间是:∑ni-I m。
事实上以关系模型作为数据组织模式并使用二维表作为
存储载体的数据库中要实现变长字段是不可能的,众多的商
业数据库系统也没有提供相应的解决方案。因此为了能进行
数据存放,必须考虑最“恶劣”的情况。所以路径表示法模型
所使用的存储空间是:km・∑n ’。
3.1.2树结构压缩存储法
针对同一种情况,如果使用改进后的树结构压缩存储法
模型,存放NodeName字段数据消耗的存储空间为:
m・(∑n ’一1)
存储前缀编码消耗的空间为:
(k+m一2)・(∑n王了 ’一1)
所以实际消耗的存储空间是:
(J}+2m一2)・(∑n ’一1)。
所以,采用树结构压缩存储法存储同样的一棵树比路径
表示法节约空间:
m一1)・(J}一2)・(∑n ’一1)十k・m
即是:
(m一1)・(k一2)・( 一1)+k・m
3.2 时间复杂度
3.2.1 路径表示法
假设字符串的长度为£,子串的长度为Z,则在字符串中
搜索子串的匹配算法的平均时间复杂度为:L十一} .z。根据
上例可知路径表示法的记录项长度为: .m(J}为树的深
度)。所以在路径表示法中进行字串匹配的平均时间复杂度
为: 掣
3.2.2 树结构压缩存储法
同样,假设字符串的长度为£,子串的长度为Z,则在字符
串中搜索子串的匹配算法的平均时间内复杂度为:L十一} .
Z。因为压缩树结构存储法记录项长度为:m。所以在树结构压
缩存储法中进行字串匹配的平均时间复杂度为:L .
1。
所以,采用树结构压缩存储法存储同样的一棵树比路径
表示法节约时间: .二=一生
。
4 结语
通过上述的分析不难看出,改进之后的树结构压缩存储
法克服了路径表示法使用冗余存储方式浪费空间过多的缺
点,同时克服了双亲表示法中数据操作困难的缺点。无论是
时间复杂度还是空间复杂度都具有相当的优势。该算法可以
应用到各种需要在关系数据库中存放树形结构数据的场合,
并已在重庆邮电大学的“基于网络的自主学习系统”项目中
得到充分的验证。
参考文献:
【1]SHAFFER CA.A Practical Introduction to Data Structures and A1一
gorithm Analysis[M].Second Edition.Publishing House of Elec—
tronie Industry.2004.
【2]HDDELL M,MOFFAT A.Hybrid prefix codes for practical use
【AJ.Data Compmssion Conference[C].2003,12:77—79.
【3]BASSINO F,CLEMENTJ,SEROUSSI G,et a1.Optimal prefix
codes for some families of two-dimensional geometric distributions
【A].Data Compmssion Conference[C].2006,3:113—122.
【4] MILIDIU RL,MELLO CG.Crypto—compression prefix coding[A].
Data Compression Conference[C].2006,3:1—5.
【5] 严蔚敏,吴伟民.数据结构【MJ.北京:清华大学出版社,2002.
【6]郑相周.DBMS中的树形结构关系数据库【J].微型电脑应用,
1995,11(2):76-78、
【7] 李威,万新光.树形数据顺序存储映象和链式存储映象转换的方
法【J】.哈尔滨电工学院学报,1995,18(I):100一104.
R
O
版权声明:本文标题:非线性结构在RDMS系统中的压缩存储研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713748143a649724.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论