基于数据挖掘的自定义多维报表生成

2023-03-24 10:03彭成
电脑知识与技术 2023年4期
关键词:多维度数据挖掘

彭成

关键词:多维度;数据挖掘;报表生成;逻辑关系限定;父子关系挖掘

1 引言

报表可以帮助企业访问、格式化数据,并把数据信息以安全可靠的方式呈现给使用者[1-3]。利用计算机处理数据和界面设计的功能来生成、展示报表,其主要特点是数据动态化,格式多样化,并且实现报表数据和报表格式的完全分离[4-6]。

然而对于现有的报表生成工具,在生成报表时,受限于数据库的库表结构,无法灵活设置填充到报表单元的数据内容,一般只能简单罗列一张或多张源表的数据内容,不能灵活展示多表数据[7-8]。

大多报表生成工具在对数据内容进行筛选、排序、聚集设置时,只提供了让用户自己输入数据库查询语句的方法[9],而实现这些功能所对应的数据库查询语句比一般查询语句更为复杂,使软件的易用性降低[10]。

同时,对于数据内容存在层级关系的字段,需要按照层级依次填充报表单元,即对单一字段进行数据挖掘,然后分级展示到多个报表单元。现有报表工具并未支持对单一字段中的层级关系的挖掘和展示。

因此,针对上述问题,需要一种新的报表生成方法以更灵活地挖掘并展示数据内容。

2 多维报表设置与生成

2.1 表头及字段绑定

如图1所示,首先设置待生成的多维度报表的结构。此步骤包括单元格的合并与拆分,构建所需的表头等。然后将报表中各单元与数据库字段进行绑定。绑定到报表单元的数据库字段所对应的数据内容可以来自多个源表。

2.2 逻辑关系限定

在绑定多表数据库字段后,可以对数据库字段添加逻辑关系限定,用来关联包含相应逻辑连接的数据库字段从而增加该单元的数据维度,通过关联包含相应逻辑连接的数据库字段可以达到将多个源表的数据在同一单元内关联展现的目的。

逻辑关系限定的添加通过条件限定语句来实现,用以确定各数据库字段对应的数据内容之间的逻辑关系。使展现在报表内的不同的源表可以相互关联,从而更加灵活地展示数据内容。

在此情况下,报表单元内不止有本体数据内容,还包含与本体数据内容有一定逻辑联系的关联数据内容,从而达到在同一单元内展现多源表数据内容的目的,并且由于关联数据内容是本体数据内容基于一定逻辑关系的衍生,基于此,报表的数据挖掘能力得到体现。

2.3 父子挖掘字段綁定

父子关系挖掘字段包括标识字段、内容字段、父标识字段和子标识字段。其中,内容字段为与本体数据内容对应的数据库字段,父标识字段、子标识字段为反映父子关系的字段,标识字段为父子关系挖掘字段的标识字段。

对于对应数据内容存在父子关系的数据库字段,通过指定内容字段获取本体数据内容,通过指定反映父子关系的两个字段,以及标识字段,来获取此字段中不同数据间的父子关系。通过父子关系字段来得到绑定字段所对应的数据内容间的层次关系,再通过标识字段将父子关系与绑定字段每行数据一一对应。通过限定父子关系挖掘字段的挖掘深度来确定基于父系或子系逻辑关系的附加数据库字段的维度。挖掘深度,即获取绑定字段的几级父/子对象。

2.4 筛选及展现设置

接下来对报表单元进行数据筛选条件设置。数据筛选条件的设置如逻辑关系限定的添加一样,都是通过条件语句来实现。

对报表单元添加数据展现设置,包括升/降序排列设置、单元格聚集设置。可以对特定数据内容进行值的限定以过滤数据;可以自行设置表头行列大小及内容,并可以进行单元格的合并与拆分。从而无须通过输入数据库查询语句来实现多表字段的绑定以及数据内容的筛选、排序、聚集的设置。

数据展现设置还包括数据挖掘设置,用于确定单元对本体数据内容或附加数据内容的数据展现方式。针对绑定了父子关系挖掘字段的单元,数据挖掘设置用于确定报表单元对父子关系挖掘字段对应的本体数据内容或附加数据内容的数据展现方式。单元以多个列来层次化显示父子关系挖掘字段对应的数据内容,反映数据内容之间的父子关系。

2.5 查询及结果展现

基于数据筛选条件设置在数据库中查询每个数据库字段对应的本体数据内容和关联的数据库字段对应的关联数据内容。返回的查询结果,基于表头结构、表头内容将查询到的本体数据内容和关联数据内容填充到对应的单元中,从而生成多维度报表。

针对绑定了父子关系挖掘字段的单元,首先在数据库中查询每个父子关系挖掘字段所对应的本体数据内容并基于挖掘深度查询每个父子关系挖掘字段所对应的相应维度的附加数据内容;然后将所述本体数据内容和所述附加数据内容填充到对应的所述单元中。

对于已填充数据内容的单元进一步根据数据展现设置对单元内数据进行数据展现,如升/降序排列、单元格聚集等。

2.6 模板存储及利用

生成的报表可以打印输出,也可以基于报表的生成过程中的操作流程信息建立自定义的报表操作流程模板并存储所述报表操作流程模板。

