CN102054050A - 神通数据库的包机制的实现方法 - Google Patents

神通数据库的包机制的实现方法 Download PDF

Info

Publication number
CN102054050A
CN102054050A CN 201110033362 CN201110033362A CN102054050A CN 102054050 A CN102054050 A CN 102054050A CN 201110033362 CN201110033362 CN 201110033362 CN 201110033362 A CN201110033362 A CN 201110033362A CN 102054050 A CN102054050 A CN 102054050A
Authority
CN
China
Prior art keywords
bag
inclusion
packet header
system table
source code
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.)
Granted
Application number
CN 201110033362
Other languages
English (en)
Other versions
CN102054050B (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.)
TIANJIN SHENZHOU GENERAL DATA CO Ltd
Original Assignee
TIANJIN SHENZHOU GENERAL DATA CO Ltd
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 TIANJIN SHENZHOU GENERAL DATA CO Ltd filed Critical TIANJIN SHENZHOU GENERAL DATA CO Ltd
Priority to CN2011100333627A priority Critical patent/CN102054050B/zh
Publication of CN102054050A publication Critical patent/CN102054050A/zh
Application granted granted Critical
Publication of CN102054050B publication Critical patent/CN102054050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明涉及一种神通数据库的包机制的实现方法,包括包的创建方法、包的执行方法、包的编译方法和包的删除方法,通过包的创建、包的执行、包的编译和包的删除处理对包的系统表、包管理器和包实例进行管理,从而在神通数据库上实现包机制的功能。本发明实现了神通数据库与基于Oracle开发的应用程序的无缝对接功能,通过将复杂的应用逻辑转化为神通数据库服务器上的包,可以大大减少网络上数据的传输,降低应用开发的工作量,提高了神通数据库的执行效率。

Description

