基于关系型数据库存储的对象化数据模型查询方法及装置的制造方法

文档序号:9489524阅读:406来源:国知局
基于关系型数据库存储的对象化数据模型查询方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据库查询技术领域,尤其涉及一种基于关系型数据库存储的对象化数据模型查询方法及装置。
【背景技术】
[0002]对于传统数据中心的结构化数据都使用关系型数据库进行存储,优点在于关系明确,数据查询访问效率高,缺点在于数据分散多张表存储,与业务概念差距遥远,直观性差,理解上存在困难。于是近年来开始逐渐兴起主数据管理(MDM)系统,主数据管理系统以对象化数据模型的方式来管理数据,更贴近于业务实践,无论对数据的管理者还是使用者来说都更加直观和易用。
[0003]但由于目前数据中心广泛使用的都是关系型数据库,因此基于对象模型的数据管理,其底层存储仍然主要是关系型数据库。由于面向对象的模型访问和关系型数据访问的差异,使得基于关系型数据库存储的对象模型数据在访问查询时遇到很大障碍,查询的方式和结果都受到限制,难以充分发挥基于对象模型的检索意图。
[0004]现有的基于对象模型的查询方式,基本都是基于主模型元素的条件,对主模型对象进行过滤。或者虽然可以同时设定主模型元素条件和其内嵌子模型数组的条件组合,但只能对主模型对象进行定位,不能准确地定位出符合条件的主模型对象和其内嵌子模型对象组合,大大限制了对象模型化数据管理的应用范围,使其难以完成较为复杂的查询功能。

【发明内容】

