数据库系统中对象的编码及运算方法与数据库服务器技术方案

技术编号:18940583 阅读:20 留言:0更新日期:2018-09-15 11:05
本发明专利技术公开了一种数据库系统中对象的编码和运算方法、数据库管理系统以及数据库服务器。根据数据库中多个对象样本空间的相关性,形成全局对象样本空间,在全局对象样本空间内创建全局字典表,以为每一个对象提供全局唯一的编码值作为其对象标识,并保证对象标识与对象的描述信息为一一映射关系。基于全局字典表对数据库对象进行编码压缩,减少编码开销。进一步地,直接使用对象标识进行数据库查询运算,将字符串类型的运算优化为整数类型的运算,提升了运算的效率。

Coding and operation of objects in database system and database server

The invention discloses an object encoding and computing method in a database system, a database management system and a database server. According to the relativity of several object sample spaces in the database, a global object sample space is formed, and a global dictionary table is created in the global object sample space. The global unique coding value is provided for each object as its object identification, and the mapping relationship between object identification and object description information is ensured. Based on the global dictionary table, the database object is encoded and compressed to reduce coding overhead. Furthermore, the database query operation is carried out directly by using the object identification, and the operation of string type is optimized into the operation of integer type, which improves the efficiency of operation.

【技术实现步骤摘要】
数据库系统中对象的编码及运算方法与数据库服务器
本专利技术涉及数据库
,并且更具体地,涉及一种数据库系统中对象的编码及运算方法、数据库管理系统与数据库服务器。
技术介绍
现代化信息处理是建立在基于对象标识(ID)的认识模型上的,在该认知模型中,任一样本空间中对象(Object)都有一个标识(ID),以区别于样本空间中的其他对象,然后使用人类语言来描述此对象。这样,所有对象都具有的两个基本属性:对象ID和对象描述信息,即任一对象可以被表示为:Object=(ID,description)。基于该认知模型的信息处理主要包括:1)建立对象样本空间。2)通过人工/自动编码方式为对象样本空间中的每个对象提供编码值标识该对象的唯一ID,并保存该对象的人类语言描述信息。3)根据信息处理逻辑,使用{Object=(ID,description)}信息参与各种信息运算。数据库在处理数据时,也正是基于上述认知模型的。以商用数据库为例,它通常使用字典表对各种字符串/文本进行编码/解码,然后参与各种查询运算。具体地,若数据库对源数据文件某一列采用字典表,则这一列的数据就构成了一个对象样本空间。导入数据时,数据库会选择相应的编码算法,对该列中每一个对象进行编码,生成唯一标识ID并保存到数据表的物理文件中。源数据文件中,该列提供的其他数据即对应于该列对象的描述信息。此外,该表拥有一个私有的字典表,存储了该列对象的映射信息,用于解码。比如对源数据文件中“支行名称”列进行编码得到的编码值(对象ID)如下:对象ID支行名称(描述)0001XX银行(A支行)0002XX银行(B支行)0003XX银行(C支行)……最后,参与各种查询运算时,数据库首先加载该列的编码值,然后反向查询其私有的字典表,以获取该列每个对象的描述信息,然后根据这些描述信息进行后续的查询运算。由上可见,数据库表的各个列在编码过程中使用了私有字典表,增加了编码消耗,浪费了磁盘存储空间。另外,由于各个列使用自身的私有字典表,存在联系的多表之间无法共享编码信息,得到的编码值(对象ID)不能够跨表通用。当需要参与查询运算时,首先必须通过私有字典表得到所有对象的描述信息,然后才能够对这些描述信息进行各种复杂的运算,大大降低了数据库执行查询运算的性能。
技术实现思路
本专利技术提供一种对数据库中的对象编码和查询运算的方法、数据库管理系统以及数据库服务器,能够使用全局字典表对数据库中的对象进行编码,进而直接使用对象标识参与各种信息处理运算,提升数据库的性能。第一方面,提供了一种对数据库中的对象编码的方法,包括:根据该数据库中多个对象样本空间的相关性,确定全局对象样本空间;基于所述全局对象样本空间创建全局字典表,该全局字典表包含该全局对象样本空间内每一个对象的对象标识(ID)和对象描述信息,每一个对象的对象标识在该全局对象样本空间内唯一,该全局字典表中对象ID与对象的描述信息为一一映射关系,且该全局字典表提供有编码接口;调用该全局字典表的编码接口对该数据库中的至少一个对象进行编码,以得到该至少一个对象的编码值,该至少一个对象的编码值为该至少一个对象的对象ID。采用上述方法,充分考虑了多个对象样本空间的相关性,创建针对全局样本空间的全局字典表,全局字典表以共享编码(shareencoding)的方式被多个对象样本空间(比如多个表)共享使用的,所以它能够为这些样本空间的对象提供全局唯一的编码值,并且编码值与对象描述信息为一一映射的关系,从而避免创建多个局部字典表,减少了编码消耗,节省了磁盘空间。在一个可能的设计中,该数据库中的同一类对象构成一个对象样本空间,所述对象包括:元组、列或者行。在另一个可能的设计中,一个对象样本空间可以为数据库中的部分数据集,比如一张表、一张表中的某一列数据,或者多张表中的多列数据。这样,数据库中的多张表或多个列可以共享全局字典表,从而避免创建多个局部字典表,减少了编码消耗,节省了磁盘空间。在一个可能的设计中,根据所述数据库中多个对象样本空间的相关性,确定全局对象样本空间包括:确定该数据库中具有相关性的至少两列,该至少两列构成该全局对象样本空间。在一个可能的设计中,具有相关性的至少两列包括:在查询运算时会被同时操作的至少两列。在一个可能的设计中,该全局字典表提供操作接口,该方法还包括:调用所述操作接口对所述全局字典表进行操作,所述操作包括:查询、更新、删除、分区或导入操作中的至少一种。这样可以支持全局字典表的动态更新。在一个可能的设计中,该方法还包括:调用该全局字典表的编码接口对该数据库的对象进行编码后,将编码后的数据存储到数据存储器中。在一个可能的设计中,该全局字典表为数据文件、内存表、数据库表或索引表中的一种。该全局字典表可以存储在外部存储器中,使用的时候加载到内存中。第二方面,提供了一种基于对象ID的查询运算的方法,包括:接收客户端发送的结构化查询语言(SQL)语句,该SQL语句用于请求对数据库中的至少一个对象进行查询运算,处理该SQL语句以生成执行计划;提取存储的该至少一个对象的对象标识(ID);其中,该至少一个对象的对象ID是通过调用全局字典表的编码接口对该至少一个对象进行编码后得到并存储在数据存储器中的;该全局字典表包含全局对象样本空间内每一个对象的对象ID和对象描述信息,所述每一个对象的对象标识在所述全局对象样本空间内唯一,所述全局字典表中对象ID与对象的描述信息为一一映射关系;所述全局对象样本空间是由所述数据库中具有相关性多个对象样本空间构成的;根据所述执行计划,直接使用所述至少一个对象的对象ID进行所述查询运算,以生成查询结果,并将所述查询结果返回给所述客户端。采用上述方法,由于全局字典表可被多个表以shareencoding方式使用,编码后的对象标识是唯一的,并且和对象描述信息是一一映射关系。那么,加载数据库对象后不必进行解压,可直接使用各个对象的编码值(即对象标识)参与JOIN、SORT、AGGREGATE等查询运算,将字符串类型的运算优化为整数类型的运算,提升了运算的效率。第三方面,提供一种数据库管理系统,包括:结构化查询语言SQL引擎、执行引擎和存储引擎;其中,所述SQL引擎用于根据客户端提交的SQL语句,生成对应的执行计划,所述SQL语句用于请求对数据库中的至少一个对象进行查询运算;所述存储引擎用于存储全局字典表,所述全局字典表包含全局对象样本空间内每一个对象的对象ID和对象描述信息,所述每一个对象的对象标识在所述全局对象样本空间内唯一,所述全局字典表中对象ID与对象的描述信息为一一映射关系;所述全局对象样本空间是由所述数据库中具有相关性多个对象样本空间构成的;所述执行引擎用于提取所述存储引擎存储的所述至少一个对象的对象ID,根据所述执行计划,直接使用所述至少一个对象的对象ID执行所述查询运算,以生成查询结果,并将所述查询结果返回给所述客户端。在一个可能的设计中,所述存储引擎还用于创建所述全局字典表。第四方面,提供另一种数据库管理系统,该数据库管理系统具有实现上述方法。该数据库管理系统可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括实现上述方法一个或多个功能模块。具体地,所述数据库管理系统可以包括用于执行本文档来自技高网
...

