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 


本文标签: 节点 树形 数据 关系数据库 表示法