一种数据库中主从表数据获取的方法技术

技术编号:2831531 阅读:636 留言:0更新日期:2012-04-11 18:40
一种数据库中主从表数据获取方法,其特征在于,包括如下步骤:    步骤1、针对主从表关系字段,遵照相同的排序准则打开主表和所有从表;    步骤2、主表提取当前记录;    步骤3、在从表中寻找与主表当前记录匹配的记录;    步骤4、按照和步骤3相同的方式依次访问其它从表,获取与主表当前记录匹配的记录,所有从表得到的记录与主表当前记录共同组成一条完整的数据;    步骤5、主表当前访问位置下挪一次,回到步骤2继续执行,直到主表检索出的所有记录提取完毕时结束;    步骤6、关闭处于打开状态的表。

【技术实现步骤摘要】
一种数据库中主^数据获取的方法
5本专利技术涉及软件开发领域,使用关系数据库(Relatinal-Database)作 为数据存储介质,具体涉及一种提高数据库主从表数据获取效率的方法。
技术介绍
关系数据库在软件开发领域应用非常广泛。在关系数据模型中,实际 io 对象以表(Table)的形式存在,而表之间任意种类的依赖联系即称关系。 主从表(又称父从表)是一种常见的关系,它由一个主表和多个从表組成。 一般情况下,在主表定义主键,从表定义相同意义字段为外键,依靠主外 键约束将它们组织起来共同表示完整的信息模型。以电信光传输网管系统为例,围绕路径所定义的几个表如下 15 路径Trail ( Trail—ID, UserLabd, State, Direction……)路径端点TrailEnds (Trail—ID, EndA, EndZ,......)路径路由分段基本信息TrailRoute ( Trail—ID , SegmentNo , LayerRate,......)主表为Trail,从表为TrailEnds和TrailRoute。它们依靠Trail—ID字段20 建立对应关系,共同记录路径概念的完整信息。由于实体之间联系的复杂性,主从表存储模式在现实中大量应用,因而该模式下的数据获取也就成为经常面对的频繁搡作。此时如果需要从数 据库中获取完整信息,必须访问所涉及的主表和所有从表,将各部分信息 依靠主外键字段进行匹配,以组装正确结果。而一旦表的记录较多,加上从表往往不止一个,这种匹配将导致字段比较次数急剧增加,可能极大加 重数据库系统负担。综上所述,主vMv^数据的获取成为基于关系数据库的软件性能的一个重要影响因素。以下将M记录之间用以建立关系的字段定义为主M关系字段,例5如上述Trail—ID。目前主从表获取方案主要有两种1、 游标方式使用游标打开主表;每次通过游标下移从主表中提取出一条记录,就 根据主从表关系字段值,去从表1中检索相应记录获得子信息1;去从表 io 2检索子信息2;......当所有从表检索完毕,将获得一条完整的信息;如此往复,直到游标移动到终点,得到包含所有完整信息的正确结果RObject。2、 内存匹配方式将主表对应记录检索出来填写到结果对象RObject;将M 1对应记 录检索出来,按照主从表关系字段值,依次在第一步得到的结果对象 is R0bject中寻找正确位置并填写进去;在从表1所有记录处理完毕后,按 类似方式依次处理M 2、 M 3......,直到所有从表处理完毕,得到包含全部完整信息的正确结果RObject。对于方案1,缺点是对主表的每一条记录,都会在A^打开一次结果 集并进行全表扫描匹配,当表的规模达到一定程度时,这个过程非常费时。 20 对于方案2,缺点是应用程序内存中需要执行的匹配过多,从表的每一条记录都需要到RObject中寻找对应的位置。从效率角度考虑,上述方案l和2都存在不足,尤其是当从表个数较 多,主表、从表记录数目均较大时,它们在效率上的缺陷将成为程序的瓶 颈。25
技术实现思路
本专利技术的目的是克服上述现有主W数据获取方法的缺点,而提供的 一种清晰的、高效率的方法。本专利技术具有以下特点1)主从表检索结果按照相同准则排序;2)主 5 从表当前记录同步推进,匹配次数降低到最少;3)所有涉及到的表只打 开一次。一种数据库中主从表数据获取方法,包括如下步骤 步骤1、针对主从表关系字段,遵照相同的排序准则打开主表和所有 从表;io 步骤2、主表提取当前记录;步骤3、在从表中寻找与主表当前记录匹配的记录;步骤4、按照和步骤3相同的方式依次访问其它从表,获取与主表当前记录匹配的记录,所有从表得到的记录与主表当前记录共同组成一条完整的数据;is 步骤5、主表当前访问位置下挪一次,回到步骤2继续执行,直到主表检索出的所有记录提取完毕时结束; 步骤6、关闭处于打开状态的表。本专利技术所述方法,主从表记录按照相同排序准则检索,使得从表的每 条记录只会与相邻区段的主表记录匹配,将整个过程的比较次数降低到最 20 低,克服了现有方案反复匹配、交叉匹配的缺点;主、从表只打开一次,当前访问位置一直保持向前移动,只遍历一趟 而没有往复,克服了现有方案多次打开同一张表的缺点;本专利技术所迷方法应用于光传输网管系统获取路径路由信息实例时,与 普通的游标获取方式相对比,效率提高约80倍,取得良好效果。附图说明图1为光传输网管系统路径路由实体关系图; 图2为主从表数据提取流程图。具体实施方式下面结合附图对本专利技术所述方法进行详细说明。本专利技术所述主从表数据获取方法,包括如下步骤步骤1、针对主从表关系字段,遵照相同的排序准则打开主表和所有錄;10 步骤2、主表提取当前记录;步骤3、在从表l中寻找与主表当前记录匹配的记录;步骤4、按照和步骤3相同的方式依次访问其它从表,获取与主表当前记录匹配的记录,所有从表得到的记录与主表当前记录共同组成一条完整的数据;15 步骤5、主表当前访问位置下挪一次,回到步骤2继续执行;步骤6、重复上述步骤直到主表检索出的所有记录提取完毕时结束; 步骤7、关闭处于打开状态的表。所述主从表数据获取方法,其中步骤3中寻找从表1与主表当前记录 匹配数据的处理包含以下步骤 20 (1)比较从表1当前记录与主表当前记录的主从表关系字段值情况l:如果相等,说明从表1的当前记录与主表当前记录对应,将 其信息提取完毕后,从表1的当前访问位置向下挪一位,回到步骤(l) 继续执行;情况2:如果不等,按照排序准则,若前者应该在后者之后,则从表 251当前记录的数据不处理,访问位置不变,等待下一次与主表记录的匹配机会;情况3:如果不等,按照排序准则,若前者应该在后者之前,则忽略 从表1的当前记录,其访问位置下挪一位,回到步骤(1)继续执行; 情况4:如果发现从表1检索到的所有记录提取完毕,则关闭该表, 5 后继过程不再对该表进行访问;(2)发生以上情况2、 4,从表1针对主表当前记录的匹配操作结束, 过程返回。所述步骤1,打开主表和M时,记录必须按照主M关系字段大小 排序返回,并且排序的方式对所有表都一致。 10 主从表关系字段并不局限于由一个字段组成,若为多个字段,则设定第 一排序参照列,第二排序参照列…...。下面以光传输网络层网管系统中的常见对象——^径路由为例,详细 说明本专利技术所述主从表数据获取过程。先筒要说明相关概念所谓路径,描述的是通讯网端到端的数据传送 15 业务。而一条完整的路径由若干分段组成,每个分段都有端点、工作拓朴、 工作通道等属性,这些信息合在一起称为路径路由。路径路由与所包含信息实体的关系如图l所示,为了便于理解将路径 也包括在内,以虚线表示。如果需要从数据库提M4圣路由的完整信息,要求包含分段端点、工 20 作拓朴、工作通道等属性。利用本专利技术所述的数据获取方法,可以纟艮好地 满足这个需求。数据存储方法图1中的模型在数据库中分4张表存储,如表l所示:TrailRoute 路由分段信息表(Trail—ID , SegmentNo, LayerRate,......) 路径ID,分段号, 速率,……TrailRouteAZEnd 路由本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1、一种数据库中主从表数据获取方法,其特征在于,包括如下步骤步骤1、针对主从表关系字段,遵照相同的排序准则打开主表和所有从表;步骤2、主表提取当前记录;步骤3、在从表中寻找与主表当前记录匹配的记录;步骤4、按照和步骤3相同的方式依次访问其它从表,获取与主表当前记录匹配的记录,所有从表得到的记录与主表当前记录共同组成一条完整的数据;步骤5、主表当前访问位置下挪一次,回到步骤2继续执行,直到主表检索出的所有记录提取完毕时结束;步骤6、关闭处于打开状态的表。2、 如权利要求1所述的数据库中主4数据获取方法,其特征在于 所述主从表关系字段并不局限于由一个字段组成。3、如权利要求l所述的数据库中主从表数据获取方法,其特征在于所述打开主表和所有M^,记录必须按照主M关系字段大小排序返 回,并且排序的方式对所有表都一致。4、如权利要...

【专利技术属性】
技术研发人员:陈明马润宏
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1