神通数据库的包机制的实现方法
技术领域
本发明属于数据库应用技术领域,尤其是一种神通数据库的包机制的实现方法。
背景技术
Oracle数据库中的包是使用包名进行分组的PL/SQL语句块的集合,它含有存储过程、函数和全局变量等。使用包来绑定存储过程和函数具有如下优点:(1)良好设计的包是对象(如存储过程、函数、全局变量等)的逻辑分组,当第一次调用包时,所有的代码被加载到内存,即:第一次调用包的成本虽然较高,但是之后的调用处理性能会比较高,因此,在应用程序中使用包,能够比较经济地反复使用存储过程和函数;(2)使用包可以收集类似的存储过程和函数,并赋予公共的上下文,实现对它们的封装;(3)在包中可以创建私有的存储过程和函数,只能被相同包中的其他存储过程和函数调用,这样实现了信息隐藏。综上所述,Oracle包机制在数据库后台和网络传输上不仅提高了执行效率,而且信息隐藏的特点提高了数据库的安全性。但是,Oracle包机制的实现细节是不公开的。
目前,神通数据库虽然也开发了自身的过程式SQL语言,但是和Oracle这样成熟的数据库相比,在功能完备性和执行效率方面存在一定差距,尤其是不支持包功能,使得基于Oracle开发的应用程序不能与神通数据库进行无缝对接,移植的工作量比较大;另外,基于神通数据库的复杂应用逻辑,仅仅使用存储过程和函数的效率没有使用包机制的效率高。
发明内容
本发明的目的在于克服现有技术的不足,提供一种全面兼容Orac le PL/SQLPackage的神通数据库的包机制的实现方法,解决了神通数据库与基于Oracle开发的应用程序的无缝对接功能,提高了神通数据库的执行效率。
本发明解决现有的技术问题是采取以下技术方案实现的:
一种神通数据库的包机制的实现方法,包括包的创建方法、包的执行方法、包的编译方法和包的删除方法,通过包的创建、包的执行、包的编译和包的删除处理对包的系统表、包管理器和包实例进行管理,从而在神通数据库上实现包机制的功能。
而且,所述包的系统表包括关系系统表、源码系统表、依赖关系系统表、包变量系统表和包子程序系统表;该关系系统表存放包与表关系的唯一标识号、名称、关系类型和所属模式信息;该源码系统表按行存放包头和包体的源码,该源码系统表得字段含有包的唯一标识号、名称、包头和包体的区别标识、源码的行号和每行源码;该依赖关系系统表存放依赖与被依赖对象的唯一标识;该包变量系统表存放包的唯一标识号、全局变量名称、包头和包体的变量的区别标识;该包子程序系统表存放包的子程序的唯一标识号、参数的数据类型、参数的输入和输出类型、参数名称、存储过程和函数的区别标识、子程序公有和私有区别标识、对应包的唯一标识号。
而且,所述的包管理器由多个包项目组成,每个包项目包括包的唯一标识号、包头和包体是否失效、包被置为有效时的时间戳、包头和包体的语法树、以及包中存储过程和函数的语法树,在包管理器上拥有一个读写锁。
而且,所述的包实例是在用户会话过程中建立的会话级的哈希表,该哈希表用于存放被使用的包的信息,该包实例所对应的包包括包的唯一标识号、包头声明的公有全局变量的拷贝、包体声明的私有全局变量的拷贝、以及包被置为有效时的时间戳的拷贝。
而且,所述的包的创建方法包括包头的创建方法和包体的创建方法,其中,包头的创建方法包括如下步骤:
(1)语法解析模块对包头创建语句的解析;
(2)包头在关系系统表中的存储;
(3)包头源码在源码系统表中的存储;
(4)过程语言模块对包头声明部分的编译;
(5)包头对象在包变量系统表、包子程序系统表中的存储;
(6)包头依赖关系在依赖关系系统表中的存储;
(7)包管理器中新增包项目;
所述的包体的创建方法包括如下步骤:
(1)语法解析模块对包体创建语句的解析;
(2)检查包头是否编译;
(3)包体在关系系统表和包体源码在源码系统表中的存储;
(4)过程语言模块对包体的解析;
(5)包体对象在包变量系统表、包子程序系统表中的存储;
(6)包体对包头的依赖性检查;
(7)在包管理器中对应包项目增加包体信息。
而且,所述的包的执行方法包括以下步骤:
(1)确定包和子程序的唯一标识号;
(2)获取包项目;
(3)获取包实例;
(4)调用包中的子程序的语法树;
(5)如果存在包的嵌套调用,则转到第(2)步重复执行;
(6)事物结束。
而且,所述的包的编译方法是在包失效时对包进行重新编译的处理方法,包括以下步骤:
(1)语法解析模块对包编译语句进行解析,如果编译语句为编译包体,则执行步骤(3)的包体编译步骤,否则执行步骤(2)的包头的编译步骤和步骤(3)的包体的编译步骤;
(2)包头的编译步骤:首先对包管理器加写锁;然后在源码系统表中获取包头源码,编译包头,重置包头对象在包变量系统表、包子程序系统表中的存储,重置包头在依赖关系系统表中的存储;重置包管理器中的包项目;即将包体的有效标识置为假,另外将依赖于该包的其他包的有效标识置为假;
(3)包体的编译步骤:首先对包管理器加写锁;然后从源码系统表中获取包体源码对包体进行编译,重置包变量系统表、包子程序系统表、依赖关系系统表中的存储;最后更新包项目中的包体编译信息,即将包体编译有效位置为真并更新时间戳,释放包管理器的写锁。
而且,所述的包失效的判断方法为:
(1)包头和包体在被创建后并且未被引用之前,处于失效状态;
(2)包依赖的关系被删除或结构发生变化,对应的包头或包体失效;
(3)包头失效时,包体失效;调用它的子程序失效;
(4)包头被重新创建,包头失效;
(5)包体被重新创建,包体失效;
(6)包头被重新编译,包体失效;
(7)包头被删除,包头和包体失效;
(8)包体被删除,包体失效;
(9)子程序被创建,引用失效包,包头变为有效,包体还是无效。
而且,所述的包的删除方法包括以下步骤:
(1)语法解析模块对包删除语句进行解析,如果包删除语句为删除包体,则执行步骤(3)的包体的删除步骤;否则执行步骤(2)的包头删除和步骤(3)的包体的删除步骤;
(2)包头的删除步骤:首先对包管理器加写锁,删除包对应的包项目,并将引用此包的其他包的包头有效位置为假,释放包管理器的写锁;然后清除包头和包体在包变量系统表、源码系统表、关系系统表和依赖关系系统表中的记录;
(3)包体的删除步骤:对包管理器加写锁,将包项目中的包体的有效标识置为假,释放包管理器的写锁;然后清除包体在包变量系统表、源码系统表、关系系统表和依赖关系系统表中的记录。
本发明的优点和积极效果是:
1、本发明通过包的创建、包的执行、包的编译和包的删除处理对包的系统表、包管理器和包实例进行管理,从而在神通数据库上实现包机制的功能,将复杂的应用逻辑中相关的方法或操作转换为存储过程或函数,将存储过程和函数共同操作的数据转化为全局变量,然后将这些存储过程、函数和全局变量组合成神通数据库的包,通过将复杂的应用逻辑转化为神通数据库服务器上的包,可以大大减少网络上数据的传输,降低应用开发的工作量。
2、本发明通过包机制使得用户能够访问包中的存储过程、函数和全局变量,并可查看包头中存储过程、函数和全局变量的声明,但是隐藏了包体中它们的定义,提高了神通数据库的安全性。
3、本发明通过包机制使得每个用户共享包中存储过程和函数的语法树,同时另有属于自己的全局变量的拷贝,从而即保证了包的操作的高效率,又保证了每个用户数据的独立性。
附图说明
图1是包头的创建方法流程图;
图2是包体的创建方法流程图;
图3是包的执行方法流程图;
图4是包的编译方法流程图;
图5是包的删除方法流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述。
一种神通数据库的包机制的实现方法,包括包的创建方法、包的执行方法、包的编译方法和包的删除方法,通过包的创建、包的执行、包的编译和包的删除处理对包的系统表、包管理器和包实例进行管理,从而在神通数据库上实现包机制的功能。
包的系统表用来存放与包有关的信息,包括:关系系统表、源码系统表、依赖关系系统表、包变量系统表和包子程序系统表。其中:关系系统表存放包、表等关系的唯一标识号、名称、关系类型、所属模式等信息;源码系统表按行存放包头和包体的源码,其字段有包的唯一标识号、名称、包头和包体的区别标识、源码的行号和每行源码;依赖关系系统表存放依赖与被依赖对象的唯一标识;包变量系统表存放包的唯一标识号、全局变量名称、包头和包体的变量的区别标识;包子程序系统表存放包的子程序的唯一标识号、参数的数据类型、参数的输入和输出类型、参数名称、存储过程和函数的区别标识、子程序公有和私有区别标识、对应包的唯一标识号等。
包管理器在神通数据库中具有全局属性,由多个包项目组成,每个包项目对应一个包;它记录了包的唯一标识号、包头和包体是否失效、包被置为有效时的时间戳、包头和包体的语法树、以及包中存储过程和函数的语法树。包管理器上还拥有一个读写锁,当遍历包管理器时,加读锁;当创建或删除包时,加写锁。
包实例是在神通数据库的用户会话过程中建立的会话级的哈希表,该哈希表用于存放被使用的包的信息。每个包实例对应一个包,它记录了包的唯一标识号、包头声明的公有全局变量的拷贝、包体声明的私有全局变量的拷贝、以及包被置为有效时的时间戳的拷贝。
下面分别对神通数据库的包的创建方法、包的执行方法、包的编译方法和包的删除方法分别进行说明。
1、包的创建方法包括包头的创建方法和包体的创建方法。
如图1所示,包头的创建过程包括以下步骤:
(1)语法解析模块对包头创建语句的解析
在本步骤中,语法解析模块负责对包头除声明语句外的定义部分的解析,确认包的创建语法正确性,并获取包的名称和所属模式。
(2)包头在关系系统表中的存储
在本步骤中,语言定义模块为包分配唯一标识号,并将唯一标识号、包名、所属模式等存放于关系系统表中。
(3)包头源码在源码系统表中的存储
在本步骤中,语言定义模块负责包在关系系统表中的存储和包头源码在源码系统表中的存储。
(4)过程语言模块对包头声明部分的编译
在本步骤中,过程源码模块从源码系统表中获取全局变量、存储过程和函数的声明进行编译。
(5)包头对象在包变量系统表、包子程序系统表中的存储
在本步骤中,过程语言模块将上一步编译出的全局变量的信息存入包变量系统表,将存储过程和函数的信息存入包子程序系统表。
(6)包头依赖关系在依赖关系系统表中的存储
在本步骤中,过程语言模块将包的唯一标识号和被引用的其他包和表的唯一标识号存放与依赖关系系统表中。
(7)包管理器中新增包项目
在本步骤中,首先对包管理器加写锁;然后构造一个新的包项目,存入包的唯一标识号、包头的语法树,将包头的有效标识置为真;最后释放包管理器的写锁。
如图2所示,包体的创建方法,包括以下步骤:
(1)语法解析模块对包体创建语句的解析
在本步骤中,同包头的创建一样,语法解析模块负责对创建包体的语句进行解析,确认包的创建语法正确性,并获取包的名称和所属模式。
(2)检查包头是否编译
在本步骤中,语法解析模块检查包头后,如果包头没有编译,则对包头进行编译,即从源码系统表中获取包头的源码,过程语言模块对包头的声明部分进行编译,然后将包头对象存放于包变量系统表和包子程序系统表中,将包对其他包和表的依赖关系存放于依赖关系系统表中,并在包管理器中新增包项目。
(3)包体在关系系统表和包体源码在源码系统表中的存储
在本步骤中,语言定义模块为包体在关系系统表中分配唯一标志号,并将包体的源代码写入源码系统表中。
(4)过程语言模块对包体的解析
在本步骤中,过程语言模块将包体中的声明语句、子程序的定义语句和初始化语句分别进行解析。在包体的存储过程或函数的定义中,嵌套引用了存储过程或函数,如果引用的是本包的、隐含的包名在解析时必须补上。包的存储过程或函数被引用前,必须先声明它。
(5)包体对象在包变量系统表、包子程序系统表中的存储
包体对象是包的私有对象,在本步骤中,过程语言模块将包体对象存储在包变量系统表和包子程序系统表中。
(6)包体对包头的依赖性检查
在本步骤中,过程语言模块进行包体对包头的依赖性检查,由于包体的解析不仅要检查语句块是否符合语法规则,还要检查包体中的过程或函数的说明和包头中对应的过程或函数是否完全相同。该依赖性检查具体方法为:包头中声明的函数或存储过程在包体中有同名的对象;函数或存储过程的参数个数相同;函数或存储过程的参数的数据类型相同;函数或存储过程的参数的输入输出类型相同;在包头和包体的声明语句部分,不能声明相同名字的变量。
(7)在包管理器中对应包项目增加包体信息
在本步骤中,首先对包管理器加写锁;然后找到包管理器中对应该包的包项目,将包体的语法树加入,并把包体有效标识置为真,另外记录有效时的时间戳;最后释放包管理器的写锁。
2、包的执行方法。
神通数据库对包的执行采用编译预处理技术,即在词法扫描中发现对包中对象的调用语句后,立即找到包的源代码进行解析,然后将解析结果的指针放到包管理器中。在执行包的对象调用语句时,根据存储过程或函数的标志号直接定位到它的语法树然后解释执行该语法树。如果找不到对应的语法树,判断包是否失效,如果是则重新编译;如果不是则提取源码进行重编译。由于包的预编译只需要编译一次包的源代码,在包中对象被多次引用的情况下,可以避免每次执行该对象时的重复编译,从而提高了包的执行效率。
如图3所示,包的执行方法包括以下步骤:
(1)确定包和子程序的唯一标识号
在本步骤中,通过对“模式名.包名.包中对象名”的解析,确定包中存储过程或函数的唯一标识号。
(2)获取包项目
在本步骤中,对包管理器加读锁;定位到当前包的包项目,如果有包头或包体失效,则对它进行重新编译。
(3)获取包实例
在本步骤中,如果是本会话中首次执行该包中的对象,则对包进行初始化操作。首先,从包项目拷贝该包的全局变量和有效时的时间戳,然后执行初始化代码,最后将这个包实例插入本会话中的哈希表中;如果不是首次执行该包中的对象,则定位到本会话中的当前包的包实例,判断它和对应的包项目的时间戳是否相等。如果不相等,则对包进行再次初始化操作。
(4)调用包中的子程序的语法树
在本步骤中,通过存储过程或函数的唯一标识号,由此调用对应的语法树。如果涉及全局变量的读写,则对本会话中的包实例的全局变量的拷贝进行操作。
(5)如果存在包的嵌套调用,则转到第(2)步重复执行
(6)事物结束
在本步骤中,事物结束时将自动释放包管理器的读锁。
3、包的编译方法
在神通数据库中,当包失效时,需要对包进行重新编译。在如下情况下,包处于失效状态:
(1)包头和包体在被创建后并且未被引用之前,处于失效状态;
(2)包依赖的关系被删除或结构发生变化,对应的包头或包体失效;
(3)包头失效时,包体失效;调用它的子程序失效;
(4)包头被重新创建,包头失效;
(5)包体被重新创建,包体失效;
(6)包头被重新编译,包体失效;
(7)包头被删除,包头和包体失效;
(8)包体被删除,包体失效;
(9)子程序被创建,引用失效包,包头变为有效,包体还是无效。
当包失效时,在包管理器中设置失效标识,并删除包变量系统表、包子程序系统表中的该包的对象对应的信息。包每次被执行时,都需要判断包头和包体是否失效,如果包失效,则需要进行包的编译处理。
如图4所示,包的编译方法包括以下步骤:
(1)语法解析模块对包编译语句进行解析,如果编译语句为编译包体,则执行步骤(3)的包体编译步骤,否则执行步骤(2)的包头的编译步骤和步骤(3)的包体的编译步骤;
(2)包头的编译步骤:首先对包管理器加写锁;然后在源码系统表中获取包头源码,编译包头,重置包头对象在包变量系统表、包子程序系统表中的存储,重置包头在依赖关系系统表中的存储;重置包管理器中的包项目;即将包体的有效标识置为假,另外将依赖于该包的其他包的有效标识置为假;
(3)包体的编译步骤:首先对包管理器加写锁;然后从源码系统表中获取包体源码对包体进行编译,重置包变量系统表、包子程序系统表、依赖关系系统表中的存储;最后更新包项目中的包体编译信息,即将包体编译有效位置为真并更新时间戳,释放包管理器的写锁。
4、包的删除方法
如图5所示,包的删除方法包括以下步骤:
(1)语法解析模块对包删除语句进行解析,如果包删除语句为删除包体,则执行步骤(3)的包体的删除步骤;否则执行步骤(2)的包头删除和步骤(3)的包体的删除步骤;
(2)包头的删除步骤:首先对包管理器加写锁,删除包对应的包项目,并将引用此包的其他包的包头有效位置为假,释放包管理器的写锁;然后清除包头和包体在包变量系统表、源码系统表、关系系统表和依赖关系系统表中的记录;
(3)包体的删除步骤:对包管理器加写锁,将包项目中的包体的有效标识置为假,释放包管理器的写锁;然后清除包体在包变量系统表、源码系统表、关系系统表和依赖关系系统表中的记录。
本发明所述的实施例是说明性的,而不是限定性的,因此发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (9)

