翰文个人计算机学习网
  • 翰文快讯
  • 翰文PC快讯
  • 综合软件区
  • 操作系统
  • 注册表解析
  • Windows系列
  • Unix/Linux
  • 其他系统
  • 应用软件
  • 微软MS Office
  • WPS Office
  • 多媒体软件
  • 图像处理
  • Photoshop
  • Painter
  • Illustrator
  • CorelDRAW
  • 三维空间
  • AutoCAD
  • 3DMAX
  • 3DMAYA
  • 硬件资源
  • 攒机指南
  • 硬件超频
  • 维修指南
  • 网络资源
  • 在线通讯
  • 网上冲浪
  • 浏览器中心
  • 网络故障解析
  • 病毒资料
  • 病毒通报
  • 病毒防治
  • 病毒常识
  • 黑客技巧
  • SQL/MySQL
  • Oracle
  • Delphi
  • 编程资源
  •  C/C#/C++/VC++/VC.NET
  •  Basic/VB/VB.NET/VBScript
  •  FoxBasic/FoxPro/VF/VF.NET
  •  Java/JavaScript
  • PowerBuilder
  • 热门词:
  • 翰文计算机学习网首页
  • >
  • FoxBasic/FoxPro/VF/VF.NET
  • >
  • 用Foxpro索引文件提高C语言的查询效率
  • 用Foxpro索引文件提高C语言的查询效率

  • 资源来源:
  • HW-PCS.ORG
  • 资源作者:
  • 翰文计算机学习网
  • 人气指数:
  • [4216]
  • 关键词:

      Foxpro是应用较广的数据库软件,它的索引文件是一种类B+树的稠密索引结构,且索引文件较原库小得多。 在C语言中按关键字对数据库进行检索, 利用索引文件可以大大加快查询效率, 具有较高的实用价值。

      B+树

      首先简单介绍一下B+树,下图是一棵三阶B+树的例子,其中ROOT指向根结点,SQT指向叶子结点,叶子结点下的箭头为指针。

      由上图可发现:

      ·所有的叶子结点中包含了全部关键字的信息及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
      ·所有非终端结点可以看成是索引部分,结点中仅含有其子树中的最大关键字。

      Foxpro索引文件的结构

      Foxpro的索引文件(后缀为.IDX)由索引文件头和索引文件体组成。索引文件逻辑上体现的索引树的各索引结点是以相对物理块标识的 ,每个物理块512个字节,文件头占一个块, 相对于索引文件的物理零块号。索引文件头描述索引文件的组织信息,包括索引树的根结点位置,索引关键字表达式及索引关键字长度。其有用字节的含义如下表所示:

      索引文件体从索引文件的相对物理块号为1的块开始,文件体的每块(也就是索引树的一个结点)又分两个部分,前13个字节标识本块属性,后面为按索引关键字非递减顺序排列的索引项,如下表所示:

      索引项=关键字+指针域(4字节)。

      索引项长度=关键字长度+指针域长度。

      Foxpro索引库数据结构

      如前所述,Foxpro索引库的数据结构是类B+树的稠密索引结构,是因为它与B+树还有一点区别,即叶子结点并不是按关键字大小而顺序存放的,而是第二个叶子结点放在第一个叶子结点之前,同层的非叶子结点有类似情形。

      Foxpro的存取顺序是从文件头开始,最后向下至根结点。

      当数据库的记录数不大于{(512-12)/索引项长度}时,索引树上只有一个结点,根叶合一。

      明确了数据库的数据结构后,就可直接用C语言编程通过索引文件迅速找到要索引查询的记录号,进而从数据库中读出该记录进行处理。

      C语言示例程序

      现在以财会数据库EXAMPLE.DBF为例来说明。EXAMPLE.IDX为该数据库按凭证号关键字排序的索引库,本文用C语言实现查询凭证号为"4 103230200"的记录,找到相应的记录号。

    感谢您对翰文计算机学习网的支持

  • 关于我们
  • 联系方式
  • 成功案例
  • 技术报价
  • RSS索引
  • 网站地图
  • 翰文电脑学习网
  • MSN:LNDDYGYC9@HOTMAIL.COM Powered by 翰文个人计算机学习网 版权所有,未经允许不得转载
    ICP备案号码:[沪ICP备12020678号] Copyright 2008-2020 HW-PCS.ORG, All Rights Reserved.