CN101183363A - 一种利用系统表结构统一配置管理内存数据库的方法 - Google Patents

一种利用系统表结构统一配置管理内存数据库的方法 Download PDF

Info

Publication number
CN101183363A
CN101183363A CNA2006101451206A CN200610145120A CN101183363A CN 101183363 A CN101183363 A CN 101183363A CN A2006101451206 A CNA2006101451206 A CN A2006101451206A CN 200610145120 A CN200610145120 A CN 200610145120A CN 101183363 A CN101183363 A CN 101183363A
Authority
CN
China
Prior art keywords
constraint
index
database
row
logic
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
CNA2006101451206A
Other languages
English (en)
Other versions
CN101183363B (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN200610145120A priority Critical patent/CN101183363B/zh
Publication of CN101183363A publication Critical patent/CN101183363A/zh
Application granted granted Critical
Publication of CN101183363B publication Critical patent/CN101183363B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

一种利用系统表结构统一配置管理内存数据库的方法,包括如下步骤:(1)创建一个配置文件,在其中以结构数组的方式配置并存储各种数据库逻辑对象的描述,逻辑对象至少包括一个业务表,业务表的结构描述至少包括业务表属性描述结构、列描述结构(2)确定对应于不同逻辑对象的创建函数,其中至少包括业务表创建函数(3)在数据库启动时,读取配置文件,并利用对应于不同逻辑对象的创建函数,分别创建配置文件中配置的数据库逻辑对象,其中至少包括利用业务表创建函数将业务表创建到数据库内存映像中(4)将配置文件中业务表的具体内容读入创建好的内存表中,在读入的过程中,对数据库进行检查约束和索引约束的检查。

Description

一种利用系统表结构统一配置管理内存数据库的方法
技术领域
本发明涉及一种管理内存数据库的方法。具体的说,涉及一种对数据库逻辑对象的管理方法,主要应用于通讯相关的交换机、基站等内存数据库的管理。
背景技术
在典型的内存数据系统中,不论我们使用商用的内存数据库还是自行开发的数据库,对于数据库业务逻辑要求,都需要开发人员自己实现,传统的方式是采用硬编码的方式进行各种数据的装载和数据装载时的校验,这都带来大量的工作量。一种折中方式是,用重复的逻辑流程来创建数据库的一些逻辑对象,如所有的表以及索引,重复的逻辑流程对数据库的一些重要的逻辑对象进行约束检查,比如主、外键和索引等。即使这样也同样需要编写大量重复的代码,而对于表的每个字段的CHECK检查约束,由于其代码量非常大,一般在数据库装载时并不进行检查,而是由外部使用者来保证。显而易见这种数据库的装载方法不但工作量大,而且也不能对装载的数据进行完整的校验,数据库的完整性和合法性仍不能得到强有力的保证。
通讯行业软件的编写一般都是嵌入式的开发,数据的存放都会使用到内存数据库,不论是商用的内存数据库还是自行研发的内存数据库,对数据库中逻辑对象的创建和管理都没有一套统一的方法,所以上述问题比较普遍。
发明内容
本发明的目的在于提供一种管理内存数据库的方法,对数据库逻辑对象(包括业务表、字段、索引、主外键、字段的检查范围、字段的更新属性、索引的更新属性等)进行统一配置管理,将原来重复的创建数据库逻辑对象、重复的数据装载的过程统一处理,并且可以充分的对传入数据库的数据进行完整校验,使数据库的管理功能更强大,也极大的减少代码的维护量。
本发明的技术方案如下:
一种利用系统表结构统一配置管理内存数据库的方法,其特征在于,包括如下步骤:
(1)创建一个配置文件,在其中以结构数组的方式配置并存储各种数据库逻辑对象的描述,所述逻辑对象至少包括一个业务表,该业务表的结构描述至少包括业务表属性描述结构、列描述结构;
(2)确定对应于不同逻辑对象的创建函数,其中至少包括业务表创建函数;
(3)在数据库启动时,读取所述配置文件,并利用所述对应于不同逻辑对象的创建函数,分别创建所述配置文件中配置的数据库逻辑对象,其中至少包括利用所述业务表创建函数将所述业务表创建到数据库内存映像中。
进一步,上述步骤(1)中所述逻辑对象可包括字段、索引、主外键、字段的检查范围、字段的更新属性、索引的更新属性,通过数据库约束描述结构、数据库约束具体列描述结构来描述。
进一步,上述方法还包括:
(4)所述逻辑对象创建完成后,将配置文件中业务表的具体内容读入创建好的内存表中,在读入的过程中,对数据库进行检查约束和索引约束的检查。
上述步骤(4)所述检查约束检查包括以下步骤:
(41)循环数据库检查约束结构中的记录,根据传入的表句柄查到表相关的检查约束字段名以及范围值;
(42)根据查询到的句柄和字段名,在表具体列描述结构中查询约束具体的列,和该列在其所属表中的位置;
(43)通过该列所在的位置,索引到传入地址需要偏移的字节数,并取出该入参值;
(44)将该入参值与解析后的描述约束相比较确定检查约束是否通过。
上述步骤(4)所述的索引约束检查包括以下步骤:
(45)循环索引约束结构,根据传入的表句柄查到表相关索引约束和具体列;
(46)根据系统列描述结构可以偏移确定传入记录相应的元素为索引使用的列,然后组合成索引字符串;
(47)调用数据库原语提供的定位函数来检查相关的记录是否存在。
此外,在数据库开始装载前还进行外键约束检查等。
本发明提出的方法,具有以下有益效果:采用配置的方式添加数据库逻辑对象,逻辑对象的添加和修改非常方便;可以对数据的合法性和完整性校验,对传入数据库的数据进行详细的校验;可以减少数据库程序装载和接口相关的程序的代码量;引入系统表管理机制可以对数据库提供更完善的管理,使数据库更具有扩充性。
附图说明
图1为本发明的检查约束的流程示意图
图2为本发明索引检查的流程示意图
具体实施方式
本发明采用系统表配置管理的方式,对数据库的各种逻辑对象进行配置,彻底代替以前对业务表以及其它数据库逻辑对象的硬编码方式,全部采用统一配置的方式进行。在数据库的启动和运行过程中,对数据的所有操作,包括插入、删除、更新等,都可以通过系统表的配置描述进行。
在配置文件中利用结构保存数据库的各种数据库的逻辑对象,在数据库启动时,首先利用配置数据创建内存数据库逻辑对象,而后数据库进行数据装载时候,使用统一的加载方法加载数据,同时根据系统表结构中记录的各逻辑对象的关系,对数据的合法性和完整性进行校验。
为了安全,将系统表结构配置数据代码段进行只读保护,不允许对这些系统表结构中的数据进行修改操作。同时定期从文件读取系统表的相关配置数据与数据库内存映像内容进行比较,从而避免系统表在长期运行中被悄悄地非法改写风险。
以下详细说明具体系统表内存数据库逻辑对象的创建方法。
首先配置数据库的逻辑对象。可分为业务表属性描述结构、列描述结构、数据库一些约束描述结构、数据库约束具体列描述结构,并将该数据代码段写保护。
各系统表结构的描述如下:
系统表表结构的描述,主要是记录数据库中使用的业务表基本信息,一般结构中包含的元素如下表1:
    序号     字段含义     备注
    1     表句柄     唯一
    2     表名称
    3     最小记录数目
    4     最大记录数目
表1
系统表具体列结构的描述,主要是记录数据库中业务表的具体列信息,一般结构中包含的元素如下表2:
Figure A20061014512000071
  序号   字段含义   备注
  5   是否保存
表2
系统表数据库约束描述结构,主要是记录数据库中业务表约束逻辑对象,包括主键、外键、索引、CHECK检查约束、字段更新属性、索引更新属性等,包含元素如下表3:
Figure A20061014512000081
表3
系统表数据库约束具体列描述结构,主要是记录数据库中各约束包含的具体列,比如主键包含的具体列、索引包含的具体列。包含的元素如下表4:
Figure A20061014512000082
表4
在数据库启动的时候读取配置好的数据,该数据以结构数组的方式存储,将逻辑对象信息创建到数据库内存映象中;其中内存映象的存在主要是为了管理数据的存储方式,本方法的使用者可以只将自己需要的逻辑对象信息创建到数据库内存映象中,即部分逻辑对象可以没有数据库内存映象,而只在配置结构中存在。
下面的表5到表8是分别对应上述表1到表4所给出的一个具体实例。
Figure A20061014512000091
表5业务表定义格式
Figure A20061014512000092
表6表具体列定义格式
Figure A20061014512000093
表7检查约束数组定义格式
Figure A20061014512000094
表8索引约束数组定义格式
以下结合附图及实例,进一步详细说明如何配置并创建一个逻辑对象,如何进行CHECK约束检查、业务表的索引约束检查。
配置并创建一个逻辑对象,例如一张业务表的步骤:
(1)在结构中配置业务表的基本信息,如表5中配置一个业务表的基本信息gtSysTabTuple,表6中一个业务表的具体列信息gtSysColumnTuple;
(2)在数据库启动时,先将表基本信息参数传入创建表函数,再将该表的列信息传入创建具体列的函数;
(3)其它逻辑对象如索引、主外键的创建也如上述步骤(2)所描述。
在数据库开始装载时,为了保证数据库的完整性和一致性,需要在装载前进行业务表的CHECK检查约束检查、业务表的索引约束检查、外键约束检查等。
图1为相应的CHECK检查约束的流程示意图,包括以下步骤:
(1)查询检查约束结构数组gtSysConsChkTuple,根据传入的表句柄查到表相关的检查约束句柄、检查约束包含的具体字段以及该检查约束的范围值,即某个字段合法取值的所属的范围,举例中为查询到STUDENT表中byClassNo字段取值范围为1-18,20-24;
(2)在具体列描述结构中gtSysColumnTuple,根据查询到的检查列的名称byClassNo来定位该列在其所属表中的位置为第23个字节;
(3)通过该列所在的位置可以计算出该列在整条记录中的位置,相对于记录头的偏移量为22,由于外部数据传入数据库时候,都是以整条记录加载的,所以根据上述偏移量索引到传入地址需要偏移的字节数,并取出该入参值;
(4)该入参值与描述约束相比较可检查约束是否通过,如在1-18,20-24的范围内则为通过,反之为不通过。
图2为相应的索引约束检查的流程示意图,包括以下步骤:
(1)查询索引约束结构数组gtSysConsIndexTuple,根据传入的表句柄STUDENT_TABLE_HANDLE查到表相关索引约束byStudentNo列以及该列在这个索引中的位置1,当然索引也可以有多列组成;
(2)在业务表列描述结构中gtSysColumnTuple,根据查询到的索引具体列的名称byStudentNo来定位该列,得到该列的具体属性,如类型、长度以及该列相对于记录头的偏移量;
(3)根据上述计算的字段的偏移量可以确定传入记录相应的元素为索引使用的列,然后将索引具体列的值取出,如果某一个索引是有多列组成,则需要将索引包含的具体列的值分别取出,组合成索引值;
(4)根据索引值调用数据库原语提供的定位函数来检查相关的记录是否存在。
外键引用约束检查实现的方式类似上述索引约束,下面对其步骤进行简单描述:
数据进行装载时候,需要通过约束结构检查其是否有外键约束;
如果有类似约束,根据索引定位的方式来定位该外键值是否在父表中存在。
在删除记录时查询是否有子表引用该表,定位方式类似索引定位(对于级联的可以不进行该步骤的检查)。
其它类型的约束检查,所有的逻辑约束对象都可以配置在系统约束结构中,如果某些约束是多字段约束,则可以继续在约束具体列结构中描述。传入记录时候约束的检查方法雷同其它约束检查方式。
利用上述方法,可以大幅度的减少程序的代码量,可避免或减少外部数据对内存数据库数据破坏,可以保证对数据的合法性和完整性校验,同时也为数据库的后续扩展打下坚实的基础。

Claims (9)

1.一种利用系统表结构统一配置管理内存数据库的方法,其特征在于,包括如下步骤:
(1)创建一个配置文件,在其中以结构数组的方式配置并存储各种数据库逻辑对象的描述,所述逻辑对象至少包括一个业务表,该业务表的结构描述至少包括业务表属性描述结构、列描述结构;
(2)确定对应于不同逻辑对象的创建函数,其中至少包括业务表创建函数;
(3)在数据库启动时,读取所述配置文件,并利用所述对应于不同逻辑对象的创建函数,分别创建所述配置文件中配置的数据库逻辑对象,其中至少包括利用所述业务表创建函数将所述业务表创建到数据库内存映像中。
2.如权利要求1所述的方法,其特征在于,步骤(1)中所述逻辑对象进一步包括字段、索引、主外键、字段的检查范围、字段的更新属性、索引的更新属性,通过数据库约束描述结构、数据库约束具体列描述结构来描述。
3.如权利要求2所述的方法,其特征在于,进一步包括:
(4)所述逻辑对象创建完成后,将配置文件中业务表的具体内容读入创建好的内存表中,在读入的过程中,对数据库进行检查约束和索引约束的检查。
4.如权利要求3所述的方法,其特征在于,所述检查约束检查包括以下步骤:
(41)循环数据库检查约束结构中的记录,根据传入的表句柄查到表相关的检查约束字段名以及范围值;
(42)根据查询到的句柄和字段名,在表具体列描述结构中查询约束具体的列,和该列在其所属表中的位置;
(43)通过该列所在的位置,索引到传入地址需要偏移的字节数,并取出该入参值;
(44)将该入参值与解析后的描述约束相比较确定检查约束是否通过。
5.如权利要求3所述的方法,其特征在于,所述的索引约束检查包括以下步骤:
(45)循环索引约束结构,根据传入的表句柄查到表相关索引约束和具体列;
(46)根据系统列描述结构可以偏移确定传入记录相应的元素为索引使用的列,然后组合成索引字符串;
(47)调用数据库原语提供的定位函数来检查相关的记录是否存在。
6.如权利要求3所述的方法,其特征在于:在数据库开始装载前还进行业务表的外键约束检查。
7.如权利要求1所述的方法,其特征在于:所述步骤(3)中,将全部或部分逻辑对象创建到数据库内存映象中。
8.如权利要求1所述的方法,其特征在于:将所述系统表的代码段设置为只读方式。
9.如权利要求1所述的方法,其特征在于:定期读取系统表的相关配置数据与数据库内存映像内容进行比较,对业务表中被非法改写的数据进行修正。
CN200610145120A 2006-11-13 2006-11-13 一种利用系统表结构统一配置管理内存数据库的方法 Expired - Fee Related CN101183363B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200610145120A CN101183363B (zh) 2006-11-13 2006-11-13 一种利用系统表结构统一配置管理内存数据库的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200610145120A CN101183363B (zh) 2006-11-13 2006-11-13 一种利用系统表结构统一配置管理内存数据库的方法

Publications (2)

Publication Number Publication Date
CN101183363A true CN101183363A (zh) 2008-05-21
CN101183363B CN101183363B (zh) 2010-05-12

Family

ID=39448643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610145120A Expired - Fee Related CN101183363B (zh) 2006-11-13 2006-11-13 一种利用系统表结构统一配置管理内存数据库的方法

Country Status (1)

Country Link
CN (1) CN101183363B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110134A (zh) * 2010-12-28 2011-06-29 青岛海信网络科技股份有限公司 轨道交通用实时数据库、操作方法及操作装置
CN102262636A (zh) * 2010-05-25 2011-11-30 中国移动通信集团浙江有限公司 生成数据库分区执行计划的方法及装置
CN102722540A (zh) * 2012-05-23 2012-10-10 中兴通讯股份有限公司 实时内存数据库系统中数据处理方法及装置
CN103064950A (zh) * 2012-12-27 2013-04-24 北京思特奇信息技术股份有限公司 一种数据库客户端构建方法及系统
CN104737165A (zh) * 2012-09-12 2015-06-24 甲骨文国际公司 用于内存数据库查询处理的最优数据表示和辅助结构
CN105022739A (zh) * 2014-04-21 2015-11-04 腾讯科技(北京)有限公司 数据的存储方法及装置
CN107633014A (zh) * 2017-08-17 2018-01-26 深圳市诚壹科技有限公司 一种数据存储方法及服务器
CN108255938A (zh) * 2017-12-07 2018-07-06 中国航空工业集团公司西安航空计算技术研究所 一种机载嵌入式内存数据库映像生成和加载方法
CN109189794A (zh) * 2018-09-13 2019-01-11 郑州云海信息技术有限公司 一种内存数据库的数据机制管理配置系统及方法
CN110019221A (zh) * 2017-12-18 2019-07-16 厦门本能管家科技有限公司 一种内存映像型数据库系统
CN110750597A (zh) * 2018-07-23 2020-02-04 北京国双科技有限公司 数据处理方法及装置、存储介质和处理器
CN112783896A (zh) * 2021-01-12 2021-05-11 湖北宸威玺链信息技术有限公司 一种用于加载文件减少内存使用率的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6096094A (en) * 1997-10-03 2000-08-01 National Instruments Corporation Configuration manager for configuring a data acquisition system
CN1228728C (zh) * 2002-06-18 2005-11-23 国际商业机器公司 在web应用中产生定制商业报表的系统和方法
CN1265309C (zh) * 2002-10-30 2006-07-19 华为技术有限公司 一种通过协议代理方式访问数据库的方法
CN1652078A (zh) * 2004-02-05 2005-08-10 华为技术有限公司 利用基于数据库的应用程序接口系统实现远程调用的方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262636A (zh) * 2010-05-25 2011-11-30 中国移动通信集团浙江有限公司 生成数据库分区执行计划的方法及装置
CN102262636B (zh) * 2010-05-25 2012-10-10 中国移动通信集团浙江有限公司 生成数据库分区执行计划的方法及装置
CN102110134A (zh) * 2010-12-28 2011-06-29 青岛海信网络科技股份有限公司 轨道交通用实时数据库、操作方法及操作装置
CN102110134B (zh) * 2010-12-28 2013-05-29 青岛海信网络科技股份有限公司 轨道交通用实时数据库、操作方法及操作装置
CN102722540A (zh) * 2012-05-23 2012-10-10 中兴通讯股份有限公司 实时内存数据库系统中数据处理方法及装置
CN102722540B (zh) * 2012-05-23 2018-08-17 南京中兴新软件有限责任公司 实时内存数据库系统中数据处理方法及装置
CN104737165A (zh) * 2012-09-12 2015-06-24 甲骨文国际公司 用于内存数据库查询处理的最优数据表示和辅助结构
CN103064950B (zh) * 2012-12-27 2016-09-14 北京思特奇信息技术股份有限公司 一种数据库客户端构建方法及系统
CN103064950A (zh) * 2012-12-27 2013-04-24 北京思特奇信息技术股份有限公司 一种数据库客户端构建方法及系统
CN105022739A (zh) * 2014-04-21 2015-11-04 腾讯科技(北京)有限公司 数据的存储方法及装置
CN105022739B (zh) * 2014-04-21 2019-05-21 腾讯科技(北京)有限公司 数据的存储方法及装置
CN107633014A (zh) * 2017-08-17 2018-01-26 深圳市诚壹科技有限公司 一种数据存储方法及服务器
CN108255938A (zh) * 2017-12-07 2018-07-06 中国航空工业集团公司西安航空计算技术研究所 一种机载嵌入式内存数据库映像生成和加载方法
CN110019221A (zh) * 2017-12-18 2019-07-16 厦门本能管家科技有限公司 一种内存映像型数据库系统
CN110750597A (zh) * 2018-07-23 2020-02-04 北京国双科技有限公司 数据处理方法及装置、存储介质和处理器
CN109189794A (zh) * 2018-09-13 2019-01-11 郑州云海信息技术有限公司 一种内存数据库的数据机制管理配置系统及方法
CN112783896A (zh) * 2021-01-12 2021-05-11 湖北宸威玺链信息技术有限公司 一种用于加载文件减少内存使用率的方法
CN112783896B (zh) * 2021-01-12 2023-05-23 湖北宸威玺链信息技术有限公司 一种用于加载文件减少内存使用率的方法

Also Published As

Publication number Publication date
CN101183363B (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
CN101183363B (zh) 一种利用系统表结构统一配置管理内存数据库的方法
CN1641583B (zh) 自描述软件映象更新组件
US10558642B2 (en) Mechanism for deprecating object oriented data
CN100458793C (zh) 数据访问层Xml格式数据与关系数据间的映射转换方法
CN100478959C (zh) 嵌入式数据库的存储管理方法
US20100262638A1 (en) Computing Device Having a Merged Directory Hierarchy From Multiple Filesystems
US8370400B2 (en) Solution-specific business object view
US20040015822A1 (en) Method and apparatus for dynamic assembly and verification of software components into flexible applications
CN101765831A (zh) 数据库不一致的处理方法
US6941309B2 (en) Object integrated management system
CN104850565A (zh) 一种基于k-v存储系统的元数据管理方法
CN104778192A (zh) 表示可内容寻址存储系统的目录结构
KR20220127443A (ko) 데이터 아키텍쳐 관리 시스템
CN103107919A (zh) 一种网络资源建模方法和系统
CN103207872A (zh) 一种实时索引方法和服务器
CN102054041A (zh) 元数据升级方法和系统
US8001526B2 (en) Hierarchical property storage
US9697239B1 (en) Token-based database system and method of interfacing with the token-based database system
CN102289448B (zh) 访问数据访问层的实体
CN116932647A (zh) 一种基于哈希多叉树的区块链智能合约服务框架设计方法及应用系统
Hesselink et al. Formalizing a hierarchical file system
CN101055521B (zh) 映射规则的可视化生成方法及系统
CN115617797A (zh) 一种业务元数据字段动态拓展方法、电子设备及存储介质
CN101556595A (zh) 一种快速定位文件系统中关联文件的办法
CN115658329B (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100512