CN1307584C - 一种用二维表实现的树的存储、访问的方法 - Google Patents

一种用二维表实现的树的存储、访问的方法 Download PDF

Info

Publication number
CN1307584C
CN1307584C CNB2003101136602A CN200310113660A CN1307584C CN 1307584 C CN1307584 C CN 1307584C CN B2003101136602 A CNB2003101136602 A CN B2003101136602A CN 200310113660 A CN200310113660 A CN 200310113660A CN 1307584 C CN1307584 C CN 1307584C
Authority
CN
China
Prior art keywords
data
node
record
tree
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2003101136602A
Other languages
English (en)
Other versions
CN1545048A (zh
Inventor
郑宇�
蔡辉
业绪进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2003101136602A priority Critical patent/CN1307584C/zh
Publication of CN1545048A publication Critical patent/CN1545048A/zh
Application granted granted Critical
Publication of CN1307584C publication Critical patent/CN1307584C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种用二维表实现的树的存储、访问的方法,包括:(1)创建二维表,包括:容量配置表,用于描述系统中表的容量;树结构关系表,用于描述树结构的关系;数个数据存储区表,用于记录树结构中的节点属性值;(2)加载数据并对数据进行维护,包括增加、删除、修改和查找数据,以及由此引起的相关操作;(3)对数据进行管理,包括数据的加载、同步、数据更改通知和观察部分。本发明应用于通讯领域,在配置数据灵活性、缓存机制简化等方面取得了进步,达到了灵活配置数据并可以最大化使用面向对象数据库原有机制的效果,提高了处理效率和处理的灵活性和稳定性。

Description

一种用二维表实现的树的存储、访问的方法
技术领域
本发明涉及一种树状数据结构的配置、存储方法,尤其涉及通讯领域的协议栈数据配置、存储和管理。包括对现有的路由数据配置和在3G产品中采用的IP承载配置,象WCDMA的RNC,MSC-S,MGW,SGSN,GGSN等,CDMA2000中PCF,PDSN等网元的基于IP协议栈承载的配置。
背景技术
现有的关于协议承载配置的数据一般有两种主要的存储方式:
1.基于链表的树状结构+连续缓冲区的实现方式:请参照中国专利文献CN 00125204.6号本方式由树形索引结构(如图1)和单一的缓冲区组成。树节点指示该节点的配置类型、数据长度、数据缓冲区地址等属性。其中数据缓冲区地址指示了该配置参数在缓冲区的位置,数据长度指示该参数在缓冲区中占用的连续空间大小。这样有几个缺点:(1)对配置参数表使用现有的面向对象的数据库的各种约束机制以及操作非常困难;(2)在较长时间内,如果对配置表进行增、删操作过多,会造成缓冲区的碎片。(3)对于树结构节点数目和数据缓冲区的容量和大小不可以灵活配置。不可以实现容量的动态升级。
2.纯粹用关系表实现方式:这种方式只适合一些具有很少的协议数据配置的系统,并且由于在表设计时要关心到具体的数据属性,协议数据配置的可扩充性较差,因为协议数据分布包括多个层次,属于应用的协议数据配置需求变化(属于关系表的设计变化)较快,所以使用的也不是很好。
发明内容
本发明要解决的技术问题是克服现有技术中的协议配置数据管理的局限性,提出了一种结合二维表实现树结构的快速存储、访问和管理的方法。
本发明中的二维表包括容量表、容量表索引、树形结构索引表、多个二维缓冲数据表以及各种状态表(这些状态表描述了各种表当前的占用和空闲状态)。
本发明用二维表实现的树的存储、访问的方法,包括以下步骤:
(1)创建二维表,包括:容量配置表,用于描述系统中表的容量;树结构关系表,用于描述树结构的关系;数个数据存储区表,用于记录树结构中的节点属性值;
(2)加载数据并对数据进行维护,包括增加、删除、修改和查找数据,以及由此引起的相关操作;
(3)对数据进行管理,包括数据的加载、同步、数据更改通知和观察部分。
所述的容量配置表字段属性如下表所示:
   字段名   类型              解释
wModule  WORD 驻留数据的模块号
dwNetType  DWORD 驻留数据的网元类型
dwModuletype  DWORD 驻留数据的模块类型
ucInfoType  BYTE 记录类型0:节点记录>0:数据缓冲区编号
wTreeNodeNum  WORD 树节点最大个数
wBufferSize  WORD 记录的数据缓冲区的大小
wBufferNum  WORD 该数据区大小的缓冲个数
所述的树结构关系表字段属性如下表所示:
  字段名   类型              解释
FATHER  WORD 父节点的标志字段
NODENAME  LPSTR 关系表中记录的节点名
NODEINDEX  WORD 记录了当前节点在关系表中的位置标志
DATATYPE  BYTE 属性字段值类型
DATALEN  WORD 属性字段值的长度
DATAHANDLE  DWORD 属性字段值所存放的缓冲区表的标志
DATAMARK  WORD 节点数据存放在相应缓冲区中的位置
ISDUMMY  BYTE 记录节点是否虚节点
LCHILD  WORD 左孩子节点记录位置
RCHILD  WORD 右孩子节点记录位置
所述的数据存储区表字段属性如下表所示:
   字段名   类型            解释
Nodeindex  WORD16 数据缓冲区中记录节点标志
Nodevalue  LPSTR 数据缓冲区中记录内容
所述的用二维表实现的树的存储、访问的方法,还包括创建容量表,创建容量索引数据;加载容量数据,加载索引。
所述的用二维表实现的树的存储、访问的方法,还包括创建树结构表,创建树结构节点索引数据;创建数据存储区表,为各个数据存储区创建索引字段;加载树结构和数据存储区的数据,加载各个索引字段。
所述的增加的步骤包括:
(1)同步或异步发送增加请求消息;
(2)接收进程根据请求消息中的参数查找父节点记录标志;如果不存在父节点,在系统中自动增加一个虚的父节点记录;
(3)查看要增加的节点记录是否已经存在;已经存在,返回错误;
(4)在树结构的二维表中增加一个记录,在记录中描述其父节点记录或兄弟节点记录的相关信息,同时更改相关的表项;
(5)根据要增加的节点记录的节点属性值的类型和长度,选择不同的数据缓冲区,在选中的数据缓冲区表中申请一个空闲的记录空间存放当前的数据;
(6)同步返回操作结果。
所述的删除的步骤包括:
(1)同步或异步发送删除请求消息;
(2)接收进程根据请求消息中的参数查找节点记录标志;
(3)查看要删除的节点记录是否存在;不存在,返回错误;
(4)删除找到的节点,释放节点对应的数据缓冲区资源;
(5)在关系表中查询该节点是否有孩子节点记录,循环删除所有的孩子及其下的节点记录;
(6)循环判断当前节点的父节点记录有没有存在的必要,没有的话删除该节点记录。
(7)同步返回操作结果;
所述的修改的步骤包括:
(1)同步或异步发送修改数据请求消息;
(2)接收进程根据请求消息中的参数查找父节点记录标志;
(3)查看要修改的节点记录是否已经存在;已经存在,修改相应的属性值,主要是数据缓冲区表的数据维护,可能的操作包括:修改原来的数据缓冲区中的内容(以前的数据和新的数据在同一个缓冲区中时);从原来的数据缓冲区中删除记录项(新的数据不再需要在缓冲区中存放,释放以前的记录缓冲区数据);新申请一个数据缓冲区增加属性(以前的数据没有存放在缓冲区表中,现在需要存放在缓冲区表中);删除原来的数据表项,增加新的数据表项(以前的数据和新的数据长度要求在不同的缓冲区中)四种操作;
(4)同步返回结果
所述的查找包括简单查找和插入查找,简单查找是按照树结构关系在表中一层一层记录地查找,直接返回查找的结果;插入查找是从根节点开始查找,遇到不存在的节点,插入记录,一直到最终的记录节点位置。
所述数据的加载采用二维表记录加载方式;数据的同步同样采用表记录的增加和删除来实现,在数据的加载和同步的过程中,树结构数据和缓冲区中的数据相对独立,同样在加载、同步数据缓冲区中的数据时,只负责标志出本数据缓冲区的标志字段。
所述数据的更改通知是以一个完整的事务应用为单位进行数据的更改通知,该事务定义就是一次协议数据的修改,事务完成后再进行相关数据的更改通知。
所述数据的观察采用两种方式:(1)类似于二维表的记录显示方式;(2)采用树型的结构显示协议数据,将存储在内模式中的数据转化成数据的逻辑模式显示给应用用户查看。
采用本发明所述方法,与现有技术相比,在配置数据灵活性、缓存机制简化等方面取得了进步,达到了灵活配置数据并可以最大化使用面向对象数据库原有机制的效果,提高了处理效率和处理的灵活性和稳定性。体现在以下几个方面:
(1)结合了关系表和树结构的优点;
一方面配置参数使用了现有的面向对象的数据库的各种约束机制,可以按记录来进行控制,包括表记录的预删除、预增加、删除、增加等触发器的编写,使得应用场合更加广泛,操作容易;
另一方面摆脱了关系表和应用的相关性,方便了应用数据配置的可扩充性。
(2)对配置表的操作,不会造成缓冲区的碎片。系统在启动时会根据容量表中分配的数据计算出各个数据缓冲区表的大小(在系统启动后,这是一个定值),在每一个数据缓冲区表中存放的数据长度是固定大小,基于表的操作就是基于表中记录的操作,一个节点记录的数据只会保存在一个缓冲表记录中,释放节点记录也会释放该缓冲表中对应的记录,记录和记录之间是紧凑的,不会产生碎片。这是一个牺牲内存(静态分配内存)来实现避免内存碎片的方法。采用了该方法,可以很好地提高系统长期运行的稳定性。
(3)容量和大小可以灵活配置,可以做到版本不升级实现容量的升级,很好的提高了系统的可维护性。由于在3G产品中,运用到IP承载设计的网元很多,如果容量不能灵活配置,各个网元的配置势必有很大差别,这些差别体现在代码中对系统的稳定性和可维护性都有一定的影响。采用容量表来配置网元容量将这种网元的差别屏蔽在用户配置上,系统比较灵活;另外,对于一个固定网元,根据用户需要可能会要求容量的升级,采用了该方法后,可以做到用户配置增加容量而不用更换软件版本。
附图说明
图1是一个现有树状结构示意图;
图2是图1的树状结构转换后对应的二叉树示意图;
图3是该树状结构在关系表中的存储方式及其对应的数据存储位置示意图;
图4是在关系表中增加一个节点数据的流程;
图5是在关系表中删除一个节点及其相关的节点的流程;
图6是在关系表中删除一个节点数据的流程;
图7是在关系表中修改一个节点数据的流程;
图8是在关系表中查询一个节点和节点值的流程;
图9是在关系表中查询一个节点的流程;
图10是在关系表中查询并追加节点的流程。
具体实施方式
在附图中,各英文单词的含义如下:
DWORD:表示一个数据是整数数据类型;
STREAM:表示一个字符串码流格式的数据类型;
Fathercode:表示当前要查找的起始节点位置;
Lplocate:表示从起始节点位置到要操作节点的全路径。
另外,说明书中缩略语意义如下:
GPRS:General Packet Radio System,无线分组系统
RNC:Radio NetWork Controller,无线网络控制
MSC-S:Mobile Switching Center-SERVER,移动交换中心一服务端
MGW:Media Gateway,媒体网关
SGSN:Serving GPRS Support Node,GPRS支持服务节点
GGSN:Gateway GPRS Support Node,GPRS支持网关节点
PCF:Packet Control Function,分组控制功能
PDSN:Packet Data Service Node,分组数据服务节点
本发明所述协议数据配置的方法如下:
一.数据结构描述:
按功能在系统中创建了三种二维表:一个容量配置表描述了系统中表的容量;一个树结构关系表描述了树结构的关系;数个数据存储区表记录树结构中的节点属性值。
1.容量配置表字段属性如表一所示:
表一.描述了系统中容量表中的各个字段及其意义
   字段名   类型             解释
wModule  WORD 驻留数据的模块号
dwNetType  DWORD 驻留数据的网元类型
dwModuletype  DWORD 驻留数据的模块类型
ucInfoType  BYTE 记录类型0:节点记录>0:数据缓冲区编号
wTreeNodeNum  WORD 树节点最大个数
wBufferSize  WORD 记录的数据缓冲区的大小
wBufferNum  WORD 该数据区大小的缓冲个数
表一中各个字段的说明:
前三个字段wModule,dwNetype,dwModuletype是通用的字段,可以用来区分多模块的容量配置
ucInfoType=0时:表示该记录描述的是树结构节点容量配置关系,紧跟着wTreeNodeNum字段描述了系统中树结构节点的总的个数(容量);其它字段无效
ucInfoType>0时:表示该记录描述的是相应的数据缓冲区的容量配置关系,wTreeNodeNum字段无效,wBufferSize描述了该数据缓冲区每一个记录的大小,wBufferNum描述了该数据缓冲区记录的个数;
2.树结构字段属性如表二所示:
表二.描述了系统中树状关系表中的各个字段及其记录间的相互关系
   字段名   类型             解释
FATHER  WORD 父节点的标志字段
NODENAME  LPSTR 关系表中记录的节点名
NODEINDEX  WORD 记录了当前节点在关系表中的位置标志
DATATYPE  BYTE 属性字段值类型
DATALEN  WORD 属性字段值的长度
DATAHANDLE  DWORD 属性字段值所存放的缓冲区表的标志
DATAMARK  WORD 节点数据存放在相应缓冲区中的位置
ISDUMMY  BYTE 记录节点是否虚节点
LCHILD  WORD 左孩子节点记录位置
RCHILD  WORD 右孩子节点记录位置
结构说明:
本发明针对图1所示现有的树形索引结构,通过演化转变成图2所示二叉树索引结构,然后进一步的处理变成图3所示关系表索引结构,图2只是这个完整过程中的一个演进阶段,是为了的系统的完整性而增加,增加该图便于对整个过程的认识,在本发明中不做赘述。
从图3中可以看到,NODEINDEX(节点标志)字段在表中的值是唯一的,用该字段可以做为该表的唯一主索引。
3.数据存储区表字段属性如表三所示:
表三.描述了系统中各个数据缓冲区的存储方式
   字段名   类型            解释
Nodeindex  WORD16 数据缓冲区中记录节点标志
Nodevalue  LPSTR 数据缓冲区中记录内容
结构说明:
Nodeindex:标志了该数据缓冲区位置;从图3中可以看到,该字段在表中的值是唯一的,用该字段可以做为该表的唯一主索引。
Nodevalue:一个可变数组,长度由R_CONST表中的记录来确定;可以实现一个可变长度和可变容量的数据缓冲区。
二.系统的运行
第一步:二维表的创建,数据加载
本步骤又可以包括下列步骤:
1.创建容量表,创建容量索引数据;
2.加载容量数据,加载索引;
根据容量表中的数据进行如下的操作:
创建树结构表,创建树结构节点索引数据;
创建数据存储区表,为各个数据存储区创建索引字段;
加载树结构和数据存储区的数据,加载各个索引字段。
至此,整个内存数据表创建,加载完毕;可以进行以下的操作。
第二步.树节点的维护
加载完数据,可以对表中的树结构进行维护,包括对表中记录的增、删、改、查,以及由此引起的相关的一系列操作,比如:删除一个表中的树的记录节点引起相应的孩子节点记录项的删除,同时会删除数据存储区中的内容。
增加一个数据节点的过程参考附图4中的步骤:
1.同步(或异步)发送增加请求消息;
2.接收进程根据请求消息中的参数查找父节点记录标志(如果不存在父节点,在系统中自动增加一个虚的父节点记录。)
3.查看要增加的节点记录是否已经存在(已经存在,返回错误);
4.在树结构的二维表中增加一个记录,在记录中描述其父节点记录或兄弟节点记录的相关信息,同时更改相关的表项,(如果是父节点的第一个子孩子,要修改当前记录的父节点字段和父节点记录的左孩子节点字段;否则的话只要修改当前记录前一个兄弟记录的右孩子字段);
5.根据要增加的节点记录的节点属性值的类型和长度,选择不同的数据缓冲区,在选中的数据缓冲区表中申请一个记录空间存放当前的数据。
6.同步返回操作结果;
删除一个数据节点的过程参考附图5,附图6中的步骤:
1.同步(或异步)发送删除请求消息;
2.接收进程根据请求消息中的参数查找节点记录标志;
3.查看要删除的节点记录是否存在(不存在,返回错误);
4.删除找到的节点,删除节点对应的数据缓冲区中的数据;
5.在关系表中查询该节点是否有孩子节点记录,循环删除所有的孩子及其下的节点记录;
6.循环判断当前节点的父节点记录有没有存在的必要,没有的话删除该节点记录。(节点是虚节点记录类型并且没有孩子记录表示当前的记录没有存在的必要,可以删除之,但第一层根节点除外)
7.同步返回操作结果;
修改一个数据节点的过程参考附图7中的步骤:
1.同步(或异步)发送修改数据请求消息;
2.接收进程根据请求消息中的参数查找父节点记录标志(如果不存在父节点记录,返回操作失败及失败原因。)
3.查看要修改的节点记录是否已经存在(已经存在,修改相应的属性值,主要是数据缓冲区表的数据维护,可能的操作包括:修改原来的数据缓冲区中的内容;从原来的数据缓冲区中删除记录项;新申请一个数据缓冲区增加属性;删除原来的数据表项,增加新的数据表项等四种操作。如果该节点记录不存在,按照增加节点记录的方式在当前的节点下新生成一个节点记录);
4.同步返回结果
查看一个表数据节点值的过程参考图8中的步骤:
1.同步(或异步)发送查询数据请求消息;
2.接收进程根据请求消息中的参数查找节点记录标志(如果不存在节点记录,返回操作失败及失败原因。)
3.根据得到的节点记录数据项中的存储数据属性和长度判断该节点数据存放的数据缓冲区及其在缓冲区中的位置,然后到相应的缓冲区中取出数据。
4.同步返回结果
在上面的描述中,每一个操作都需要对表中的记录定位,所以查询操作的效率比较重要,系统中为每一个表创建了HASH索引,采用HASH和名字比较的方法,提高了查找效率。根据系统中的需求不同,我们提供了两种方式的查找:简单查找和插入查找。
简单查找:用户的操作都会引发简单查找的动作,其目的是为了得到要操作对象的节点记录。
简单查找一个数据节点的过程参考附图9中的步骤:
1.根据输入路径第一个字段在表中记录的根节点下查找匹配的记录;
2.如果没有找到记录则返回失败,否则路径去掉第一个字段,如果路径为空,则返回找到的表记录的节点标志;
3.循环1,2操作;
插入查找:用户的增加一个节点操作可能会引起插入查找的过程,其目的是为了在简单查找的基础上,如果一个对象不存在,不再返回失败,而是增加一个虚路径。
插入查找一个数据节点的过程参考附图10中的步骤:
1.根据输入路径第一个字段在表中记录的根节点下查找匹配的记录;
2.如果没有找到记录则跳到4执行,否则路径去掉第一个字段,如果路径为空,则返回找到的表记录的节点标志;
3.循环1,2操作;
4.根据路径中第一个字段在表中增加相应的虚节点;路径去掉第一个字段
5.循环执行4,一直到路径为空;
第三步.数据的管理
数据的管理包括数据的加载、同步、数据更改通知和观察部分。
在通讯领域中,由于采用了分布处理,并且为了提高系统的稳定性,很多单板采用1+1热备份方式,因此数据的加载、同步的处理显得更加复杂、重要。
协议数据物理存储结构以表方式组织,因此数据的加载采用二维表记录加载方式;数据的同步同样采用表记录的增加和删除来实现,在行数据的加载和同步的过程,不关心具体的记录数据的相互依赖关系。树结构数据和缓冲区中的数据相对独立,比如在加载、同步如附图1所示的数据时,可以按照附图3所示的记录位置来存放数据,也可以按实际运行中杂乱的位置存放数据,此时不关心具体的数据存放的数据缓冲区中的位置,只在表中记录好缓冲区中的标志字段DATAHANDLE和DATAMARK,同样在加载、同步数据缓冲区中的数据时也不用关心其对应的树结构中的节点位置,只负责标志出本数据缓冲区的标志字段Nodeindex,这两种表的关系只在系统运行时通过上面的三个字段和缓冲区在系统中的句柄来对应起来。
协议的数据更改通知主要是指协议数据成功修改后需要通知其他的应用;由于在协议数据中增加一个节点,其存储的二维表中可能会增加或删除多条记录,因此不能以传统的二维表记录的增加和删除触发数据的通知,而以一个完整的事务应用为单位进行数据的更改通知,该事务定义就是一次协议数据的修改,事务完成后再进行相关数据的更改通知。
协议数据的观察可以采用两种方式:(1)类似于二维表的记录显示方式,该方式对具体的协议数据含义观察不直观,但对于数据库专业人员可以直观的查看协议数据内模式的存储结构,便于表容量的调整,以及一些索引的组织。(2)采用树型的结构显示协议数据,将存储在内模式中的数据转化成数据的逻辑模式显示给应用用户查看。

Claims (13)

1.一种用二维表实现的树的存储、访问的方法,其特征在于,包括:
步骤一:创建二维表,包括:容量配置表,用于描述系统中表的容量;树结构关系表,用于描述树结构的关系;数个数据存储区表,用于记录树结构中的节点属性值;
步骤二:加载数据并对数据进行维护,包括增加、删除、修改和查找数据,以及由此引起的相关操作;
步骤三:对数据进行管理,包括数据的加载、同步、数据更改通知和观察部分。
2.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,所述的容量配置表字段属性如表所示:
字段名 类型 解释 wModule WORD 驻留数据的模块号 dwNetType DWORD 驻留数据的网元类型 dwModuletype DWORD 驻留数据的模块类型 ucInfoType BYTE 记录类型0:节点记录>0:数据缓冲区编号 wTreeNodeNum WORD 树节点最大个数 wBufferSize WORD 记录的数据缓冲区的大小 wBufferNum WORD 该数据区大小的缓冲个数
                                                                                         。
3.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,所述的树结构字段属性如表所示:
字段名 类型 解释 FATHER WORD 父节点的标志字段 NODENAME LPSTR 关系表中记录的节点名 NODEINDEX WORD 记录了当前节点在关系表中的位置标志 DATATYPE BYTE 属性字段值类型 DATALEN WORD 属性字段值的长度
DATAHANDLE DWORD 属性字段值所存放的缓冲区表的标志 DATAMARK WORD 节点数据存放在相应缓冲区中的位置 ISDUMMY BYTE 记录节点是否虚节点 LCHILD WORD 左孩子节点记录位置 RCHILD WORD 右孩子节点记录位置
                                                                                         。
4.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,所述的数据存储区表字段属性如表所示:
字段名 类型 解释 Nodeindex WORD16 数据缓冲区中记录节点标志 Nodevalue LPSTR 数据缓冲区中记录内容
                                                                                         。
5.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤一还包括创建容量表,创建容量索引数据;加载容量数据,加载索引。
6.如权利要求1或5所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤一还包括创建树结构表,创建树结构节点索引数据;创建数据存储区表,为各个数据存储区创建索引字段;加载树结构和数据存储区的数据,加载各个索引字段。
7.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤二中所述的增加的步骤包括:
(1)同步或异步发送增加请求消息;
(2)接收进程根据请求消息中的参数查找父节点记录标志;如果不存在父节点,在系统中自动增加一个虚的父节点记录;
(3)查看要增加的节点记录是否已经存在;已经存在,返回错误;
(4)在树结构的二维表中增加一个记录,在记录中描述其父节点记录或兄弟节点记录的相关信息,同时更改相关的表项;
(5)根据要增加的节点记录的节点属性值的类型和长度,选择不同的数据缓冲区,在选中的数据缓冲区表中申请一个记录空间存放当前的数据;
(6)同步返回操作结果。
8.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤二中所述的删除的步骤包括:
(1)同步或异步发送删除请求消息;
(2)接收进程根据请求消息中的参数查找节点记录标志;
(3)查看要删除的节点记录是否存在;不存在,返回错误;
(4)删除找到的节点,删除节点对应的数据缓冲区中的数据;
(5)在关系表中查询该节点是否有孩子节点记录,循环删除所有的孩子及其下的节点记录;
(6)循环判断当前节点的父节点记录有没有存在的必要,没有的话删除该节点记录。
(7)同步返回操作结果。
9.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤二中所述的修改的步骤包括:
(1)同步或异步发送修改数据请求消息;
(2)接收进程根据请求消息中的参数查找父节点记录标志;
(3)查看要修改的节点记录是否已经存在;已经存在,修改相应的属性值,即数据缓冲区表的数据维护,操作包括:修改原来的数据缓冲区中的内容;从原来的数据缓冲区中删除记录项;新申请一个数据缓冲区增加属性;删除原来的数据表项,增加新的数据表项四种操作;
(4)同步返回结果。
10.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤二中所述的查找包括简单查找和插入查找,简单查找是按照树结构关系在表中一层一层记录地查找,直接返回查找的结果;插入查找是从根节点开始查找,遇到不存在的节点,插入记录,一直到最终的记录节点位置。
11.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤三中所述数据的加载采用二维表记录加载方式;所述数据的同步同样采用表记录的增加和删除来实现,在数据的加载和同步的过程,树结构数据和缓冲区中的数据相对独立,同样在加载、同步数据缓冲区中的数据时,只负责标志出本数据缓冲区的标志字段。
12.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤三中所述数据的更改通知是以一个完整的事务应用为单位进行数据的更改通知,该事务定义就是一次协议数据的修改,事务完成后再进行相关数据的更改通知。
13.如权利要求1所述的用二维表实现的树的存储、访问的方法,其特征在于,步骤三中所述数据的观察采用两种方式:(1)采用二维表的记录显示方式;(2)采用树型的结构显示协议数据,将存储在内模式中的数据转化成数据的逻辑模式显示给应用用户查看。
CNB2003101136602A 2003-11-17 2003-11-17 一种用二维表实现的树的存储、访问的方法 Expired - Fee Related CN1307584C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101136602A CN1307584C (zh) 2003-11-17 2003-11-17 一种用二维表实现的树的存储、访问的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101136602A CN1307584C (zh) 2003-11-17 2003-11-17 一种用二维表实现的树的存储、访问的方法

Publications (2)

Publication Number Publication Date
CN1545048A CN1545048A (zh) 2004-11-10
CN1307584C true CN1307584C (zh) 2007-03-28

Family

ID=34336948

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101136602A Expired - Fee Related CN1307584C (zh) 2003-11-17 2003-11-17 一种用二维表实现的树的存储、访问的方法

Country Status (1)

Country Link
CN (1) CN1307584C (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241492B (zh) * 2007-02-06 2011-05-11 中兴通讯股份有限公司 具有容量动态控制功能的内存数据存储装置及其实现方法
CN100541453C (zh) * 2007-12-03 2009-09-16 腾讯数码(天津)有限公司 大容量缓存实现方法及存储系统
US8458654B2 (en) * 2008-10-22 2013-06-04 International Business Machines Corporation Identifying impact of database changes on an application
JP4688111B2 (ja) * 2008-11-28 2011-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、データベース・システム、情報処理方法、およびプログラム
CN101620618B (zh) * 2009-07-24 2011-11-30 中兴通讯股份有限公司 内存存储数据的维护方法与装置
CN101853278A (zh) * 2010-05-19 2010-10-06 苏州迈科网络安全技术有限公司 数据存储系统应用方法
CN102024052B (zh) * 2010-12-17 2013-03-13 北京握奇数据系统有限公司 一种数据存储系统事务的实现方法和装置
CN102567000B (zh) * 2010-12-31 2016-08-17 新奥特(北京)视频技术有限公司 一种支持动态参数的特技插件的方法和装置
CN102156743A (zh) * 2011-04-18 2011-08-17 北京神州数码思特奇信息技术股份有限公司 一种电信海量话单数据存储方法
CN102750265A (zh) * 2011-08-26 2012-10-24 新奥特(北京)视频技术有限公司 一种数据替换的方法及装置
CN102508866B (zh) * 2011-10-09 2013-03-27 中国电子科技集团公司第二十八研究所 基于数字寻址的指挥关系树结构化存储与快速处理方法
CN103186568B (zh) * 2011-12-28 2017-03-22 金蝶软件(中国)有限公司 树型结构数据的访问方法及系统
CN103207813B (zh) * 2012-01-11 2018-08-14 华为技术有限公司 管理资源的方法和装置
CN102970152A (zh) * 2012-11-23 2013-03-13 上海斐讯数据通信技术有限公司 静态实现IGMP Snooping的方法
CN103020273B (zh) * 2012-12-27 2016-08-17 福建榕基软件股份有限公司 树形结构数据的展示及相关索引表生成的方法与装置
CN104850591B (zh) * 2015-04-24 2019-03-19 百度在线网络技术(北京)有限公司 一种数据的转换存储方法及装置
CN107018077B (zh) * 2017-04-28 2019-08-20 烽火通信科技股份有限公司 用于路由器的数据传输方法及系统
CN110019223A (zh) * 2017-12-21 2019-07-16 天津数观科技有限公司 一种基于数据存储模型的生成数据族谱的方法
CN110083339A (zh) * 2018-01-26 2019-08-02 拜椰特(上海)软件技术有限公司 一种新型计算机编程语言
CN108805527A (zh) * 2018-05-29 2018-11-13 郑州云海信息技术有限公司 一种项目管理方法和装置
CN113392089B (zh) * 2021-06-25 2023-02-24 瀚高基础软件股份有限公司 一种数据库索引优化方法及可读存储介质
CN113434587B (zh) * 2021-06-30 2023-08-18 青岛海尔科技有限公司 一种数据存储、数据查询方法及系统
CN114780325B (zh) * 2022-06-21 2022-09-30 新华三信息技术有限公司 一种PCIe设备检测方法及装置
CN115328366B (zh) * 2022-08-11 2023-09-19 北京智慧星光信息技术有限公司 基于全路径计算的千万级树形节点搜索展示方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139339A (ja) * 1997-07-24 1999-02-12 Denso Corp ナビゲーション装置
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
US6621429B2 (en) * 2001-02-23 2003-09-16 Yamaha Corporation Huffman decoding method and decoder, huffman decoding table, method of preparing the table, and storage media

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139339A (ja) * 1997-07-24 1999-02-12 Denso Corp ナビゲーション装置
JP2002208947A (ja) * 2001-01-12 2002-07-26 Nec Corp 経路検索システムとその検索方法、及び経路検索プログラムを記録した記録媒体
US6621429B2 (en) * 2001-02-23 2003-09-16 Yamaha Corporation Huffman decoding method and decoder, huffman decoding table, method of preparing the table, and storage media

Also Published As

Publication number Publication date
CN1545048A (zh) 2004-11-10

Similar Documents

Publication Publication Date Title
CN1307584C (zh) 一种用二维表实现的树的存储、访问的方法
CN101876983B (zh) 数据库分区方法与系统
CN102158546B (zh) 一种集群文件系统及其文件服务方法
CN102541990B (zh) 利用虚拟分区的数据库重新分布方法和系统
US9342528B2 (en) Method and apparatus for tiered storage
US9047330B2 (en) Index compression in databases
US10242050B2 (en) Database caching in a database system
CN102638584B (zh) 数据分布缓存方法及系统
CN103023982B (zh) 一种云存储客户端的低延迟元数据访问方法
CN101354726B (zh) 一种机群文件系统的内存元数据管理方法
CN104881466B (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN112771511B (zh) 数据库系统中的多层次元数据
US7730099B2 (en) Storage and retrieval of richly typed hierarchical network models
CN101169785A (zh) 集群数据库系统的动态负载均衡方法
JP2001522074A (ja) 通信システム及び方法
CN103631924B (zh) 一种分布式数据库平台的应用方法和系统
CN101882132A (zh) 虚拟fat文件系统的创建及读取方法以及装置
CN103916467A (zh) 一种元数据集群中负载转移方法及系统
CN103853714A (zh) 一种数据处理方法和装置
CN101571869A (zh) 一种智能卡的文件存储、读取方法及装置
CN105981013B (zh) 一种基于稀疏文件的数据库存储模型的系统和方法
CN100378663C (zh) 将应用程序动态下载到用户识别模块的方法、系统及模块
CN101986649A (zh) 应用于电信行业计费系统的共享数据中心
CN1845093A (zh) 一种属性可扩展的对象文件系统
US20070016548A1 (en) Implementing storage management functions using a data store system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070328

Termination date: 20141117

EXPY Termination of patent right or utility model