• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 12
    • 下载费用:30 金币  

    重庆时时彩前三走势图: 一种支持IEC61850对象查询的SQL接口实现方法.pdf

    关 键 词:
    一种 支持 IEC61850 对象 查询 SQL 接口 实现 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201110096235.1

    申请日:

    2011.04.18

    公开号:

    CN102163232A

    公开日:

    2011.08.24

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20110418|||公开
    IPC分类号: G06F17/30 主分类号: G06F17/30
    申请人: 国电南瑞科技股份有限公司; 南京航空航天大学
    发明人: 张海滨; 潘洪湘; 张进伟; 秦小麟; 朱广蔚; 郑桂能
    地址: 210061 江苏省南京市高新技术开发区高新路20号
    优先权:
    专利代理机构: 南京纵横知识产权代理有限公司 32224 代理人: 董建林
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201110096235.1

    授权公告号:

    102163232B||||||

    法律状态公告日:

    2012.12.05|||2011.10.05|||2011.08.24

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种支持IEC61850对象查询的SQL接口实现方法,电网系统中包括以下功能???,数据存储??椋焊莸缤低持械腎EC61850对象建立数据模型;查询??椋赫攵訧EC61850对象对于现有SQL算子进行扩充,根据所述数据模型建立适用于对象的层次化操作算子;主存管理??椋何С侄韵蟠娲⒌闹鞔婀芾砟J?,采用共享内存的方式实现,包括共享内存的分配、释放和映射以及共享内存的使用和管理;索引??椋喊ㄋ饕目占涔芾?、一致性维护和提供给所述查询??榈慕涌?。本发明提供了支持IEC61850对象查询的声明性SQL查询接口,实现了电网内层次化对象和关系型数据的快速检索和管理。

    权利要求书

    1.?一种支持IEC61850对象查询的SQL接口实现方法,其特征是,电网系统中包括以下功能???,数据存储??椋焊莸缤低持械腎EC61850对象建立数据模型,包括数据类型的层次化操作方法和关系型数据的元数据管理;采用数据表的形式存储元数据、配置文件、普通数据和IEC61850对象;查询??椋何恢种С諭EC61850对象查询的数据服务接口,针对IEC61850对象对于现有SQL算子进行扩充,根据所述数据模型建立适用于对象的层次化操作算子;主存管理??椋何С侄韵蟠娲⒌闹鞔婀芾砟J?,采用共享内存的方式实现,包括共享内存的分配、释放和映射以及共享内存的使用和管理;索引??椋何С滞ㄓ檬堇嘈偷闹鞔嫠饕?,包括索引的空间管理、一致性维护和提供给所述查询??榈慕涌?。2.根据权利要求1所述的一种支持IEC61850对象查询的SQL接口实现方法,其特征是,利用数据字典实现所述元数据管理,包括向上层调用程序提供的接口和数据字典的加载、卸载及管理功能。3.根据权利要求1所述的一种支持IEC61850对象查询的SQL接口实现方法,其特征是,所述现有SQL算子进行扩充采用的分析方法包括使用LEX的词法分析方法和使用YACC的语法分析方法。4.根据权利要求1所述的一种支持IEC61850对象查询的SQL接口实现方法,其特征是,所述索引??橹С炙饕堇嘈秃退饕莸姆掷牖?,利用一个数据结构来刻画数据类型和节点类型,支持动态数据类型的索引构建。5.根据权利要求1所述的一种支持IEC61850对象查询的SQL接口实现方法,其特征是,所述索引??槔盟饕诘闼捎玫牧唇踊?。6.根据权利要求1所述的一种支持IEC61850对象查询的SQL接口实现方法,其特征是,所述索引??椴捎肂+树作为基本数据结构,支持索引的快速序列化和空间回收释放管理。7.根据权利要求1所述的一种支持IEC61850对象查询的SQL接口实现方法,其特征是,使用结果集对象封装系统返回的查询结果,结果集对象提供游标机制,为调用者检索查询结果。

    说明书

    一种支持IEC61850对象查询的SQL接口实现方法

    技术领域

    本发明属于电网数字化管理领域,提供了支持IEC61850对象查询的声明性SQL查询接口,实现了电网内层次化对象和关系型数据的快速检索和管理。

    背景技术

    电网中实时数据的管理是实现电网智能化的关键技术,电网中的实时数据包括了传统的关系型数据和电网管理特有的IEC61850对象类型的数据,对这些数据的管理是指建立一个满足实时性需求的数据管理平台,向用户提供数据检索和数据管理功能,允许用户在高层数据结构上工作。

    传统的电网数据管理中间件基于关系型和IEC61850对象型的嵌入式实时数据库管理系统,采用跨平台C/C++编程,应用程序通过调用底层C/C++函数接口进行存储管理操作??⑷嗽毙枰莆盏撞闶荽娲⒌氖迪?,了解底层数据存储的细节,编写的应有程序不具备通用性,平台移植困难。

    传统的电网数据管理中间件对于IEC61850对象型数据的查询没有提供平台级的支持,缺少对IEC61850对象进行查询和管理的通用方法。IEC61850标准允许对象多层嵌套,查询IEC61850对象时需要开发人员指定具体的存储、寻径和遍历方法。

    传统的电网数据管理中间件缺少统一的查询优化机制,由于采用线性存储方法以及线性查找策略,系统的平均查询时间复杂度为O(n)(n为表中记录个数)。在数据量极大的时候会危及到系统的实时特性,因此需要开发人员对每一种数据查询进行单独的优化。

    发明内容

    本发明的目的是针对传统的电网数据管理中间件系统的不足,对传统的电网数据管理中间件系统进行理论上的规范和功能上的扩展,包括:规范了IEC61850对象的数据模型;利用共享内存实现了主存数据的管理,使用关系型数据字典管理主存数据库的元数据;在传统SQL语言的基础上根据规范后的IEC61850对象的数据模型扩展出对象查询的SQL算子,通过声明性语言检索层次化对象;采用改良的内存B+树索引实现了统一的查询优化,并实现了索引对于通用数据类型的支持,提出索引内存管理机制用于快速序列化索引,降低系统的平均查询开销至O(logn),提高了CPU缓存命中率。

    1.为电网实时数据管理设计了一种支持IEC61850对象查询的数据服务系统,该系统涉及关系型和IEC61850对象型数据的检索和管理、主存管理、针对层次化对象数据检索、对SQL算子的扩充以及为提高检索效率而采取的索引机制。

    2.规范了IEC61850对象的层次化树状数据结构和存储方式,根据其结构和存储方式定义了IEC61850对象的检索和操作方法。

    3.实现了关系型数据的元数据管理,包括数据字典的的创建、加载和销毁等功能。

    4.实现了主存管理功能,对于处于不同进程空间内的主存利用映射机制来管理共享内存。

    5.扩充了标准SQL算子,使其支持IEC61850对象的表示和对象操作方法的表示。

    6.实现了支持通用数据类型的主存数据索引,考虑了CPU缓存级的检索优化,针对系统的主存模型发明了用于快速序列化索引的数据结构。

    为了实现以上目的,本发明采取以下技术方案,

    一种支持IEC61850对象查询的SQL接口实现方法,其特征是,电网系统中包括以下功能???,

    1、数据存储??椋焊莸缤低持械腎EC61850对象建立数据模型,包括数据类型的层次化操作方法和关系型数据的元数据管理;采用数据表的形式存储元数据、配置文件、普通数据和IEC61850对象;利用数据字典实现所述元数据管理,包括向上层调用程序提供的接口和数据字典的加载、卸载及管理功能。

    系统采用数据表的形式存储元数据、配置文件、普通数据和IEC61850对象,索引将存储在特定的索引结构中。所有数据都存放于系统空间中。

    2、查询??椋何恢种С諭EC61850对象查询的数据服务接口,针对IEC61850对象对于现有SQL算子进行扩充,根据所述数据模型建立适用于对象的层次化操作算子;所述现有SQL算子进行扩充采用的分析方法包括使用LEX的词法分析方法和使用YACC的语法分析方法。

    根据现有的SQL标准算子和针对IEC61850对象操作的扩展算子,使用LEX工具构造词法分析器,使用YACC工具构造语法分析器。使用结果集对象封装系统返回的查询结果,结果集对象提供游标机制,便于调用者检索查询结果。

    3、主存管理??椋何С侄韵蟠娲⒌闹鞔婀芾砟J?,采用共享内存的方式实现,包括共享内存的分配、释放和映射以及共享内存的使用和管理;

    系统采用共享内存的方式对主存进行管理,主存管理在逻辑上将整个系统划分为系统空间和程序空间。系统空间是一个物理上的连续区域,其逻辑结构由系统内的数据结构所确定,程序如需调用系统空间的数据,需要事先进行注册和链接。

    4、索引??椋何С滞ㄓ檬堇嘈偷闹鞔嫠饕?,包括索引的空间管理、一致性维护和提供给所述查询??榈慕涌?。所述索引??橹С炙饕堇嘈秃退饕莸姆掷牖?,利用一个数据结构来刻画数据类型和节点类型,支持动态数据类型的索引构建。所述索引??槔盟饕诘闼捎玫牧唇踊?。

    所述索引??椴捎肂+树作为基本数据结构,支持索引的快速序列化和空间回收释放管理。

    考虑到CPU缓存同主存之间的速度差,本发明中的索引将采用B+树作为基本数据结构,并对其进行功能上的改进,包括:分离数据类型和数据;实现索引的数据类型无关性从而支持IEC61850对象数据快速检索;构建节点内部数据结构对索引内存进行管理,支持索引的快速序列化(即将树状结构保存至硬盘)和空间回收释放管理。

    本发明所达到的有益效果:

    本发明与现有技术相比具有下面的优点:

    1.?提供声明性语言接口访问数据

    现有技术提供C/C++接口,要求开发人员掌握底层数据存储的实现,如此编写的应有程序不具备通用性,平台移植困难,且对于IEC61850对象的编程需要手工解析、寻径。本发明通过扩展传统SQL算子提供声明性语言接口访问关系型数据以及IEC61850对象类型数据。声明性接口的优点在于:查询接口统一,可以方便地跨平台;查询过程对用户透明,允许用户工作在高层数据结构上;查询返回结果支持过程化语言调用。

    2.?提供多进程空间数据服务

    在现有技术中数据管理??楦τ贸绦蚴前蠖ǖ?,增加新的应用时需要将应用程序同数据管理??橹匦铝?。本发明通过共享内存的方式将系统进程空间和应用进程空间分离,系统空间负责提供数据服务,不同的应用程序可以使用数据管理系统所提供的服务。

    3.?提供索引机制加速数据检索

    传统的数据管理系统没有统一的优化策略,本发明通过索引提供统一的数据优化策略,传统的索引技术不支持动态类型,需要动态内存分配支持。本发明通过一个数据结构实现数据和数据类型的分离,从而实现索引对于任意类型的支持;通过偏移量实现物理上连续的内存的结构化,并模拟出逻辑上的指针进行索引操作。

    附图说明

    图1为系统体系结构图,示意系统在内存中的组织结构;

    图2为索引插入流程图,示意在索引中插入一个元素的逻辑过程;

    图3为索引删除流程图,示意在索引中删除一个元素的逻辑过程。

    具体实施方式

    下面根据说明书附图对本发明的技术方案进一步详细阐述,包括系统体系结构、数据字典的管理、共享存储机制、SQL算子的实现、IEC61850对象的查询处理和索引实现机制。

    1.?系统体系结构

    系统的体系结构如图1所示,其核心部分是数据字典和索引??榈墓蚕泶娲⒒?。数据字典用于描述元数据信息,索引采用独立的数据结构进行描述和管理(详见索引部分的说明)。系统进程和应用程序进程处于不同的进程空间,为了使得各个应用程序能够使用系统提供的数据服务,本发明采用共享存储空间的方式对主存空间进行了管理。

    2.?数据字典

    数据字典主要用来管理系统的元数据,本发明中的元数据信息包括系统中每张表的属性,表中每一个属性列的信息和索引信息。数据字典??槎酝馓峁┝瞬僮鹘涌?,可以方便地对数据字典进行管理,外部函数只需要通过包含dict.h文件就可以调用数据字典提供的操作。元数据是描述整个系统基本信息的数据,数据字典??樽魑枋鲈莸墓δ苣??,包含整个系统的全部信息,是本系统中的主管理???,其功能包括:计算系统所需要的共享内存、负责申请和释放共享内存、初始化索引配置信息和索引。

    (1)?数据字典的结构

    数据字典包括关系字典,属性字典和索引字典。其中关系字典用于描述表的信息,包括表的ID、表名、表中域的个数、所容纳最多表的个数、更新时间、版本号和数据字典中域名表的偏移量等;属性字典用于描述表的每一个属性的信息,包括所在表的ID、域名表的ID、域名表的域名、域名表域的类型、域名表域的长度、域名表在内存中的偏移量和本域索引的偏移量。索引字典将在索引部分说明。

    (2)?数据字典的管理

    数据字典的管理??榘硕喔龆允葑值浣胁僮鞯暮?。使用这些函数,可以获得表的ID、表名、表中域的个数、所容纳最多表的个数、更新时间、版本号、数据字典中域名表的偏移量等表级基本信息;还能获得本域所在表的ID、域名表的ID、域名表的域名、域名表域的类型、域名表域的长度、域名表在内存中的偏移量、本域索引的偏移量等属性级信息。在系统初始化时,数据字典管理??楦涸鸢压叵底值?、属性字典、索引字典和索引本身加载并映射到共享内存空间中。

    3.?共享存储机制

    应用程序拥有独立的进程空间,彼此不能互相访问。为了不同的应用程序能够共享数据字典和索引数据,本发明采取了共享内存的策略:为每个索引分配一块共享内存,数据字典分配一块共享内存,如果应用程序需要使用数据字典和索引??樗峁┑墓δ?,只需要把该共享内存映射到当前应用的进程空间中去。本发明同时提供了在Windows和LINUX下的共享内存机制实现。

    (1)?Linux下共享内存的实现

    Linux下通过mmap系统调用实现共享内存:进程首先分配一块共享内存,然后通过mmap系统调用将共享内存映射到自己的地址空间,即可对共享内存视作当前进程空间中的内存进行操作。共享内存的并发维护由操作系统自动实现,当完成通信之后,所有进程都将脱离共享内存,并且由其中一个进程释放该共享内存块。

    (2)?Windows下共享内存的实现

    在win32平台中,采用内存映射文件的方式来实现共享内存:Windows中的内存映射文件机制允许在WIN32进程中保留一段内存区域,可以把文件映射到这段虚拟内存中。因此我们把需要映射到应用进程空间内的数据字典和索引作成目标文件注入到应用进程空间中去。

    4.?支持IEC61850对象的SQL算子扩充

    (1)?IEC61850对象的数据模型

    IEC61850对象采用树状数据结构,除根节点外,每个节点有且只有一个父亲节点,但可以拥有多个子节点,其树状数据结构信息通过表内标识实现。鉴于其存储方式的局限,IEC61850的基本操作包括获取父节点、获取孩子节点个数、获取第一个孩子节点和获取下一个孩子节点。通过这些基本操作,本发明重构出针对IEC61850对象的检索操作,规定了“向上”和“向下”两种操作方向,规定了from和to两个起止关键字,这将在扩展的SQL算子中得到体现。

    (2)?实现SQL算子的词法分析???/p>

    本发明采用LEX工具进行词法分析,通过正则表达式识别Token,识别的内容包括输入串中的标识符、整型数字、浮点型数字、字符串和时间日期。词法分析器负责向语法分析器返回识别出的每个TOKEN并给出token的“值”信息。本发明中的关键字信息包括select、from、where、update、set、and、delete、object?up、down、insert、into、values、create、index、on和drop。其中object、up、down三个关键字是标准SQL所不具备的,在本发明中用于扩展支持IEC61850对象的SQL表示。

    (3)?实现SQL算子的语法分析???/p>

    本发明采用Bison作为语法分析的工具,语法信息通过BCNF(巴克斯范式)?进行描述。针对数据检索和管理需求,本发明中实现了标准SQL语言的一个子集,并对其进行了支持IEC61850对象的算子级扩展。采用BCNF对该语言集进行了描述,Bison工具会自动对BCNF进行解析并形成一颗语法树,树的每一个节点对应着一个操作,当规约至根节点时,语法树便建立完成。

    (4)?针对IEC61850对象的SQL算子扩充

    对象查询主要扩充了对象在SQL语言中表示形式和对象操作的方向,对象的路径在SQL语言中通过“.”给出,其类型通过“:”给出,其操作方向有“自上而下”和“自下而上”两种。其中“down”关键字表示是自上而下查询,“up”关键字表示自下而上的查询,“from”关键字表示对象路径的起始,“to”关键字表示对象路径的终止。如果某个对象所属的类型唯一则不用指定该类型,否则需要指定该类型。

    (5)?SQL语句

    本发明中的SQL语句包括,查询语句、更新语句、插入语句、删除语句、创建索引语句,删除索引语句和对象查询语句。

    查询语句:SELECT?FIELD_LIST?FROM?TABLE_NAME?WHERE?PREDICATE,该语句用于检索由TABLE_NAME指定的表中符合WHERE?PREDICATE指定的条件的由FIELD_LIST指定的列。

    更新语句:UPDATE?TBALE_NAME?SET?EXPRESSION_LIST??WHERE?PREDICATE该语句用于用EXPRESSION_LIST去更新由TABLE_NAME指定的表中符合WHERE?PREDICATE条件的元组。

    插入语句:INSERT?INTO?TABLE_NAME(FIELD_LIST)?VALUES?(VALUE_LIST)该语句用于向TABLE_NAME指定的表中插入值为VALUE_LIST所描述的具体属性的元组。

    删除语句:DELETE?FROM?TABLE_NAME?WHERE_PREDICATE该语句用于删除由TABLE_NAME指定的表中符合WHERE_PREDICATE指定的条件的元组。

    创建索引语句:CREATE?INDEX?ON?TABLE_NAME?(FIELD_NAME)该语句用于在由TABLE_NAME和FIELD_NAME共同确定的列上创建索引。

    删除索引语句:DROP?INDEX?ON?TABLE_NAME?(FIELD_NAME)?该语句用于在由TABLE_NAME和FIELD_NAME共同确定的列上删除索引。

    自上而下的对象查询语句:Select?object?down?from?A:a.B:b.C:c该语句用于自上而下地寻找C类型的对象c。

    自下而上的对象查询语句:Select?object?up?from?A:a?to?D:d该语句用于自下而上地从A类型的对象a寻找其祖辈节点直到D类型的对象d结束。

    (6)?SQL语言的返回结果

    本发明使用结果集描述和存储SQL语言的查询返回结果,结果集提供的接口包括:返回记录数、返回当前记录的oid、返回当前结果集的tid、读取指定列的值和遍历结果集。

    5.?通用数据类型主存索引

    索引提供了效率极高的访问路径,是实时数据处理的关键部分。本发明考虑到实时监控查询频繁修改相对较少的特性,采用B+树作为具体实现索引功能的数据结构,并对其进行了改进。为了支持对象类型的索引,本发明对数据类型和数据进行了分离,为了支持快速序列化,本发明通过内建的数据结构描述索引结构信息。为了支持空间可重用,本发明通过链表实施对节点空间的管理。

    (1)?对通用数据类型的支持

    本发明通过TypeClass类来描述索引中的数据类型,以此剥离数据类型和数据。数据类型对上层操作透明,上层操作完全以字节为单位而不管二进制数据的具体语义。对于数据的具体语义,则由TypeClass类型进行解析,其通用类型包括整形、浮点型、字符串型、对象类型和用户自定义类型,TypeClass负责维护复杂数据类型的结构和比较函数。TypeClass数据结构提供的主要方法有:获取和设置当前数据在内存中的位置、获取和设置当前数据的值以及对数据进行比较。

    (2)?快速序列化索引

    索引采用的数据结构是树,由于每次加载重新建树的代价较高,本发明实现了一种迅速高效的序列化机制,该序列化机制是内嵌于数据结构的,采用数组结构和相对位移来实现树结构。从物理上看一棵树就是一个大数组,本身就是序列化好的结构,存取时只需要简单的将一整块内存的数据存入磁盘或者将磁盘数据读入一块内存区域;在逻辑上则通过一组函数模拟出节点指针,用以虚拟逻辑上的树。本发明通过额外的结构信息类来维护数据结构,用以支持多进程间的地址映射,在每一个进程空间中都能够准确地读取数据。

    本发明中的节点通过NodeClass数据结构进行描述,包括节点本指针、父指针、孩子节点指针和指向同一层邻居节点的指针。在物理上这些指针都是偏移量,在逻辑上通过一个指针转换函数将绝对地址转换为指针,通过NodeClass提供的方法,可以获得当前节点的父节点,子节点和邻居节点。

    (3)?索引查询及插入删除过程

    本发明的索引采用B+树结构实现,对传统B+树作了一些改进以适应系统需求?,在本发明的B+树中,节点为一组单调递增元素,元素由两部分构成,分别是关键字和子指针,叶子节点没有子指针,取而代之的是关键字的oid,也就是最终需要返回的查询结果。除了根之外,每个节点都包含最少L个元素最多U个元素,在本系统中U=2L-1。对于所有内部节点,子指针的数目等于其元素个数,父亲节点中对应该节点的关键字为该节点的最大值。所有的叶子都在相同的高度上,每次查询都需要查询至叶子节点才会停止。对于相同数据,当作不同的元素来处理,查询时需要在叶子节点中遍历相同元素。叶子节点通过双向链表链接起来,整个链表逻辑上就是一个单调递增的有序队列。头指针为空的则为叶子节点链表的起始节点,尾指针为空的则为叶子节点链表的终止节点。查询以最典型的类似二叉排序树的方法进行,从根开始,找到一个范围值的关键字,然后在其子节点中继续查找,如此迭代,直到找到符合条件的第一个叶子节点,通过叶子链表的遍历最终返回查询结果。

    B+树的维护过程如图2和图3所示,在插入和删除元素时根据阈值对B+树的节点进行维护,以确保除了根节点以外,每个节点的个数不多于上限U,不少于下限L。所采取的维护策略则是当由于增加数据而造成节点个数超过上限U的时候,则对节点进行分裂,当由于删减数据而造成节点个数少于下限L的时候,或者移动邻节点的数据填补当前节点的缺额,使得当前节点的个数高于下限L,或者跟邻节点进行合并,但要选择那些合并之后节点个数不能超出上限U的节点进行合并。

    图2所示索引的插入过程,系统先根据关键字信息寻找到第一个符合要求的叶子节点,否则返回。如果当前叶子节点中存在空位多于一个则进入插入过程,否则新建一个节点。插入过程首先找到插入位置,如果当前插入的值大于该节点的最大值,则需要递归地调整父亲节点的最大值,此时如果没有新建节点,则插入过程终止,整个插入完成。如果有新建节点,需要分裂当前节点,分裂过程把当前节点分裂至新建节点,然后从新建节点中提取其最大值作为新元素,插入其父节点中,迭代这个过程直到根节点。如果根节点需要分裂,则新建一个节点当做根节点。

    图3所示索引的删除过程,系统首先根据关键字信息寻找到第一个符合要求的叶子节点,然后再叶子节点中定位到元素i,如果没有这个元素,则删除失败,否则进入删除流程。如果该元素是树根中的唯一元素,则删除根节点,删除过程终止,否则进入一般删除过程,一般删除过程首先确定到待删元素,然后先删掉找到的元素。如果删除的是节点最后一个元素,需要调整父节点元素,如果删除之后的元素数目大于设定的最小阈值,则删除过程结束,否则,需要启动合并过程,合并过程首先找到待合并节点combine。如果待合并节点combine内元素数目大于阈值,则从中移动一个元素到被删节点,保持平衡,删除结束,否则需要合并两个节点,合并节点后从其父节点中删除被合并节点,此时启动迭代过程删除父节点中的一个元素,直至根节点。

    (4)?索引节点空间回收

    索引在删除、合并的过程中会出现空闲节点,本发明利用一个空闲节点链表存储这些空闲节点,以备节点分裂之用。系统提供分配、释放空闲节点的方法:GetNewNode用于获取一个空闲节点,如果当前的空闲节点链表上存在空闲节点,则该方法取出第一个空闲节点返回,并调整空闲节点链表的首指;如果空闲节点链表为空,则从当前索引的后部返回一个空节点。如果后续空间不够则返回NULL。FreeNode方法用于释放一个指定节点node,将该节点中的信息清空,再将其加入空闲节点链表中供随时调用。

    以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的?;し段?。

    关于本文
    本文标题:一种支持IEC61850对象查询的SQL接口实现方法.pdf
    链接地址://www.4mum.com.cn/p-5868232.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 甘肃11选5预测 二分彩计划网 分分彩论坛 体彩中奖号码查询17326 股票指数期货 腾讯分分彩开奖号码不一样 江苏十一选五基本走势 广东体彩11选5 开心棋牌最新安卓版下载 江西多乐彩今日开奖 分析007 一定牛极速十一选五走势图 世纪娱乐棋牌游戏 炒股入门基础知识 瑞士五分彩在线计划 广东11选5-快乐彩