1.一种神通数据库的包机制的实现方法,其特征在于:包括包的创建方法、包的执行方法、包的编译方法和包的删除方法,通过包的创建、包的执行、包的编译和包的删除处理对包的系统表、包管理器和包实例进行管理,从而在神通数据库上实现包机制的功能。
2.根据权利要求1所述的神通数据库的包机制的实现方法,其特征在于:所述包的系统表包括关系系统表、源码系统表、依赖关系系统表、包变量系统表和包子程序系统表;该关系系统表存放包与表关系的唯一标识号、名称、关系类型和所属模式信息;该源码系统表按行存放包头和包体的源码,该源码系统表得字段含有包的唯一标识号、名称、包头和包体的区别标识、源码的行号和每行源码;该依赖关系系统表存放依赖与被依赖对象的唯一标识;该包变量系统表存放包的唯一标识号、全局变量名称、包头和包体的变量的区别标识;该包子程序系统表存放包的子程序的唯一标识号、参数的数据类型、参数的输入和输出类型、参数名称、存储过程和函数的区别标识、子程序公有和私有区别标识、对应包的唯一标识号。
3.根据权利要求1所述的神通数据库的包机制的实现方法,其特征在于:所述的包管理器由多个包项目组成,每个包项目包括包的唯一标识号、包头和包体是否失效、包被置为有效时的时间戳、包头和包体的语法树、以及包中存储过程和函数的语法树,在包管理器上拥有一个读写锁。
4.根据权利要求1所述的神通数据库的包机制的实现方法,其特征在于:所述的包实例是在用户会话过程中建立的会话级的哈希表,该哈希表用于存放被使用的包的信息,该包实例所对应的包包括包的唯一标识号、包头声明的公有全局变量的拷贝、包体声明的私有全局变量的拷贝、以及包被置为有效时的时间戳的拷贝。
5.根据权利要求1至4任一项所述的神通数据库的包机制的实现方法,其特征在于:所述的包的创建方法包括包头的创建方法和包体的创建方法,其中,包头的创建方法包括如下步骤:
(1)语法解析模块对包头创建语句的解析;
(2)包头在关系系统表中的存储;
(3)包头源码在源码系统表中的存储;
(4)过程语言模块对包头声明部分的编译;
(5)包头对象在包变量系统表、包子程序系统表中的存储;
(6)包头依赖关系在依赖关系系统表中的存储;
(7)包管理器中新增包项目;
所述的包体的创建方法包括如下步骤:
(1)语法解析模块对包体创建语句的解析;
(2)检查包头是否编译;
(3)包体在关系系统表和包体源码在源码系统表中的存储;
(4)过程语言模块对包体的解析;
(5)包体对象在包变量系统表、包子程序系统表中的存储;
(6)包体对包头的依赖性检查;
(7)在包管理器中对应包项目增加包体信息。
6.根据权利要求1至4任一项所述的神通数据库的包机制的实现方法,其特征在于:所述的包的执行方法包括以下步骤:
(1)确定包和子程序的唯一标识号;
(2)获取包项目;
(3)获取包实例;
(4)调用包中的子程序的语法树;
(5)如果存在包的嵌套调用,则转到第(2)步重复执行;
(6)事物结束。
7.根据权利要求1至4任一项所述的神通数据库的包机制的实现方法,其特征在于:所述的包的编译方法是在包失效时对包进行重新编译的处理方法,包括以下步骤:
(1)语法解析模块对包编译语句进行解析,如果编译语句为编译包体,则执行步骤(3)的包体编译步骤,否则执行步骤(2)的包头的编译步骤和步骤(3)的包体的编译步骤;
(2)包头的编译步骤:首先对包管理器加写锁;然后在源码系统表中获取包头源码,编译包头,重置包头对象在包变量系统表、包子程序系统表中的存储,重置包头在依赖关系系统表中的存储;重置包管理器中的包项目;即将包体的有效标识置为假,另外将依赖于该包的其他包的有效标识置为假;
(3)包体的编译步骤:首先对包管理器加写锁;然后从源码系统表中获取包体源码对包体进行编译,重置包变量系统表、包子程序系统表、依赖关系系统表中的存储;最后更新包项目中的包体编译信息,即将包体编译有效位置为真并更新时间戳,释放包管理器的写锁。
8.根据权利要求7所述的神通数据库的包机制的实现方法,其特征在于:所述的包失效的判断方法为:
(1)包头和包体在被创建后并且未被引用之前,处于失效状态;
(2)包依赖的关系被删除或结构发生变化,对应的包头或包体失效;
(3)包头失效时,包体失效;调用它的子程序失效;
(4)包头被重新创建,包头失效;
(5)包体被重新创建,包体失效;
(6)包头被重新编译,包体失效;
(7)包头被删除,包头和包体失效;
(8)包体被删除,包体失效;
(9)子程序被创建,引用失效包,包头变为有效,包体还是无效。
9.根据权利要求1至4任一项所述的神通数据库的包机制的实现方法,其特征在于:所述的包的删除方法包括以下步骤:
(1)语法解析模块对包删除语句进行解析,如果包删除语句为删除包体,则执行步骤(3)的包体的删除步骤;否则执行步骤(2)的包头删除和步骤(3)的包体的删除步骤;
(2)包头的删除步骤:首先对包管理器加写锁,删除包对应的包项目,并将引用此包的其他包的包头有效位置为假,释放包管理器的写锁;然后清除包头和包体在包变量系统表、源码系统表、关系系统表和依赖关系系统表中的记录;
(3)包体的删除步骤:对包管理器加写锁,将包项目中的包体的有效标识置为假,释放包管理器的写锁;然后清除包体在包变量系统表、源码系统表、关系系统表和依赖关系系统表中的记录。
CN2011100333627A 2011-01-30 2011-01-30 神通数据库的包机制的实现方法 Active CN102054050B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100333627A CN102054050B (zh) 2011-01-30 2011-01-30 神通数据库的包机制的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100333627A CN102054050B (zh) 2011-01-30 2011-01-30 神通数据库的包机制的实现方法