[0005]本发明提供一种基于关系型数据库存储的对象化数据模型查询方法及装置,能够将对象化模型的查询方便地转换为基于二维表的查询,提高对关系型数据库的查询效率。
[0006]本发明提供一种基于关系型数据库存储的对象化数据模型查询方法,包括:
[0007]接收用户在查询界面上发送的查询请求,所述查询请求包括一个条件项,或包括多个条件项及其组合关系,其中,预先按结构化对象的数据模型结构,将关系型数据库中有关联关系的表关联起来,并在查询界面上设置条件项及条件项之间可选的组合关系,一个条件项对应对象的任意元素的元素值;
[0008]基于关系型数据库中表间的关联关系及查询请求条件确定展开方法,将所有表记录的内容按确定的展开方法展开为一张包括多条记录的二维虚拟视图,其中,一条记录中包括结构化对象的数据模型中各分支所包含的所有元素的内容;
[0009]基于所述二维虚拟视图,在所述二维虚拟视图中查找符合查询条件的记录,将记录中的各元素按照结构化对象的数据模型的形式在查询界面展示出来。
[0010]优选地,所述关系型数据库中,对于对象的基本模型,采用一张表存储基本模型的元素,表中的一个字段对应基本模型的一个元素;对于由基本模型派生的派生模型,采用另一张表存储所述派生模型的元素,将关系型数据库中有关联关系的表关联起来,具体包括:
[0011]采用基本模型的表和派生模型的表中的指定字段,将两个表关联起来;或者
[0012]新建一张表,将基本模型的表和派生模型的表关联起来。
[0013]优选地,所述关系型数据库中,对象的同级元素存储在同一张表,在其中一个元素为内嵌子结构时,内嵌子结构与同级元素使用同一张表或使用另一种表存储,在使用另一张表存储时,将关系型数据库中有关联关系的表关联起来,具体包括:
[0014]采用同级元素的表和内嵌子结构的表中的指定字段,将两个表关联起来;或者
[0015]新建一张表,将同级元素的表和内嵌子结构的表关联起来。
[0016]优选地,所述关系型数据库中,对象的同级元素存储在同一张表,在其中一个元素为内嵌子对象数组时,内嵌子对象数组使用另一种表存储,将关系型数据库中有关联关系的表关联起来,具体包括:
[0017]采用同级元素的表和内嵌子对象数组的表中的指定字段,将两个表关联起来;或者
[0018]新建一张表,将同级元素的表和内嵌子对象数组的表关联起来。
[0019]优选地,所述关系型数据库中,对象的同级元素存储在同一张表,对于对象的任一元素内容采用代码的元素,将该代码所映射的内容存储字典表进行存储,将关系型数据库中有关联关系的表关联起来,具体包括:
[0020]将存储内容采用代码的表与字典表关联起来。
[0021]优选地,基于关系型数据库中表间的关联关系及查询请求条件确定展开方法,将所有表记录的内容按确定的展开方法展开为一张包括多条记录的二维虚拟视图,具体包括:
[0022]基于关系型数据库中表间的关联关系,确定结构化对象的数据模型中各分支所包括的所有元素,并检索出每个元素的所有元素值;
[0023]确定查询请求中所包含的各元素的元素值,若在查询请求中每个元素仅对应一个元素值,提取检索出的各分支所包括的所有元素中每个元素的一个元素值组成一条记录并展开;
[0024]若在查询请求中至少一个元素对应N个元素值且为或的关系,提取检索出的各分支所包括的所有元素中每个元素的一个元素值组成一条记录并展开;
[0025]若在查询请求中至少一个元素对应N个元素值且N个元素值为且的关系,对于在查询请求中包含N个元素值的元素,提取N个元素值,对于其它元素提取一个元素值组成一条记录并展开,N为大于1的正整数。
[0026]优选地,将记录中的各元素按照结构化对象的数据模型的形式在查询界面展示出来,具体包括:
[0027]将记录中除属于查询请求中的元素外其它元素的元素值相同的多条记录,按照对象的模型合并为一条记录,若合并的多条记录中属于查询请求中元素的元素值为一个,则在合并的记录中显示该元素值,若合并的多条记录中属于查询请求中元素的元素值为多个,将该多个元素值以数组的形式显示。
[0028]优选地,将记录中的各元素按照结构化对象的模型的形式在查询界面展示之前,还包括:
[0029]确定查询请求中所包含的各元素的元素值,若在查询请求中至少一个元素对应N个元素值且为或的关系,将记录中类型为基本元素的元素的元素值相同的多条记录,按照对象的模型合并为一条记录,若合并的多条记录中元素的元素值为一个,则在合并的记录中显示该元素值,若合并的多条记录中元素的元素值为多个,将该多个元素值以数组的形式显不o
[0030]本发明还提供一种基于关系型数据库存储的对象化数据模型查询装置,其特征在于,包括:
[0031]请求接收单元,用于接收用户在查询界面上发送的查询请求,所述查询请求包括一个条件项,或包括多个条件项及其组合关系,其中,预先按结构化对象的数据模型结构,将关系型数据库中有关联关系的表关联起来,并在查询界面上设置条件项及条件项之间可选的组合关系,一个条件项对应对象的任意元素的元素值;
[0032]视图展开单元,用于基于关系型数据库中表间的关联关系及查询请求条件确定展开方法,将所有表记录的内容按确定的展开方法展开为一张包括多条记录的二维虚拟视图,其中,一条记录中包括结构化对象的数据模型中各分支所包含的所有元素的内容;
[0033]查询显示单元,用于基于所述二维虚拟视图,在所述二维虚拟视图中查找符合查询条件的记录,将记录中的各元素按照结构化对象的数据模型的形式在查询界面展示出来。
[0034]优选地,所述关系型数据库中,对于对象的基本模型,采用一张表存储基本模型的元素,表中的一个字段对应基本模型的一个元素;对于由基本模型派生的派生模型,采用另一张表存储所述派生模型的元素,请求接收单元将关系型数据库中有关联关系的表关联起来,具体包括:
[0035]采用基本模型的表和派生模型的表中的指定字段,将两个表关联起来;或者
[0036]新建一张表,将基本模型的表和派生模型的表关联起来。
[0037]优选地,所述关系型数据库中,对象的同级元素存储在同一张表,在其中一个元素为内嵌子结构时,内嵌子结构与同级元素使用同一张表或使用另一种表存储,在使用另一张表存储时,请求接收单元将关系型数据库中有关联关系的表关联起来,具体包括:
[0038]采用同级元素的表和内嵌子结构的表中的指定字段,将两个表关联起来;或者
[0039]新建一张表,将同级元素的表和内嵌子结构的表关联起来。
[0040]优选地,所述关系型数据库中,对象的同级元素存储在同一张表,在其中一个元素为内嵌子对象数组时,内嵌子对象数组使用另一种表存储,请求接收单元将关系型数据库中有关联关系的表关联起来,具体包括:
[0041]采用同级元素的表和内嵌子对象数组的表中的指定字段,将两个表关联起来;或者
[0042]新建一张表,将同级元素的表和内嵌子对象数组的表关联起来。
[0043]优选地,所述关系型数据库中,对象的同级元素存储在同一张表,对于对象的任一元素内容采用代码的元素,将该代码所映射的内容存储字典表进行存储,请求接收单元将关系型数据库中有关联关系的表关联起来,具体包括:
[0044]将存储内容采用代码的表与字典表关联起来。
[0045]优选地,视图展开单元基于关系型数据库中表间的关联关系及查询请求条件确定展开方法,将所有表记录的内容按确定的展开方法展开为一张包括多条记录的二维虚拟视图,具体包括:
[0046]基于关系型数据库中表间的关联关系,确定结构化对象的数据模型中各分支所包括的所有元素,并检索出每个元素的所有元素值;
[0047]确定查询请求中所包含的各元素的元素值,若在查询请求中每个元素仅对应一个元素值,提取检索出的各分支所包括的所有元素中每个元素的一个元素值组成一条记录并展开;
[0
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1