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 


本文标签: 数据 树结构 表示法 节点