Publications (2)

Publication Number Publication Date
CN102054050A true CN102054050A (zh) 2011-05-11
CN102054050B CN102054050B (zh) 2012-08-01

Family

ID=43958372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100333627A Active CN102054050B (zh) 2011-01-30 2011-01-30 神通数据库的包机制的实现方法

Country Status (1)

Country Link
CN (1) CN102054050B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674110A (zh) * 2019-09-09 2020-01-10 中国建设银行股份有限公司 银行分布式数据库的构建方法及装置
CN111414173A (zh) * 2020-05-04 2020-07-14 武汉众邦银行股份有限公司 一种基于数据库存储过程的自动部署方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004759A (zh) * 2007-01-19 2007-07-25 兰州大学 利用计算机从已有数据库中转换生成特定数据包的方法
US7660794B2 (en) * 2003-06-03 2010-02-09 Hewlett-Packard Development Company, L.P. Method and program product for reducing database walk frequency while repetitively accessing a firewall connection and rule database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660794B2 (en) * 2003-06-03 2010-02-09 Hewlett-Packard Development Company, L.P. Method and program product for reducing database walk frequency while repetitively accessing a firewall connection and rule database
CN101004759A (zh) * 2007-01-19 2007-07-25 兰州大学 利用计算机从已有数据库中转换生成特定数据包的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674110A (zh) * 2019-09-09 2020-01-10 中国建设银行股份有限公司 银行分布式数据库的构建方法及装置
CN111414173A (zh) * 2020-05-04 2020-07-14 武汉众邦银行股份有限公司 一种基于数据库存储过程的自动部署方法
CN111414173B (zh) * 2020-05-04 2023-08-11 武汉众邦银行股份有限公司 一种基于数据库存储过程的自动部署方法

