admin 管理员组文章数量: 1086019
2024年4月22日发(作者:grep以什么或什么开头)
维普资讯
第25卷增刊
2006年6月
重庆交通学 院学报 Vo1.25 Supplement 1
June 2 一 JOURNAL OF CHONGQING JIAOTONG UNIVERS1TY
树形结构在关系数据库中的压缩存储研究木
汪 建 ,方洪鹰
(1.重庆邮电大学计算机科学与技术学院,重庆400065;2.重庆交通大学基础部,重庆400074)
摘要:讨论在关系数据库中压缩存放树形数据结构的方法;数据一致性的保证;分析存储、检索算法的时空复杂度.
关键词:关系数据库;树形数据结构;存储;检索;前缀码
文献标识码:A 文章编号:1001—716X(2006)S1-0155-03 中图分类号:TP311.13
在计算机科学领域中,树形数据结构(简称:树
结构)…是一种常见且非常重要的非线性结构,操
作系统的文件分配表FAT也是以树结构为基础进
行数据组织的.针对一般树(General Tree)的存储及
运算没有通用的算法,通常是将其转换为二叉树进
行处理.一般树与二叉树之间的转换在数据结构中
有专门讨论.
织模式.根据上例可构成双亲表示法的关系表,如
表2.
ROOt
1e2
关系数据库是目前海量数据组织处理中最有效
的方法,并且它提供了高效的查询服务.但是在关系
数据库应用开发中,大部分是处理以二维表为基础
的线性结构数据.对于非线性的树形结构,绝大多数
关系数据库没作介绍,特别是对层数及孩子数未知
的一般树更是没有统一的解决方案和算法.下面将
分析树结构在关系数据库存储的一般算法,然后提
出一种以前缀码(Preifx Code)为基础的新型树结构
Fi1e3 Fi1 e4 Fil e5
图1 FAT结构
表1路径表示法关系
压缩存储算法,最后比较两类算法的时间复杂度和
空间复杂度.
1 传统的树结构存储算法
1.1路径表示法
般树的存储通常是采用记录路径的方式存放
层次结构.以文件分配表为例,各级目录名和文件名
一
构成了FAT结构,如图1,它是一个典型的树形数据
结构.
将其转化为关系数据库结构,如表1.#NO字段
是数据库自动编号,且是关键字;PathName字段记
录了每一个目录和文件的完整路径.
1.2双亲表示法
表中#NO字段是关键字,代表每一个数据项的
编号;NodeName字段记录了每一个目录或文件的名
顾名思义,以回溯的方式组织和记录树结构.该
称;FatherNode字段标明该节点的父节点在数据库
方法以二维表作为存储基础,适合关系数据库的组
中的编号.
收稿日期:2006 04—29
・基金项目:重庆邮电大学教改基金资助(Ejjg04037)
作者简介:汪建(1978一),男,重庆人,讲师,主要研究方向:人工智能、网络安全.
维普资讯
156 重庆交通学院学报 第25卷
2树结构压缩存储法
弊端的问题就变成了怎样使NodeName字段与物理
双亲表示法巧妙的删除了树结构中的无关数
位置无关的问题.本文提出了使用前缀码替代简单
据,节省了存储空间.但是由于每个节点与其在关系
的父节点位置的方法.
首先,为了使用前缀编码,必须将一般树结构转
表中的位置紧密相关,无论是在表中插入、删除数据
建立同层兄弟节点
或对数据进行排序都会改变数据项的位置,从而导
化为等价的二叉树.具体方法是:
保留父节点与第一子节点的联系,删除父
致为了维护树结构的正确性付出高昂的开销去调整
间的联系;
FatherNode字段的内容.因此怎样解决双亲表示法
节点与其它子节点间的联系,转换算法如图2.
图2一般树转化为二叉树
然后,采用前缀码编码方式对转换得到的二叉
3.1.1路径表示法
树进行编码:每个节点的左分支编码为0,右分支编 假设系统中目录结构是一棵满n叉树、树深为
码为1,如图3.编码后得到树结构压缩存储法关系 k且每个节点宽度为rn,则按照常规存储方式:第一
如表3.
层只有1个根节点,占用的绝对存储空间是rn,第二
ROOt
层含有n个节点,占用的绝对存储空间是2nm,以此
类推第k层含有n 个节点,占用的绝对存储空间
是.j}n rn.所以整棵树理论上所占用的绝对存储空
间是:∑in rn.
事实上以关系模型作为数据组织模式并使用二
维表作为存储载体的数据库中要实现变长字段是不
可能的,众多的商业数据库系统也没有提供相应的
解决方案.因此为了能进行数据存放,必须考虑最
图3前缀码编码
“恶劣”的情况.所以路径表示法模型所使用的存储
表3树结构压缩存储法
空间是:kmg∑n 1.
3.1.2树结构压缩存储法
针对同一种情况,如果使用改进后的树结构压
缩存储法模型,存放NodeName字段数据消耗的存
I
储空间为:rag(∑n 一1),存储前缀编码消耗的空
l I
间为:(k+rn一2)g(.∑n 一1),所以实际消耗的存
I
由于每一个节点的Pref=Code字段只跟父节点
储空间是:(k+2m-2)g(∑n 一1).
的PrefixCode字段相关,与记录项的物理存储位置
所以,采用树结构压缩存储法存储同样的一棵
无关,不会因为数据的插入删除和排序操作引发树
树比路径表示法节约空间:(rn—I)g(k一2)g
I
结构层次混乱,有效地保证的数据的一致性.
(∑n 一1)+kgm,即是:(rn一1)g(k一1)g
3各种存储算法的比较
(n /(1一n)一1)+ grn.
3.1空间复杂度
3.2时间复杂度
维普资讯
增刊 汪建,等:树形结构在关系数据库中的压缩存储研究 157
3.2.1路径表示法
在关系数据库中存放树形结构数据的场合,并已在
假设字符串的长度为£,子串的长度为f,则在
重庆邮电大学的“基于网络的自主学习系统”项目
字符串中搜索子串的匹配算法的平均时间复杂度
中得到充分的验证.
为:(1+L—1)/2g1.根据上例可知路径表示法的记
录项长度为:(1+k)/2gm(k为树的深度).所以在
参考文献:
路径表示法中进行字串匹配的平均时间复杂度为:
[1] CLIFFORD A,SHAFFER.A Practical Introduction to
[2+(1+k)m一21]/4g1.
Data Stmct・uz℃s and Algorithm Analysis(Second
3.2.2树结构压缩存储法
Ediiton)[M].Publishing House of Electronic Industry.
同样,假设字符串的长度为£,子串的长度为f,
2004:257-283.
则在字符串中搜索子串的匹配算法的平均时间内复
[2]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版
杂度为:(1+L—1)/2g1.因为压缩树结构存储法记
社,2002.
录项长度为: 所以在树结构压缩存储法中进行字
[3] 王建国,郭建波.BBS树形结构存储和显示的实现
[J].唐山学院学报,2003.(12):77.79.
串匹配的平均时间复杂度为:(1+m—O/2gZ.
[4]郑相周.DBMS中的树形结构关系数据库[J].微型电
所以,采用树结构压缩存储法存储同样的一棵
脑应用,1995,(2):76-78.
树比路径表示法节约时间:[(1一jc)mg1]/4.
[5]詹速汉.关系数据库表存储树形结构的方法[J].韩山
4 结 论
师范学院学报,2003,(9):116・119.
通过上述的分析不难看出,改进之后的树结构
[6] 王 薇.如何展开存储在数据库中的树形数据结构
压缩存储法克服了路径表示法使用冗余存储方式浪
[J].信息技术与信息化,2005,(1):31-33.
费空间过多的缺点,同时克服了双亲表示法中数据
[7]李威,万新光.树形数据顺序存储映象和链式存储
映象转换的方法[J].哈尔滨:哈尔滨电工学院学报,
移动困难的缺点.无论是时间复杂度还是空间复杂
1995,(3):100.104.
度都具有相当的优势.该算法可以应用到各种需要
A research to compress and store general tree in RDMS
WANG Jiang .-.FANG Hong.ying。
(1,Cofiege of Computer Science and Technology,Chongqing University of Posts and Telecommunicatiom,Chongqing 4.00065,China;
2.Fundamental Department,Chongqing Jiaotong Universiyt,Chongqing 400074,China)
Abstract:The relational database system basing on tWO—dimensional table doesnt support the tree iftfy;therefore a utiliyt method will
be presented to compress and a tree with RDMS is stored in this paper.Further its consistency,time complexiyt and space complexity
wiU be discussed.
Key words:RDMS;general tree;storage;search;prefix code
版权声明:本文标题:树形结构在关系数据库中的压缩存储研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1713748160a649725.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论