【技术保护点】
1.一种对数据库中的对象编码的方法,其特征在于,包括:根据所述数据库中多个对象样本空间的相关性,确定全局对象样本空间;基于所述全局对象样本空间创建全局字典表,所述全局字典表包含所述全局对象样本空间内每一个对象的对象标识ID和对象描述信息,所述每一个对象的对象标识在所述全局对象样本空间内唯一,所述全局字典表中对象ID与对象的描述信息为一一映射关系,且所述全局字典表提供有编码接口;调用所述全局字典表的所述编码接口对所述数据库中的至少一个对象进行编码,以得到所述至少一个对象的编码值,所述至少一个对象的编码值为所述至少一个对象的对象ID。

【技术特征摘要】
1.一种对数据库中的对象编码的方法,其特征在于,包括:根据所述数据库中多个对象样本空间的相关性,确定全局对象样本空间;基于所述全局对象样本空间创建全局字典表,所述全局字典表包含所述全局对象样本空间内每一个对象的对象标识ID和对象描述信息,所述每一个对象的对象标识在所述全局对象样本空间内唯一,所述全局字典表中对象ID与对象的描述信息为一一映射关系,且所述全局字典表提供有编码接口;调用所述全局字典表的所述编码接口对所述数据库中的至少一个对象进行编码,以得到所述至少一个对象的编码值,所述至少一个对象的编码值为所述至少一个对象的对象ID。2.根据权利要求1所述的方法,其特征在于,所述数据库中的同一类对象构成一个对象样本空间,所述对象包括:元组。3.根据权利要求1或2所述的方法,其特征在于,所述根据所述数据库中多个对象样本空间的相关性,确定全局对象样本空间包括:确定所述数据库中具有相关性的至少两列,所述至少两列构成所述全局对象样本空间。4.根据权利要求3所述的方法,其特征在于,所述具有相关性的至少两列包括:在查询运算时会被同时操作的至少两列。5.根据权利要求1至4任一项所述的方法,其特征在于,所述全局字典表提供操作接口,所述方法还包括:调用所述操作接口对所述全局字典表进行操作,所述操作包括:查询、更新、删除、分区或导入操作中的至少一种。6.根据权利要求1至5任一项所述的方法,其特征在于,所述全局字典表为数据文件、内存表、数据库表或索引表中的一种。7.一种数据库查询运算的方法,其特征在于,包括:接收客户端发送的结构化查询语言SQL语句,处理该SQL语句以生成执行计划;所述SQL语句用于请求对数据库中的至少一个对象进行查询运算;提取存储的所述至少一个对象的对象标识ID;其中,所述对象的对象标识是通过调用全局字典表的编码接口对所述至少一个对象进行编码后得到并存储在数据存储器中的;所述全局字典表包含全局对象样本空间内每一个对象的对象ID和对象描述信息,所述每一个对象的对象标识在所述全局对象样本空间内唯一,所述全局字典表中对象ID与对象的描述信息为一一映射关系;所述全局对象样本空间是由所述数据库中具有相关性多个对象样本空间构成的;根据所述执行计划,直接使用所述至少一个对象的对象ID进行所述查询运算,以生成查询结果,并将所述查询结果返回给所述客户端。8.根据权利要求7所述的方法,其特征在于,所述数据库中的同一类对象构成一个对象样本空间,所述对象包括:元组。9.根据权利要求7或8所述的方法,其特征在于,所述具有相关性多个对象样本空间包括:所述数据库中具有相关...

【专利技术属性】
技术研发人员:刘辉军孟聪张朝威
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1