Also Published As

Publication number Publication date
CN102054050B (zh) 2012-08-01

Similar Documents

Publication Publication Date Title
CN108052321B (zh) 一种基于配置信息自动生成区块链智能合约的方法
CN101334728B (zh) 一种基于xml文档描述的界面生成方法和装置
CN103942281B (zh) 一种对持久化存储的对象进行操作的方法及装置
CN108629035A (zh) 一种基于jdbc代理的异构数据库应用迁移方法
US11023443B2 (en) Collaborative planning for accelerating analytic queries
US20040044687A1 (en) Apparatus and method using pre-described patterns and reflection to generate a database schema
CN102663007B (zh) 一种支持敏捷开发和横向扩展的数据存储与查询方法
CN103049251B (zh) 一种数据库持久层装置及数据库操作方法
CN102981823B (zh) 一种领域驱动开发插件系统
CN100561476C (zh) 一种基于asn类型对象的代码生成方法
CN107168872A (zh) 代码检查的方法、装置、存储介质和处理器
CN101841515A (zh) 可变目标的协议数据单元编解码代码自动生成的实现方法
CN103914290A (zh) 一种操作命令处理方法及装置
CN100517222C (zh) 支持转换引擎与映射规则相分离的模型转换装置及其方法
CN107077496A (zh) 用于索引编译以优化索引使用的系统、方法和设备
US8209340B2 (en) Efficient functional representation of result shaping
CN101236503A (zh) 一种热部署实体类组件
CN106020847A (zh) 一种持久层开发框架配置sql的方法和装置
US8707260B2 (en) Resolving interdependencies between heterogeneous artifacts in a software system
Li et al. An object-relational IFC storage model based on oracle database
CN102054050B (zh) 神通数据库的包机制的实现方法
Lämmel et al. Design patterns for functional strategic programming
CN104391892A (zh) 一种基于元数据驱动的地产信息访问系统
CN103136379B (zh) 一种基于Android终端的多数据库访问方法
CN103135972A (zh) 模块知识库及基于模块知识库的业务开发方法及系统

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