[发明专利]一种数据库中主从表数据获取的方法有效
申请号: | 200610149686.6 | 申请日: | 2006-10-13 |
公开(公告)号: | CN101162463A | 公开(公告)日: | 2008-04-16 |
发明(设计)人: | 陈明;马润宏 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 王漪;王继长 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 主从 数据 获取 方法 | ||
技术领域
本发明涉及软件开发领域,使用关系数据库(Relatinal-Database)作为数据存储介质,具体涉及一种提高数据库主从表数据获取效率的方法。
背景技术
关系数据库在软件开发领域应用非常广泛。在关系数据模型中,实际对象以表(Table)的形式存在,而表之间任意种类的依赖联系即称关系。主从表(又称父从表)是一种常见的关系,它由一个主表和多个从表组成。一般情况下,在主表定义主键,从表定义相同意义字段为外键,依靠主外键约束将它们组织起来共同表示完整的信息模型。
以电信光传输网管系统为例,围绕路径所定义的几个表如下:
路径:Trail(Trail_ID,UserLabel,State,Direction......)
路径端点:TrailEnds(Trail_ID,EndA,EndZ,......)
路径路由分段基本信息:TrailRoute(Trail_ID,SegmentNo,LayerRate,......)
主表为Trail,从表为TrailEnds和TrailRoute。它们依靠Trail_ID字段建立对应关系,共同记录路径概念的完整信息。
由于实体之间联系的复杂性,主从表存储模式在现实中大量应用,因而该模式下的数据获取也就成为经常面对的频繁操作。此时如果需要从数据库中获取完整信息,必须访问所涉及的主表和所有从表,将各部分信息依靠主外键字段进行匹配,以组装正确结果。而一旦表的记录较多,加上从表往往不止一个,这种匹配将导致字段比较次数急剧增加,可能极大加重数据库系统负担。综上所述,主从表数据的获取成为基于关系数据库的软件性能的一个重要影响因素。
以下将从表记录之间用以建立关系的字段定义为主从表关系字段,例如上述Trail_ID。
目前主从表获取方案主要有两种:
1、游标方式:
使用游标打开主表;每次通过游标下移从主表中提取出一条记录,就根据主从表关系字段值,去从表1中检索相应记录获得子信息1;去从表2检索子信息2;......当所有从表检索完毕,将获得一条完整的信息;如此往复,直到游标移动到终点,得到包含所有完整信息的正确结果RObject。
2、内存匹配方式:
将主表对应记录检索出来填写到结果对象RObject;将从表1对应记录检索出来,按照主从表关系字段值,依次在第一步得到的结果对象RObject中寻找正确位置并填写进去;在从表1所有记录处理完毕后,按类似方式依次处理从表2、从表3......,直到所有从表处理完毕,得到包含全部完整信息的正确结果RObject。
对于方案1,缺点是对主表的每一条记录,都会在从表打开一次结果集并进行全表扫描匹配,当表的规模达到一定程度时,这个过程非常费时。
对于方案2,缺点是应用程序内存中需要执行的匹配过多,从表的每一条记录都需要到RObject中寻找对应的位置。
从效率角度考虑,上述方案1和2都存在不足,尤其是当从表个数较多,主表、从表记录数目均较大时,它们在效率上的缺陷将成为程序的瓶颈。
发明内容
本发明的目的是克服上述现有主从表数据获取方法的缺点,而提供的一种清晰的、高效率的方法。
本发明具有以下特点:1)主从表检索结果按照相同准则排序;2)主从表当前记录同步推进,匹配次数降低到最少;3)所有涉及到的表只打开一次。
一种数据库中主从表数据获取方法,包括如下步骤:
步骤1、针对主从表关系字段,遵照相同的排序准则打开主表和所有从表;
步骤2、主表提取当前记录;
步骤3、在从表中寻找与主表当前记录匹配的记录;
步骤4、按照和步骤3相同的方式依次访问其它从表,获取与主表当前记录匹配的记录,所有从表得到的记录与主表当前记录共同组成一条完整的数据;
步骤5、主表当前访问位置下挪一次,回到步骤2继续执行,直到主表检索出的所有记录提取完毕时结束;
步骤6、关闭处于打开状态的表。
本发明所述方法,主从表记录按照相同排序准则检索,使得从表的每条记录只会与相邻区段的主表记录匹配,将整个过程的比较次数降低到最低,克服了现有方案反复匹配、交叉匹配的缺点;
主、从表只打开一次,当前访问位置一直保持向前移动,只遍历一趟而没有往复,克服了现有方案多次打开同一张表的缺点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610149686.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置