报表操作流程信息包含表头内容、报表的结构、数据筛选条件设置、数据展现设置、绑定在不同单元上的数据库字段或父子关系挖掘字段、添加在数据库字段上的逻辑关系限定。系统将这些信息重新组合以生成对应的报表操作流程模板并存储到相应的数据库中,实现持久化,以便多次使用。

3 报表设置及生成实例

3.1 表头及字段绑定

以生成不同级别地质类型的含油气性信息报表为例,首先如图2所示编辑报表的表头内容并如图3 所示设置报表结构。结构设置是单元格的合并与拆分,选中多个单元格后可以进行合并,选中占多行或多列的单元格后可以进行拆分。

然后对不同的单元绑定不同的数据库字段。绑定字段的数据结构包括下面几个部分:字段绑定于报表的第几列,字段信息,是否对查询结果进行排序,是否对查询结果进行聚集,排序的优先级别。

绑定数据库字段的过程是先选定报表的某一列,然后选取需要绑定的数据库源表,最后选择数据库字段,完成列和数据库字段的对应绑定,此操作会将已绑定的数据库字段信息存储到对应的数据结构中。

3.2 父子挖掘字段绑定

接下来绑定父子关系挖掘字段。绑定父子关系挖掘字段需要指定4个字段,前2个字段(父标识字段、子标识字段)为反映父子关系的字段,后两个字段(标识字段、内容字段)为绑定字段的标识字段及绑定字段本身。通过父子关系字段来得到绑定字段所含内容间的层次关系,再通过标识字段将父子关系与绑定字段每行数据一一对应。

例如,设定父子关系的两个字段为父ID、ID,设定标识字段及内容字段为ID、Name。这样根据父ID、ID 就可以得到不同ID之间的父子层次关系,然后根据ID、Name两个字段将ID与Name对应上,就可以得到不同Name间的父子层次关系。

指定4个字段后,再给出挖掘深度,即获取已绑定数据库字段的几级父亲。默认0为绑定字段字段本身,1为绑定字段的一级父对象,以此类推。

3.3 数据展示及筛选

接下来如图4所示对已绑定的数据库字段和父子关系挖掘字段进行数据展示设置。其包含升/降序设置和聚集设置。

如图5所示通过条件限定语句进行数据筛选条件设置和/或对数据库字段添加逻辑关系限定。在例子中,条件语句采用“where”语句。

“where”限定条件数据结构包含以下几个部分:左侧字段信息,右侧字段信息,判断符,判断值。对于第一种操作,会将所选的两个字段填充到左侧字段信息,右侧字段信息中;对于第二种操作,会将所选的字段填充到左侧字段信息中,将判断符(=,>,<,>=,<=) 及判断值填充进去。

3.4 查询语句创建

系统会构建生成报表的SQL语句,语句的“select”部分包括每个绑定字段的字段名称及所属表名称及每个父子关系挖掘字段的标识字段名称及所属表名称,格式为“表名.字段名”;“from”部分为它们所对应的数据库表;“where”部分为“where”限定条件数据结构中所含的语句,多条限定语句通过“and”来连接。

3.5 查询结果挖掘及展现

执行生成的查询语句并返回结果集,填充到绑定字段所对应的列中。

对于父子关系挖掘字段,得到标识字段的结果记录的值(把这个记录值赋值给变量value) 后,根据挖掘深度(假设值为n) ,在父标识字段、子标识字段中,需要进行n次遍历来查找到此值的n级父对象的标识值。

其具体的实现方法为:在子标识字段中寻找值为value的行,得到其行号(假设行号为a) ,然后获取父标识字段中行号为a的行的记录值,并将此记录值赋值给value,此时value的值便是一级父对象的标识值。接下来以这个新value重复执行上述操作,进行n次操作后便得到了n级父对象的标識值。然后在标识字段、内容字段中,根据n级父对象标识值,得到标识值所对应的内容字段的值,将这个值填充到报表中绑定父子关系挖掘字段所对应的列里。

接下来,系统按照绑定字段和父子关系挖掘字段中所含的升/降序信息及排序优先级,对报表数据部分进行排序。聚集的实现方法为对指定过聚集的列,遍历它的行,并将相邻的同值单元格合并。至此,如图6所示,最终的报表已经生成完毕并显示出来。报表的设置可以存为模板供重复使用。

4 结论

本文基于数据挖掘实现报表的多维度层级化建立,将多个源表的数据在同一单元内关联展现,可以灵活地展示多表数据。以多列来层次化显示父子关系挖掘字段对应的数据内容,并可以获取绑定字段的多级父对象,具有较强的数据展现能力。同时实现了报表模板和单元数据筛选、排序、聚集等展现方式,以及模板化以多次利用,减少用户操作步骤,提高了自定义报表的易用性、实用性。

猜你喜欢
多维度数据挖掘
“多维度评改”方法初探
基于并行计算的大数据挖掘在电网中的应用
一种基于Hadoop的大数据挖掘云服务及应用
will与be going to的多维度意义对比
数据挖掘的分析与探索
基于GPGPU的离散数据挖掘研究
多维度巧设听课评价表 促进听评课的务实有效
信息论翻译的多维度探索
句子一语句的多维度考察