CN108132957B - 一种数据库处理方法及装置 - Google Patents
一种数据库处理方法及装置 Download PDFInfo
- Publication number
- CN108132957B CN108132957B CN201611095424.6A CN201611095424A CN108132957B CN 108132957 B CN108132957 B CN 108132957B CN 201611095424 A CN201611095424 A CN 201611095424A CN 108132957 B CN108132957 B CN 108132957B
- Authority
- CN
- China
- Prior art keywords
- master
- relationship
- source database
- slave
- relation
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库处理方法,包括:利用源数据库的表结构信息,获取含有单主键的至少一个第一表;针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;对得到的关联关系进行排序和合并,生成关系树。本发明同时还公开了一种数据库处理装置。
Description
技术领域
本发明涉及大数据处理领域,尤其涉及一种数据库处理方法及装置。
背景技术
对结构化数据库中数据进行大数据分析,首先要分析数据库中表之间的关联关系,然后才能根据关联关系将多个表关联起来生成数据集。
然而,目前进行结构化数据库关联关系分析时,基本都是依据开发过程中生成的数据库设计文档,或者在开发人员的协助下,进行人工分析与校验,需要大量时间与人力成本,同时不能保证结果的准确性和完整性。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种数据库处理方法及装置。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据库处理方法,包括:
利用源数据库的表结构信息,获取含有单主键的至少一个第一表;
针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;
利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;
对得到的关联关系进行排序和合并,生成关系树。
上述方案中,所述方法还包括:
获取所述源数据库的配置信息;
利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
上述方案中,所述利用所述配置信息,得到所述表结构信息,包括:
对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
上述方案中,所述针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系,包括:
针对每个第二表,查找与第一表的单主键数据中的单主键名称、对应的数据类型和长度相匹配的第一字段;
当所述第一字段对应的数据与所述单主键对应的数据相同时,确定第一表与第二表之间的主从表关系。
上述方案中,所述方法还包括:
按照第一预设规则,从确定的所述主从表关系中确定异常结果;
利用所述异常结果,结合建立的模型,确定所述主从表关系的准确概率;
相应地,利用准确概率满足第二预设规则的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系。
上述方案中,所述方法还包括:
建立所述主从表关系后,保存所述主从表关系;
相应地,获取所述源数据库的配置信息;
利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系。
上述方案中,所述利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系,包括:
对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系。
上述方案中,所述生成关系树时,所述方法还包括:
对排序和合并后得到的关联关系进行过滤并去除环,生成关系树。
上述方案中,所述方法还包括:
保存所述关系树。
上述方案中,所述方法还包括:
将所述关系树按照设定格式进行拼接,并将拼接结果进行图形化呈现。
本发明实施例还提供了一种数据库处理装置,包括:
主从表分析单元,用于利用源数据库的表结构信息,获取含有单主键的至少一个第一表;以及针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;
关联关系分析单元,用于利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;以及对得到的关联关系进行排序和合并,生成关系树。
上述方案中,所述主从表分析单元,还用于获取所述源数据库的配置信息;并利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
上述方案中,所述主从表分析单元,还用于建立所述主从表关系后,保存所述主从表关系;
相应地,所述关联关系分析单元,还用于获取所述源数据库的配置信息;以及利用所述配置信息,对所述源数据库字典进行分析,得到保存的所述主从表关系。
上述方案中,所述关联关系分析单元,还用于对排序和合并后得到的关联关系进行过滤并去除环,生成关系树。
上述方案中,所述关联关系分析单元,还用于保存所述关系树。
上述方案中,所述装置还包括:
显示单元,用于将所述关系树按照设定格式,进拼接,并将拼接结果进行图形化呈现。
本发明实施例提供的数据库处理方法及装置,利用源数据库的表结构信息,获取含有单主键的至少一个第一表;针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;对得到的关联关系进行排序和合并,生成关系树,根据数据库的表结构信息分析表之间的主从表关系,进而确定关联关系,如此,能保证结果的准确性和完整性。且采用本发明实施例的方案,自动化程度和执行效率高。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例一数据库处理的方法流程示意图;
图2为本发明实施例二数据库处理装置结构示意图;
图3为本发明实施例三结构化数据库关联关系分析方法流程示意图;
图4为本发明实施例三图形化显示的参数配置信息示意图;
图5为本发明实施例三图形化显示的主从表分析引擎示意图;
图6为本发明实施例三图形化对主从表关系进行管理示意图;
图7为本发明实施例三图形化显示的关联关系分析引擎示意图;
图8为本发明实施例三主从表分析引擎处理流程示意图;
图9为本发明实施例三关联关系分析引擎处理流程示意图;
图10至12为本发明实施例三图形化的不同表对应的树结构示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
目前,主要依靠人工进行结构化数据库关联关系的分析,即通过表名、字段名及其中文注释来猜测表之间可能存在的关联关系,然后对每一个关联关系分别进行测试来确定其准确性,这就需要花费大量时间和人力成本,而且不能保证结果的准确性和完整性。而且,实际使用时,有一些结构化数据库存在其它的问题(如设计不规范、没有相关技术文档、使用者对数据库结构不了解等),导致对这样的数据库进行大数据分析时就需要花费更大的代价,并且分析结果的完整性和准确性更差。
因此就需要有一个自动化的工具对数据库结构进行分析,理清表之间的关联关系,为大数据分析提供数据基础。
目前,虽然有一些数据块分析工具,但是这些工不具能够分析结构化数据库中表的逻辑关系。比如使用powerdesign进行逆向工程,只能展现表之间物理结构上的主从表关系;而市面上的其它数据库分析工具,如IBM Watson Analytics、Tableau等着重于数据的分析统计,不能用于分析表之间的逻辑关系。
以何氏(HIS)***为例,***中表数量多,且源头众多,如:有以患者就诊流程为主线的表系列(业务相关表(MET)系列);有以医院财务管理为主线的表系列(财务相关表(FIN)系列),有以药品信息为主线的表系列(药品相关表(PHA)系列),等等。各系列表内部各表之间、各系列表之间呈现复杂的网状关系;同时,在运营过程中,HIS***中还存在一些不规范的表,如:多个表使用相同的主键,使得表之间关系更加复杂。
在这种情况下,通过人工方法查找HIS***表的关联关系就会产生以下问题:
1、当表的数量很多、关系很复杂时,人工查找工作量巨大,无法承受;
2、人工查找时,通常是通过表名、字段的中文注释来关联的,然而,在开发阶段,在整个HIS***中,同一个字段会有不同的中文注释甚至没有中文注释,这就给查找者带来了很大的困扰;
3、人工分析得到的结果集不全,且可能存在错误。
基于此,在本发明的各种实施例中:利用源数据库的表结构信息,获取含有单主键的至少一个第一表;针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;对得到的关联关系进行排序和合并,生成关系树。
实施例一
本实施例数据库处理方法,如图1所示,包括以下步骤:
步骤101:利用源数据库的表结构信息,获取含有单主键的至少一个第一表;
这里,实际应用时,在执行本步骤之前,该方法还可以包括:
获取所述源数据库的配置信息;
利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
其中,所述利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息,包括:
对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
当校验未通过时,则提示错误信息,并可以记录日志。
这里,所述配置信息存储的是要分析的源数据库的用户信息,通过用户信息可以访问源数据库中此用户对应的数据。
相应地,对所述配置信息进行校验,是指:通过源数据库字典判断此用户是否存在,即判断源数据库字典中是否有此用户的相关信息,如果有,则认为所述配置信息校验通过,如果没有则认为所述配置信息未通过校验。
步骤102:针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;
具体地,针对每个第二表,查找与第一表的单主键数据中的单主键名称、对应的数据类型和长度相匹配的第一字段;
当所述第一字段对应的数据与所述单主键对应的数据相同时,确定第一表与第二表之间的主从表关系。
也就是说,通过遍历所有第一表的方式建立第一表与第二表之间的主从表关系。
这里,实际应用时,由于有些表是不规范的表,比如多个表之间使用相同的主键等,所以在利用上述方式确定主从表关系时,难免有不准确的时候,所以需要对确定的主从表关系进行一个准确概率的计算。
基于此,在一实施例中,该方法还可以包括:
按照第一预设规则,从确定的所述主从表关系中确定异常结果;
利用所述异常结果,结合建立的模型,确定所述主从表关系的准确概率,以保证后续关确定的联关系的准确性。
其中,所述第一预设规则可以通过机器学习的方式来确定。
步骤103:利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;
这里,当对确定的主动关系进行了准确概率计算时,在该步骤中,利用准确概率满足第二预设规则的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系。
其中,实际应用时,所述第二预设规则可以根据需要确定,比如准确概率大于等于预设值等等。
实际应用时,当建立所述主从表关系后,保存所述主从表关系,以保证建立的主从表关系不会丢失。当然,当确定了主从表关系的准确概率时,也需要一起保存主从表关系的准确概率。
保存所述主从表关系后,可以直接执行步骤103和104,还可以不立即执行步骤103和104,而是等到需要的时候重新到源数据库重新获取主从表关系,然后再生成关系树,此时,需要重新获取源数据库的配置信息;利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系。
其中,利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系,包括:
对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系。
所述左连接(left join),也称为左外连接(Left outer join),是以左表的记录为基础的,左表的内容会全部显示,然后加上两张表(右表)匹配的内容。如果基表(左表)的数据在右表没有记录。那么在相关联的结果集行中列显示为空值(NULL)。
步骤104:对得到的关联关系进行排序和合并,生成关系树。
这里,所述排序,是指:从一个第一表出发,多级关联关系中离该第一表越近的表其优先级越高,优先级相同的按照表名称的字母顺序排序。
生成关系树时,考虑到实际应用时表会存在一些冗余的数据,或者基于关系树查询到的数据比较少,所以需要对下级节点进行过滤。同时考虑到有环的情况出现(比如在医疗领域中,可能会出现在门诊***医生诊断的表中出现病人信息,而到科住院部的表中又出现了病人信息,从而形成一个环),需要去除环。
基于此,在一实施例中,生成关系树时,该方法还可以包括:
对排序和合并后得到的关联关系进行过滤并去除环,生成关系树。
生成关系树后,可以保存所述关系树,以确保生成的关系树不会丢失。
生成关系树后,需要呈现时,可以将所述关系树按照设定格式进行拼接,并将拼接结果进行图形化呈现。
本发明实施例提供的数据库处理方法,利用源数据库的表结构信息,获取含有单主键的至少一个第一表;针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;对得到的关联关系进行排序和合并,生成关系树,根据数据库的表结构信息分析表之间的主从表关系,进而确定关联关系,如此,能保证结果的准确性和完整性。且采用本发明实施例的方案,自动化程度和执行效率高。
另外,将所述关系树按照设定格式进行拼接,并将拼接结果进行图形化呈现,如此,分析结果能够直观展现,提升用户体验。
实施例二
为实现本发明实施例的方法,本实施例提供一种数据库处理装置,如图2所述,该装置包括:
主从表分析单元21,用于利用源数据库的表结构信息,获取含有单主键的至少一个第一表;以及针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;
关联关系分析单元22,用于利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;以及对得到的关联关系进行排序和合并,生成关系树。
其中,实际应用时,所述主从表分析单元21,还用于获取所述源数据库的配置信息;并利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
其中,所述利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息,包括:
主从表分析单元21,对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
当校验未通过时,则主从表分析单元21,提示错误信息,并可以记录日志。
这里,所述配置信息存储的是要分析的源数据库的用户信息,通过用户信息可以访问源数据库中此用户对应的数据。
相应地,对所述配置信息进行校验,是指:通过源数据库字典判断此用户是否存在,即判断源数据库字典中是否有此用户的相关信息,如果有,则认为所述配置信息校验通过,如果没有则认为所述配置信息未通过校验。
所述主从表分析单元21,具体用于:
针对每个第二表,查找与第一表的单主键数据中的单主键名称、对应的数据类型和长度相匹配的第一字段;
当所述第一字段对应的数据与所述单主键对应的数据相同时,确定第一表与第二表之间的主从表关系。
也就是说,通过遍历所有第一表的方式建立第一表与第二表之间的主从表关系。
这里,实际应用时,由于有些表是不规范的表,比如多个表之间使用相同的主键等,所以在利用上述方式确定主从表关系时,难免有不准确的时候,所以需要对确定的主从表关系进行一个准确概率的计算。
基于此,在一实施例中,所述主从表分析单元21,还用于:
按照第一预设规则,从确定的所述主从表关系中确定异常结果;
利用所述异常结果,结合建立的模型,确定所述主从表关系的准确概率,以保证后续关确定的联关系的准确性。
其中,所述第一预设规则可以通过机器学习的方式来确定。
当对确定的主动关系进行了准确概率计算时,所述关联关系分析单元22利用准确概率满足第二预设规则的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系。
其中,实际应用时,所述第二预设规则可以根据需要确定,比如准确概率大于等于预设值等等。
实际应用时,当建立所述主从表关系后,保存所述主从表关系,以保证建立的主从表关系不会丢失。当然,当确定了主从表关系的准确概率时,也需要一起保存主从表关系的准确概率。
保存所述主从表关系后,所述关联关系分析单元22可以直接执行其功能,还可以不立即执行其功能,而是等到需要的时候重新到源数据库重新获取主从表关系,然后再生成关系树,此时,所述关联关系分析单元22需要重新获取源数据库的配置信息;利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系。
其中,利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系,包括:
所述关联关系分析单元22对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系。
所述左连接(left join),也称为左外连接(Left outer join),是以左表的记录为基础的,左表的内容会全部显示,然后加上两张表(右表)匹配的内容。如果基表(左表)的数据在右表没有记录。那么在相关联的结果集行中列显示为空值(NULL)。
所述排序,是指:从一个第一表出发,多级关联关系中离该第一表越近的表其优先级越高,优先级相同的按照表名称的字母顺序排序。
生成关系树时,考虑到实际应用时表会存在一些冗余的数据,或者基于关系树查询到的数据比较少,所以需要对下级节点进行过滤。同时考虑到有环的情况出现(比如在医疗领域中,可能会出现在门诊***医生诊断的表中出现病人信息,而到科住院部的表中又出现了病人信息,从而形成一个环),需要去除环。
基于此,在一实施例中,所述关联关系分析单元22,还用于对排序和合并后得到的关联关系进行过滤并去除环,生成关系树。
生成关系树后,所述关联关系分析单元22可以保存所述关系树,以确保生成的关系树不会丢失。
生成关系树后,需要呈现时,可以将所述关系树按照设定格式进行拼接,并将拼接结果进行图形化呈现。
基于此,在一实施例中,该装置还可以包括:
显示单元,用于将所述关系树按照设定格式,进拼接,并将拼接结果进行图形化呈现。
实际应用时,所述主从表分析单元21及关联关系分析单元22可由数据库处理装置中的中央处理器(CPU,Central Processing Unit)、微处理器(MCU,Micro Control Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现;所述显示单元可由数据库处理装置中的CPU、MCU、DSP或FPGA结合显示屏实现。
本发明实施例提供的数据库处理装置,所述主从表分析单元21利用源数据库的表结构信息,获取含有单主键的至少一个第一表;针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;所述关联关系分析单元22利用建立的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;对得到的关联关系进行排序和合并,生成关系树,根据数据库的表结构信息分析表之间的主从表关系,进而确定关联关系,如此,能保证结果的准确性和完整性。且采用本发明实施例的方案,自动化程度和执行效率高。
另外,所述显示单元将所述关系树按照设定格式进行拼接,并将拼接结果进行图形化呈现,如此,分析结果能够直观展现,提升用户体验。
实施例三
在实施例一、二的基础上,本实施例以医疗领域的数据库,来说明本发明实施例的方案。
如图3所示,本发明实施例结构化数据库关联关系分析方法,包括以下步骤:
步骤301:获取源数据库参数配置信息;
这里,所述配置信息包括源数据库地址、服务名、用户名、密码等。
实际应用时,参数配置信息可以进行图形化显示,如图4所示。
步骤302:利用所述配置信息,调用主从表分析引擎(对应实施例二中的主从表分析单元21),分析源数据库中表之间的主从表关系;
这里,实际应用时,调用主从表分析引擎也可以通过图形化显示,如图5所示。
步骤303:主从表分析引擎对主从表关系进行管理,即根据主从表关系数据中的相关参数对主从表关系分析结果进行判断,去除冗余数据;
这里,实际应用时,对主从表关系进行管理时,可以进行图形化显示,如图6所示,以方便用户去除冗余数据。
步骤304:在主从表关系分析结果的基础上,调用关联关系分析引擎(对应实施例二中的关联关系分析单元22),分析表之间的关联关系;
这里,实际应用时,调用关联关系分析引擎也可以通过图形化显示,如图7所示。
步骤305:图形化展示关联关系。
其中,主从表分析引擎的功能是:通过对源数据库中表结构进行分析,找出含有单主键的表,拿这些单主键数据与其它表进行匹配,并计算出准确概率。主从表分析引擎执行的操作如图8所示,主要包括:
步骤801:读取源数据库配置信息,并对配置信息进行校验,如果校验通过则继续执行步骤802,如果校验失败则给出错误信息提示并记录日志;
这里,所述配置信息存储的是要分析的源数据库的用户信息,通过用户信息可以访问源数据库中此用户对应的数据。
相应地,对所述配置信息进行校验,是指:通过源数据库字典判断此用户是否存在,即判断源数据库字典中是否有此用户的相关信息,如果有,则认为所述配置信息校验通过,如果没有则认为所述配置信息未通过校验。
步骤802:对数据库字典表进行分析,得到源数据库的表结构信息;
这里,得到根据不同的表结构信息,进行相应的处理,即针对不同情况分别进行处理。也就是执行步骤803~804。
步骤803:根据源数据库的表结构信息,找出含有单主键的表;
这里,主键是指:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为该表的主键,通过它可强制表的实体完整性。单主键指的是表中有且只有一列作为主键,与它相对应的是联合主键(多列的组合)。主键又可以称为主关键字。
步骤804:拿这些单主键数据与其它表进行匹配,从一个单主键的非空表出发建立主从表关系;
具体地,首先通过字段类型、长度和名称来进行初步的过滤,然后从一个单主键的非空表出发建立主从表关系;
举个例子来说,首先,基于表结构和数据格式查找:假设非空表A的主键是inpatientno,则任取一表非空B,查找与表A中inpatientno对应的数据类型、长度一致的字段,选取出来,并设为字段xxx;
接着,基于数据匹配查找:比较表A中的inpatientno字段的数据和表B中xxx字段的数据,如果有大于n(比如10)个数据是一样的,则认为xxx是B的外键,表A和表B建立起主从表关系(这里规定,B表中的数据长度不超过3位时,不做匹配工作,默认数据有误);
重复上述过程,直到遍历所有单主键的表。
这里,实际应用时,在初步过滤过程中,为了挖掘可能隐藏的主从表关系需要适当放宽过滤条件,如果所使用的过滤条件太严格(比如字段类型和长度相同,或者字段名称相同),会导致漏掉可能存在的主外键关系(因为数据库设计不规范)。因此使用的判断条件适当放宽,比如字段类型相同,字段中存储的数据平均长度相差正负3,字段名大部分类似等等。
对于主从表,从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。实际应用时,主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)。
所述外键是指:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
这里,所述公共关键字是指:在关系数据库中,关系之间的联系是通过相容或相同的属性或属性组来表示的。如果两个关系中具有相容或相同的属性或属性组,那么这个属性或属性组被称为这两个关系的公共关键字。
需要说明的是:有些表具有相同的主键,不符合主从表的规定,但是为了后面的层次关系分析,需要也记录为主从表关系。
步骤805:计算出准确概率;
具体地,按照第一预设规则,从确定的所述主从表关系中确定异常结果;
利用所述异常结果,结合建立的模型,确定所述主从表关系的准确概率,以保证后续关确定的联关系的准确性。
更具体地,a)判断相交集合占总数据的百分比,小于特定百分比的认为是脏数据;
这里,所述相交集合是指:从表外键所在字段与主表(含有单主键的表)主键所在字段的值相等的从表数据数。总数据是指:从表中的数据总数。
实际应用时,所述特定百分比可以需要进行设置,比如10%等。
b)判断数据主键(主键对应的数据)是否是序列化的数字,在结果中标注出来;
具体地,查询主键数据时,将结果转为数字显示,如果没有捕捉到异常,则说明主键的值全是数字,同时由于主键值各不相同,因此可以认为主键是由序列化的数字构成的。
c)根据上面的结果按照一定的算法计算出准确概率。
这里,实际应用时,首先主外键的字段内容是否是序列化的数字、两个字段值的平均长度之差、两个字段名称相差字符数、从表中外键值被主键值涵盖的比率、主表的数据量等,先人为判断出一部分主外键关系是否正确,然后对这些数据使用大数据分析建立模型,得到模型后,利用步骤a、b中得到的结果,结合模型进行分析,得到准确概率。
步骤806:存储得到的主从表关系信息,即输出分析结果。
当存储主从表关系信息后,在所述数据库字典中能体现出主从表关系信息的存储位置。
关联关系分析引擎的功能是:在主从表分析结果的基础上,使用左连接的方式判断表之间的层次关系,然后对层次关系进行合并、过滤、去除环,最终生成层次树。关联关系分析引擎执行的操作如图9所示,主要包括:
步骤901:读取源数据库配置信息,并对配置信息进行校验,如果校验通过则继续执行步骤902,如果校验失败则给出错误信息提示并记录日志;
这里,当执行完步骤801~805时,接着执行关联关系分析引擎执行的操作时,可以不用执行步骤901。
步骤902:对数据库字典表进行分析,从而读取主从表关系信息,即主外键信息;
步骤903:根据得到的数据库主从表关系新,使用左连接的方式判断表之间的层次关系(关联关系);
也就是说,即使用联表查询的方式,确定由表A出发的每一条多级关联关系是否存在。
这里,所述左连接(left join),也称为左外连接(Left outer join),是以左表的记录为基础的,左表的内容会全部显示,然后加上两张表(右表)匹配的内容。如果基表(左表)的数据在右表没有记录。那么在相关联的结果集行中列显示为空值(NULL)。
数据库表之间的数据的相互依赖和影响关系,有以下三种不同类型的关联关系:
(1)一对一:在这种关系中,关系表的每一边都只能存在一个记录。每个数据表中的关键字在对应的关系表中只能存在一个记录或者没有对应的记录。
(2)一对多:主键数据表中只能含有一个记录,而在其关系表中这条记录可以与一个或者多个记录相关,也可以没有记录与之相关。
(3)多对多:两个数据表里的每条记录都可以和另一个数据表里任意数量的记录(或者没有记录)相关。
步骤904:当存在多级关联关系时,对得到的多级关联关系数据进行排序和合并,初步生成关系树;
这里,在排序时,从一个表A出发,多级关联关系中离表A越近的表其优先级越高,优先级相同的按照表名的字母顺序排序。
步骤905:对初步生成的关系树的下级节点进行过滤,并去除环;
这里,实际应用时,有些叶节点联表查询得到的数据比较少(比如数据量低于10条等,可以根据需要来调整确定数据比较少的阈值),因此应该将这些叶节点忽略。
生成关系树时,考虑到实际应用时表会存在一些冗余的数据,或者基于关系树查询到的数据比较少,所以需要对下级节点进行过滤。同时考虑到有环的情况出现(比如在医疗领域中,可能会出现在门诊***医生诊断的表中出现病人信息,而到科住院部的表中又出现了病人信息,从而形成一个环),需要去除环。
在去环时,在多级关联关系中,每个节点的下级节点(及其更下级的节点)对应的表名称,不能等于其上级节点(及其更上级的节点)对应的表名称。如果出现相等的情况,就放弃这个下级节点(及其更下级的节点)。
步骤906:最终生成层次树(关联树),保存到源数据库指定的表中。
从上面的描述中可以看出,关联关系分析引擎的功能是:在主从表分析结果的基础上,使用左连接的方式判断表之间的层次(关联)关系,然后对层次关系进行排序、合并、过滤、去除环,最终生成层次树,并进行使用存储。
在步骤305中,关联关系展示是读取数据库层次树数据,然后通过浏览器/服务器B/S***展现给用户,具体地,
步骤a:前台选择要展现的表名,传给后台,后台到层次关系表中去查询此表对应的层次关系;
步骤b:后台将层次关系按指定的格式进行拼接,将结果传给前台;
步骤c:前台使用echarts控件将数据展现为树结构。
这里,图10至12展现了在医疗领域中不同表明对应的树结构。其中,图10示出了门诊诊断表分别与住院表、病例案首页表等的关联关系。图11示出了资料变更记录表与病例案首页表等的关联关系。图12示出了处方明细表分别和患者信息表、病例案首页表等的关联关系。
从上面的描述中可以看出,本发明实施例提供的方案是一种结构化数据库关联关系分析方案,能够对未知结构的结构化数据库,自动分析表之间的主从表关系,在此基础上自动分析表之间的关联关系并用可视化***来展示分析结果。
本发明实施例提供的方案,通过存储过程对数据库字典表进行分析,得到数据库的表结构信息,然后针对不同情况分别进行处理,不需要预先知道数据库结构就可以分析表之间的逻辑关系,自动化程度和执行效率高,对表之间的关联关系挖掘全面、准确。
另外,使用图形化***,操作简便易学,分析结果能够直观展现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种数据库处理方法,其特征在于,所述方法包括:
利用源数据库的表结构信息,获取含有单主键的至少一个第一表;
针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;
利用所述主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;
对得到的关联关系进行排序和合并,生成关系树。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述源数据库的配置信息;
利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
3.根据权利要求2所述的方法,其特征在于,所述利用所述配置信息,得到所述表结构信息,包括:
对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
4.根据权利要求1所述的方法,其特征在于,所述针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系,包括:
针对每个第二表,查找与第一表的单主键数据中的单主键名称、对应的数据类型和长度相匹配的第一字段;
当所述第一字段对应的数据与所述单主键对应的数据相同时,确定第一表与第二表之间的主从表关系。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
按照第一预设规则,从确定的所述主从表关系中确定异常结果;
利用所述异常结果,结合建立的模型,确定所述主从表关系的准确概率;
相应地,利用准确概率满足第二预设规则的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
建立所述主从表关系后,保存建立的主从表关系;
保存建立的主从表关系后,获取所述源数据库的配置信息;
利用所述配置信息对所述源数据库字典进行分析,得到保存的主从表关系;
利用保存的主从表关系,利用左连接的方式确定源数据库的表之间的关联关系。
7.根据权利要求6所述的方法,其特征在于,所述利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系,包括:
对所述配置信息进行校验,校验通过后利用所述配置信息对所述源数据库字典进行分析,得到保存的所述主从表关系。
8.根据权利要求1所述的方法,其特征在于,所述生成关系树时,所述方法还包括:
对排序和合并后得到的关联关系进行过滤并去除环,生成关系树。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:
保存所述关系树。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
将所述关系树按照设定格式进行拼接,并将拼接结果进行图形化呈现。
11.一种数据库处理装置,其特征在于,所述装置包括:
主从表分析单元,用于利用源数据库的表结构信息,获取含有单主键的至少一个第一表;以及针对每个含有单主键的第一表,将单主键数据与所述源数据库中除所述至少一个第一表外的第二表进行匹配,建立含有单主键的第一表与第二表之间的主从表关系;
关联关系分析单元,用于利用所述主从表关系,利用左连接的方式确定源数据库的表之间的关联关系;以及对得到的关联关系进行排序和合并,生成关系树。
12.根据权利要求11所述的装置,其特征在于,所述主从表分析单元,还用于获取所述源数据库的配置信息;并利用所述配置信息对所述源数据库字典进行分析,得到所述表结构信息。
13.根据权利要求11所述的装置,其特征在于,所述主从表分析单元,还用于建立所述主从表关系后,保存建立的主从表关系;
所述关联关系分析单元,还用于保存建立的主从表关系后,获取所述源数据库的配置信息;利用所述配置信息,对所述源数据库字典进行分析,得到保存的主从表关系;利用保存的主从表关系,利用左连接的方式确定所述源数据库的表之间的关联关系。
14.根据权利要求11所述的装置,其特征在于,所述关联关系分析单元,还用于对排序和合并后得到的关联关系进行过滤并去除环,生成关系树。
15.根据权利要求11至14任一项所述的装置,其特征在于,所述关联关系分析单元,还用于保存所述关系树。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
显示单元,用于将所述关系树按照设定格式,进行拼接,并将拼接结果进行图形化呈现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095424.6A CN108132957B (zh) | 2016-12-01 | 2016-12-01 | 一种数据库处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095424.6A CN108132957B (zh) | 2016-12-01 | 2016-12-01 | 一种数据库处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108132957A CN108132957A (zh) | 2018-06-08 |
CN108132957B true CN108132957B (zh) | 2021-09-10 |
Family
ID=62388296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611095424.6A Active CN108132957B (zh) | 2016-12-01 | 2016-12-01 | 一种数据库处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132957B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144997A (zh) * | 2018-06-11 | 2019-01-04 | 玖富金科控股集团有限责任公司 | 数据关联方法、装置及存储介质 |
CN109063178B (zh) * | 2018-08-22 | 2019-12-24 | 四川新网银行股份有限公司 | 一种自动扩展的自助分析报表的方法及装置 |
CN109491989B (zh) * | 2018-11-12 | 2021-08-31 | 北京懿医云科技有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN109739855B (zh) * | 2018-12-28 | 2022-03-01 | 第四范式(北京)技术有限公司 | 实现数据表拼接及自动训练机器学习模型的方法和*** |
CN109697066B (zh) * | 2018-12-28 | 2021-02-05 | 第四范式(北京)技术有限公司 | 实现数据表拼接及自动训练机器学习模型的方法和*** |
CN109783498B (zh) * | 2019-01-17 | 2020-06-02 | 北京三快在线科技有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN111913949B (zh) * | 2019-05-07 | 2023-09-01 | 北京京东振世信息技术有限公司 | 数据处理方法、***、装置和计算机可读存储介质 |
CN111190880B (zh) * | 2019-08-08 | 2024-03-12 | 腾讯科技(深圳)有限公司 | 一种数据库检测方法、装置和计算机可读存储介质 |
CN110780794B (zh) * | 2020-01-02 | 2020-04-24 | 成都四方伟业软件股份有限公司 | 一种可视化数据列表显示方法及装置 |
CN111949644B (zh) * | 2020-08-17 | 2022-04-29 | 沈阳京华博瑞科技有限公司 | 一种面向电力行业业务***的数据质量评价方法和设备 |
CN112800283B (zh) * | 2021-01-29 | 2023-03-14 | 重庆恒真维实医药科技有限公司 | 一种基于药代动力学的医学数据库的建立方法 |
CN113268485B (zh) * | 2021-06-02 | 2024-02-09 | 电信科学技术第十研究所有限公司 | 数据表关联分析方法、装置、设备及存储介质 |
CN113486024B (zh) * | 2021-07-27 | 2024-04-09 | 中国银行股份有限公司 | 数据字典信息的传输方法及装置、存储介质及电子设备 |
CN116450637A (zh) * | 2022-01-05 | 2023-07-18 | 中移(成都)信息通信科技有限公司 | 一种数据管理方法、装置、电子设备以及存储介质 |
CN114547314B (zh) * | 2022-04-25 | 2022-07-05 | 北京安华金和科技有限公司 | 一种基于主从表的数据分类分级方法和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955957A (zh) * | 2005-10-27 | 2007-05-02 | 北京航空航天大学 | 基于Web服务的数据库自动化操作方法 |
CN103902653A (zh) * | 2014-02-28 | 2014-07-02 | 珠海多玩信息技术有限公司 | 一种构建数据仓库表血缘关系图的方法和装置 |
CN104268275A (zh) * | 2014-10-16 | 2015-01-07 | 苏州国云数据科技有限公司 | 一种对数据做业务抽象和路径查找分析的方法 |
CN105426410A (zh) * | 2015-11-02 | 2016-03-23 | 东软集团股份有限公司 | 数据采集***和用于数据采集***的分析方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662997B (zh) * | 2012-03-15 | 2015-09-16 | 播思通讯技术(北京)有限公司 | 一种存储xml数据到关系数据库的方法 |
CN104252506B (zh) * | 2013-06-28 | 2017-12-19 | 易保网络技术(上海)有限公司 | 同步构建业务模型和数据仓库模型及其映射的方法及*** |
-
2016
- 2016-12-01 CN CN201611095424.6A patent/CN108132957B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955957A (zh) * | 2005-10-27 | 2007-05-02 | 北京航空航天大学 | 基于Web服务的数据库自动化操作方法 |
CN103902653A (zh) * | 2014-02-28 | 2014-07-02 | 珠海多玩信息技术有限公司 | 一种构建数据仓库表血缘关系图的方法和装置 |
CN104268275A (zh) * | 2014-10-16 | 2015-01-07 | 苏州国云数据科技有限公司 | 一种对数据做业务抽象和路径查找分析的方法 |
CN105426410A (zh) * | 2015-11-02 | 2016-03-23 | 东软集团股份有限公司 | 数据采集***和用于数据采集***的分析方法 |
Non-Patent Citations (1)
Title |
---|
关系数据库中多表间关联规则算法研究;毛弟弟;《万方数据》;20091225;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108132957A (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132957B (zh) | 一种数据库处理方法及装置 | |
AU2018253479B2 (en) | Characterizing data sources in a data storage system | |
US8359339B2 (en) | Graphical user interface for configuration of an algorithm for the matching of data records | |
CN110532019B (zh) | 一种软件代码片段历史追溯的方法 | |
CN110928772A (zh) | 一种测试方法及装置 | |
US9009175B2 (en) | System and method for database migration and validation | |
US9824148B2 (en) | Method and device for searching and displaying scattered logs | |
CN110442847B (zh) | 基于代码仓库过程管理的代码相似性检测方法及装置 | |
CN111061733B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
JP2017041171A (ja) | テストシナリオ生成支援装置およびテストシナリオ生成支援方法 | |
CN111414351A (zh) | 一种MySQL数据库的性能诊断方法及装置 | |
CN111428095B (zh) | 图数据质量验证方法及图数据质量验证装置 | |
CN111143370B (zh) | 用于分析多个数据表之间关系的方法、设备和计算机可读存储介质 | |
CN112307124A (zh) | 数据库同步验证方法、装置、设备及存储介质 | |
CN113407536A (zh) | 表数据的关联方法、装置、终端设备及介质 | |
CN109636303B (zh) | 一种半自动提取和结构化文档信息的存储方法及*** | |
CN113010208A (zh) | 一种版本信息的生成方法、装置、设备及存储介质 | |
CN107577802A (zh) | 一种数据库管理方法及装置 | |
US7225412B2 (en) | Visualization toolkit for data cleansing applications | |
US20230185647A1 (en) | Systems and methods for query troubleshooting | |
CN115274121A (zh) | 健康医疗数据的管理方法、***、电子设备及存储介质 | |
CN111143356B (zh) | 报表检索方法及装置 | |
CN115080594A (zh) | 一种对数据进行多维度分析方法、***和电子设备 | |
CN109739835B (zh) | 一种数据版本保存方法及装置 | |
CN113779030A (zh) | 枚举值查询方法、可读存储介质及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |