CN115516441A - 用于实体的多个唯一标识符的多值主键 - Google Patents

用于实体的多个唯一标识符的多值主键 Download PDF

Info

Publication number
CN115516441A
CN115516441A CN202180022762.XA CN202180022762A CN115516441A CN 115516441 A CN115516441 A CN 115516441A CN 202180022762 A CN202180022762 A CN 202180022762A CN 115516441 A CN115516441 A CN 115516441A
Authority
CN
China
Prior art keywords
computer
database
data
data item
attributes
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.)
Pending
Application number
CN202180022762.XA
Other languages
English (en)
Inventor
M·博日奥尼
M·菲利普
M·卢琴斯基
T·扎托斯基
A·拉斯卡威克
M·皮亚特克
L·斯图登尼
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115516441A publication Critical patent/CN115516441A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

可以提供一种用于明确地标识数据库***中的实体的计算机实现的方法。该方法包括:将数据项作为具有不同属性的记录存储在数据库的表中;存储用于数据项的属性的选定组合的命名规则;以及对命名规则进行优先级排序。该方法还包括确定数据项的属性的选定组合中的每个的散列值,以及使用所确定的散列值和经优先化的命名规则来标识重复数据项。

Description

用于实体的多个唯一标识符的多值主键
背景技术
本发明总体上涉及数据库***,并且更具体地涉及一种用于明确地标识数据库***中的实体的计算机实现的方法。本发明进一步涉及用于明确地标识数据库***中的实体的相关数据库***,以及适于执行该方法的计算机程序产品。
企业信息管理仍然是企业IT(信息技术)组织的关键主题之一。这不仅适用于大型全球2000公司,而且适用于小型和中型企业。原因是简单的:在信息时代,用于数据管理的源的数量和要被管理为成功的数据的绝对量是不断增长的。解决这种困难情况的一种方法是在数据仓库项目的背景下创建企业数据目录并且使用数据管理概念。然而,现实已经显示,这种方法相当困难,因为新的数据源和新类型的数据在甚至更短的时间段内冲击IT组织。由此,需要一种更动态的方式来解决许多企业应用中和跨那些应用的重复数据对象的这种常见问题。
例如,同一客户可被多次输入到ERP***中,具有略微不同的名称或具有以不同格式放置的雇主标识号(例如,税号)。创建一些单位约束是不够的,因为相同的客户名称可以用大写或混合的情况或用全公司名或短名来保存。随着时间的推移,可以发现那些主题,但是其他相关数据的合并通常是困难的、耗时的并且有时是不可能的。随着时间的推移,***、订单和许多其他相关的数据对象可在ERP***中被创建,并且还在相关***中,如客户关系管理***(CRM)、供应链管理***(SCM)、物流***等。而且,所有这些***会使用重复的客户记录。例如,如果想要基于累积订单值给出客户折扣,它需要聚合保存的订单与不同的客户数据,这是当今的ERP***中可能不可用的功能。
然而,所描述的问题不仅存在于存储客户数据等的数据库中,而且还存在于用于高度技术应用的数据库中,例如,用于控制、优先化和允许或拒绝对计算资源的访问的配置管理数据库(CMDB)。
存在用于对条目存储***进行去重复的计算机实施的方法的若干公开。文件US2017/0308557A1公开了一种用于对数据库中的数据进行净化和去重复的方法和***。该方法包括基于数据字段从多个记录中过滤垃圾记录,以及应用净化规则来创建净化的数据库。生成相似性向量,其中每个向量对应于经净化的数据库中的远距数据条目的成对比较。应用匹配规则来将每个向量标注为匹配的、未匹配的和未分类的其中之一。
此外,文献US 2017/0011088 A1公开了一种用于在数据库中查找双联体的方法,包括针对数据库中的记录的至少两个字段组计算的散列值,其中字段组包括记录的至少两个字段,并且记录的少数组的散列值基于存储在相应记录中的相应字段组的至少两年中的值。
然而,如上所述,这些解决该问题的已知方法不能解决在无缝且无费力地处理支持企业和/或技术应用的数据库中的多个条目时企业信息组织所面临的困难。
所以,可能需要克服上述技术问题并提供一种高级解决方案来正确地存储和明确地标识涉及相同和/或不同数据对象的实体。
发明内容
根据本发明的一个方面,可以提供一种用于明确地标识数据库***中的实体的计算机实现的方法。该方法可以包括:将数据项存储在数据库的表格中,数据项被存储为包括多个属性的记录;存储用于数据项的属性的选定组合的命名规则;以及对命名规则进行优先级排序。该方法还可以包括确定数据项的属性的选定组合中的每个的散列值,以及使用所确定的散列值和经优先化排序的命名规则来标识重复数据项。
根据本发明的另一方面,可以提供一种用于明确地标识数据库***中的实体的数据库***。数据库***可包括:第一存储装置,其适于将数据项存储在数据库***的表格中,数据项被存储为包括多个属性的记录;第二存储装置,其适于存储用于数据项的属性的选定组合的命名规则;以及优先化排序装置,其适于对命名规则进行优先化排序。数据库***还可以包括适于确定数据项的属性的选定组合中的每个的散列值的确定装置,以及适于使用所确定的散列值和经优先化排序的命名规则来标识重复数据项的标识装置。
所提出的用于在工作负荷环境中的节点上执行无状态服务的计算机实现的方法,可以提供多个优点、技术效果、贡献和/或改进:
在两个记录标识同一物理实体的情况下的重复数据条目的问题被成功解决。所提出的解决方案基于使用多值键和命名规则以及命名规则的优先级排序以及确定数据项的属性的选定组合的散列值,以便明确地标识数据库中的实体。这可以使得使用已经存储了多个旨在标识同一物理实体的记录的经典企业数据管理***(例如,商业数据库)以及技术数据库(例如,CMDB)的问题得到解决。
如果描述相同的唯一物理实体,这将使得企业信息管理更容易地消除数据库***中的双重但稍微不同的条目。所提出的方法和***依赖于该概念,并且一旦建立它就自动和自主地工作。例如,重复条目可被自动标识并合并到必要和预定义的程度,而无需任何额外的人工干预。
与备份或归档***中的去重工作相反,所提出的概念对于在线交易数据库***可以是尤其有用的。然而,所提出的方法可以有利地用于其他环境中。基于企业计算环境中附加数据的源的不断增长的数量,所提出的概念可以帮助更好地管理在客户、前景和产品身份以及用于管理大型和复杂企业IT设备或网络(包括个人设备和现场计算***)以及远程可访问的计算资源(例如,在云计算概念的意义上)的技术数据方面的企业知识产权。
在下文中,将描述本发明构思的可应用于本发明的方法以及相关数据库***的其他实施方式:
根据该方法的一个有用的实施例,数据库***可以是关系数据库***。这可以表示最常见的应用。然而,对于所提出的概念,其他类型的数据库或存储概念可以用于所提出的技术思想,诸如面向对象的数据库、图数据库、层级数据库、存储数据记录的平面文件***等。
根据该方法的另一有用的实施例,数据库***可以是配置管理数据库(CMDB)。这样的数据库可以是特定的内部组织的基础,并且特别地可以用于管理数据中心中的技术设备和应用。因此,所提出的概念可以容易地用于不同的技术领域中。
根据有利实施例,该方法还可以包括通过将所确定的散列值保持为用于合并的(即,组合的)数据项的多值键来合并所标识的重复数据项。因此,数据库***中的多值键的概念在此可以为实施在此提出的概念建立坚实的技术基础。
根据高级实施例,该方法还可包括合并与所标识的数据项呈复合关系的其他数据项。因此,不仅应用数据字段本身可以直接彼此相关,而且相关数据、即与所标识的重复数据项处于复合关系的那些数据可以被合并,使得描述实体的特性的所有数据可以被联合地和明确地访问。
根据另一有利实施例,该方法还可以包括保持指向所确定的散列值的合并(即,组合)数据项的同一行标识符、即行-ID的指针。由此,可保持主键唯一性,且行-ID可成为数据库的表中的真实主键。然而,它们对数据库用户完全不可见。可替代地,它们对于数据库用户可见,但是不能被数据库用户改变。
根据进一步的高级实施例,该方法还可以包括保持表的索引,以及在与索引相关的搜索树中保持指针,使得对于组合的数据项,指针值可以指向相同的记录标识符。因此,这里提出的概念也可以被阐述以在数据库中快速搜索。中央应用的想法不会减缓搜索树的功能。这通过给索引树的不同分支中的指针相同的值来实现。
根据更高级的实施例,该方法还可以包括使用“创建SQL语句”,该“创建SQL语句”在此被重新定义,被适配成用于创建命名规则及其相关优先级。所以,用户或应用程序(例如,经由API)可以如由数据项所描述的通常用于标识实体的特定应用或命名约定所要求的,创建命名规则和相关优先级。
根据一个许可实施例,该方法还可包括使用多值主键对数据库的表中的记录进行分类。因此,所提出的概念通常不以正常的数据库表操作的方式来使用,并且通常不应用于传统的数据库***表。
根据该方法的另一许可实施例,多值主键可以用于在多节点数据库引擎上对聚类数据进行聚类。因此,所提出的概念还可以扩展到更复杂和分布式类型的数据库。
根据该方法的另一有用实施例,多值主键可与单个值列数据项相比。因此,诸如表间的数据字段比较的已知操作——如从传统数据库已知的——也可以在这里提出的技术概念下适用。
根据额外改进的实施例,所述方法还可包括收集单值主键和多值主键的数据块的统计数据库数据。因此,该方法的技术概念不仅是根据最佳实践来管理数据库***,而且允许使用统计方法来更好地管理包括多值键的底层数据库管理***。
此外,实施例可以采取可从计算机可用或计算机可读介质访问的相关计算机程序产品的形式,该计算机可用或计算机可读介质提供用于由计算机或任何指令执行***使用或与其结合使用的程序代码。为了本描述的目的,计算机可用或计算机可读介质可以是可以包含用于存储、通信、传播或传输程序以供指令执行***、装置或设备使用或与其结合使用的装置的任何设备。
附图说明
应注意,参考不同的主题描述本发明的实施例。具体地,参照方法类型权利要求描述一些实施例,而参照装置类型权利要求描述其他实施例。然而,本领域的技术人员将从以上和以下描述中得出,除非另外指出,否则除了属于一种类型的主题的特征的任何组合之外,涉及不同主题的特征之间(具体地,方法类型权利要求的特征与装置类型权利要求的特征之间)的任何组合也被认为是在本文档内披露的。
以上定义的方面和本发明的另外的方面从下面将要描述的实施例的实例中是显而易见的,并且参考实施例的实例来解释,但是本发明不限于此。
结合附图,将最好地理解以下通过示例方式给出并且不旨在将示范性实施例仅限于此的详细描述,在附图中:
图1示出了用于明确地标识数据库***中的实体的创造性计算机实现的方法的实施例的框图。
图2a示出了显示同一物理实体的不同记录的表。
图2b示出了说明总订单量的折扣问题的表。
图3a、图3b和图3c示出了具有示例性字段、名称、地址和订单数据的分层组织的数据库表。
图4a和图4b示出了要基于唯一属性合并的数据库表条目的条目。
图4c和图4d示出了要基于命名规则合并的数据库表条目的条目。
图5a和图5b示出了将与相关索引树一起合并的数据库表条目的条目。
图6a和图6b示出了要在命名规则下与相关索引树一起合并的数据库表条目的条目。
图7示出了用于明确标识数据库***中的实体的数据库***的实施例的框图。
图8示出了描绘根据示例性实施例的包括根据图7的数据库***的计算***的硬件组件的示例性框图。
图9示出了根据示例性实施例的云计算环境。
图10示出了根据示例性实施例的抽象模型层。
附图不一定按比例绘制。附图仅是示意性表示,并不旨在描绘示例性实施例的特定参数。附图仅旨在描述典型的示例性实施例。在附图中,相同的标号表示相同的元件。
具体实施方式
在此披露了所要求保护的结构和方法的详细实施例;然而,应当理解的是,所披露的实施例仅仅是对所要求保护的结构和方法的说明,它们可以以不同的形式来实施。示例性实施例仅是说明性的,然而,可以以许多不同的形式体现,并且不应被解释为局限于本文中阐述的示例性实施例。相反,提供这些示例性实施例是为了使本公开全面且完整,并且将示例性实施例所覆盖的范围完全传达给本领域技术人员。在描述中,可省略众所周知的特征和技术的细节以避免不必要地使所呈现的实施例模糊。
说明书中对“一个实施例”、“实施例”、“示例性实施例”等的引用表示所描述的实施例可包括特定的特征、结构或特性,但是每个实施例可能不一定包括特定的特征、结构或特性。此外,这样的短语不一定指相同的实施例。进一步,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例(无论是否明确描述)实现这样的特征、结构或特性在本领域技术人员的知识范围内。
为了不模糊示范性实施例的呈现,在以下详细描述中,本领域已知的一些处理步骤或操作可能已经被组合在一起用于呈现和用于说明的目的,并且在一些情况下可能尚未被详细描述。在其他情况下,可能根本不描述本领域已知的一些处理步骤或操作。应当理解,以下描述集中于根据各种示例性实施例的区别特征或元件。
在本说明书的上下文中,可以使用以下惯例、术语和/或表达:
术语‘明确地标识’可表示通过相关数据项不可互换地唯一地标识物理项的能力。简单地说,不应存在两个数据项指向同一物理实体。
术语‘实体’可表示将由数据项(例如,到数据库的记录)标识和/或寻址的物理对象。
术语‘数据库***’可表示适用于存储数据项的存储设备——物理的或逻辑的。***的示例可以是关系数据库***、分层数据库***、平面文件***、图形数据库和/或对象数据库或以上的组合。通常,所提出的概念可以在大量不同的数据库中工作。
术语‘关系数据库***’可表示根据C.F.Codd的规则组织的数据库***。关系数据库***可以表示使得能够优选地将数据存储在记录中的存储设备,每个记录具有固定长度或可变长度。通常,并且尤其在关系数据库***中,数据被组织在具有行的表中。每一行可表示具有属性的记录。不同表的不同记录可通过将选择路由应用于属性而相关地设置。
术语‘属性’可表示数据库***中的表的记录中的字段。
术语‘命名规则’可表示将应用于记录的属性的约束或解释框架。命名规则可以用将相似但不同的数据项彼此相关的方式来制定。
术语‘对命名规则进行优先级排序’可表示根据可用命名规则对于特定属性或其组合的重要性来定义可用命名规则的序列。
术语‘散列值’可表示可变长度的数据字段(例如,文本字段)到具有固定长度(例如,整数值)的数据字段的映射。通常可使用散列函数或散列表来执行映射。
术语‘重复数据项’可表示消除涉及相同物理实体但在特定属性中可仅具有类似值而不是相同值的数据项的过程。然而,应当注意,将不消除属性的类似值,而仅消除冗余信息和其他属性。
术语‘多值键’可表示在键属性字段中具有多于一个值而不是根据传统规则仅一个值的概念。唯一性现在可能不再经由该特定属性来定义,而是由用户可能不具有对其的操纵访问的行-ID来定义。
术语‘复合关系’可在UML(通用标记语言)的意义上进行解释。复合关系可表示关联的特定情况。在聚集和合成中,类的对象“拥有”较高类的另一对象。作为示例,在没有房子的情况下可能不存在房间。因此,两个对象房间/房子具有复合关系。
术语‘行标识符’可表示数据库的特定表中的唯一标识符,其唯一地标识特定记录。行标识符(即,行-ID)可以被用作已经被多值主键替换的原始主键的替换。
术语‘索引’可表示增加对数据库表中的各个记录的访问速度的机制,特别是在搜索操作中。索引树叶可包括指向特定记录(例如,指向特定行-ID)的指针。
术语‘SQL语句’可表示用于数据库的被称为结构化查询语言(SQL)的编程语言的命令。
在下文中,将给出附图的详细描述。附图中的所有指令是示意性的。首先,给出了用于明确地标识数据库***中的实体的创造性计算机实施的方法的实施例的框图。此后,将描述用于明确地标识数据库***中的实体的数据库***的其他实施例以及实施方式。
图1示出了用于明确地标识数据库***中的实体的计算机实现的方法100的优选实施例的框图。方法100包括将数据项存储102在数据库的表中,具体地以关系数据库中的记录的形式,但也可以以任何其他存储格式。数据项存储为分别包括多个固定或可变长度的属性的记录。
方法100包括存储104数据项的属性的选定组合的命名规则(具体地,针对属性的两个组合的至少两个规则)。可以注意到,组合还可以仅与一个属性相关。
此外,方法100包括对命名规则进行优先级排序106,即,定义应用它们的序列或定义规则的顺序。优先级排序应取决于它们对实体标识的重要性。
然后,方法100包括使用散列函数为数据项的属性的选定组合中的每一个确定108散列值,以及使用所确定的散列值和经优先级排序的命名规则标识110重复数据项,特别是至少一个记录。
换言之,命名规则是唯一地标识给定实体的方式。命名规则基于实体属性。例如,为了标识客户,可以使用其名称。在大多数情况下,仅客户名称就足以区分客户。由此,这可以是第一命名规则。下一命名规则可以使用客户的税收标识符,有时被称为雇主标识号(EIN)。
命名规则还可以基于一组属性,例如,良好的命名规则将是基于客户名称及其相关EIN的命名规则。
对于给定实体的命名规则应基于它们各自的重要性来分类。例如,基于EIN的命名规则更好,因为几乎不可能拥有具有相同EIN的两个客户。这也是更重要的,因为如果为***中的客户创建记录的人可访问EIN数据库(或数据库表),那么他们也可能访问其他相关客户数据。所以,仅知道客户名称但不知道其相关EIN的某人不是顾客数据的非常好的来源。因此,仅基于客户名称的命名规则应当具有相对低的优先级。
命名规则针对给定表被创建并且被数据库引擎自动考虑和应用。当输入表的记录时,数据库***列出所有可适用的命名规则(即,或基于不为空属性值的属性的命名词)。数据库引擎然后基于组合属性的值确定每个命名规则值是散列值。
例如,对于一个客户,可使用上述第一命名规则并将其值确定为
NR1=hash(客户名称)=hash(ABC)=UUID1,并且
NR2=hash(客户EIN)=hash(EIN1234)=UUID2。
由此,两个值可以用作给定的记录主键。记录可以包含许多命名词,并且其结果是,可以存在许多主键(与数据库中的主键的原始历史定义相反)。现在可以由它们中的每一个找到和标识相关记录,所以它们中的每一个都是同样重要的主键。这种潜在的前台冲突的解决方案是将唯一行-ID用作真正的唯一主键,然而这些主键通常不是数据库用户可访问的。
因为具有多个值作为主键,所以也可以将其用作外键。因此,为了创建外键约束,可以使用行的行-ID(唯一行标识符),该行-ID是给定的行内部标识符,在某些情况下,该行-ID可以对数据库用户可见,但是在数据库用户的查询中不应使用该行-ID。该数据库引擎或数据库***可以禁止这个活动。
图2a示出了显示同一物理实体的不同记录的数据库表条目。与该图有关的更多解释性文本可以在本文档的背景部分中找到。列PK是指与客户名称ABC、A-B-C和ABC Ltd相关的示出的主键客户标识符CID1、CID2、CID3。在该示例中,这些客户名称指代同一物理实体,即,同一客户。在该示例中,客户被示为具有两个相似但不完全相同的EIN号,EIN1234和EIN-1234。
图2b示出了说明订购量的折扣问题的数据库表条目。描述该问题的文本可以在本文档的背景部分中找到。因此,图2b示出了具有主键订单条目(IODi)、订单号、客户标识符和每列的订单值的订单条目表。两个表之间的链接基于客户标识符,如箭头所示。记录形式的表和数据库条目的所有其他示例应在所描述的意义上进行解释。
图3a、图3b和图3c示出了具有示例性字段:名称、地址和订单数据的分层组织的数据库表。图3a示出了两个客户(可能相同)在数据库中注册。图3b示出了图3a的客户的相关地址。它们中的每一个具有如图3c中所示的订单。
可以假设某人想要创建名称为“ABC”的具有“EIN1234”的新客户。这在以下附图中示出。
图4a和图4b示出了要基于唯一属性合并的数据库表条目的条目。作为这种记录合并的结果,需要合并两个现有客户记录,具体地,图4a的表的第一行中的一个,以及图4a的表中具有第三记录的一个,如图4a内的右侧椭圆所示。属性“名称”来自利用定义较高优先级的命名规则创建的第三行(注意,在第三行中设置了具有较高优先级的EIN属性),使得“ABC”保持为名称。EIN字段在第一行中为空,使得来自第二行的值被保持在合并记录中。因此,一个条目具有双主键CNR1#A、CNR2#B但具有示出为行ID(行标识符)的一个真实唯一标识符。
图4c和图4d示出了在上级上下文中基于命名规则要合并的数据库表条目的条目。通常,在客户的上下文中将地址“命名”。这意味着在没有上级对象(即,对象“客户”)的情况下它们不能存在。这在地址命名规则中表示,其中,“客户”被定义为第一属性。由于上级对象应当被合并(客户),所以需要确定是否还需要合并依赖对象(在客户的上下文中命名的对象,即,这里是地址)。
图4c和图4d涉及合并属性“街道”和“城市”从而在唯一行-ID ARID1下创建多值主键ANR1#A和ANR1#B的这种上下文。
因此,可以确定合并的客户具有两个地址,这两个地址具有可以合并的相同属性“街道”和“城市”。旧的主键值ANR1#B也被保持,因为它可以被用作其他对象中或者甚至一些外部***中的参考。但是,由于使用前一行-ID来确定,所以不存在可导致过度合并的与其他主键值冲突的风险。过度合并是两个不同的对象(其将呈现不同实体)被合并的情形,尽管它们不应该被合并。
图5a和图5b示出了将与相关索引树合并在一起的数据库表条目的条目。除了以上讨论的合并技术之外,还需要支持主键唯一性,尽管其多值性质。原则上,人们需要存储指向同一行-ID的多个主键值。
在给定表中,别名可被存储在单个列中作为别名的集合。当在该列上创建索引以保持主键约束时,别名列表被分离成单独的别名,并且它们中的每个被用作索引中的单个值。所有这些索引都指向表中的相同记录。这在图5a和图5b中示出。在图5a中,索引树的两个叶涉及非管理表中的不同行,其中,在图5b中,相同的两个索引树叶现在指向具有多值键和唯一行-ID的相同记录。
图6a和图6b示出了要在命名规则下与相关索引树合并的数据库表条目的条目。这些图涉及子表的情况。在这种情况下,基于上级(或父)别名创建一个附加索引。上级别名列表被分离成单独的别名,并且它们中的每一个被用作索引中的单个值。那些值被存储在叶节点中并且指向子表中的一个单个记录。
图6a和图6b示出了要在命名规则下与相关索引树合并的数据库表条目的条目。对于地址,基于上级属性“客户”具有额外的索引,如图6a所示。
当然,如果有3个子记录和2个父主键,则以6个叶节点结束,因为需要能够找到父主键CNR1#A和CNR2#B的所有3行,如图6b中所示。
图7示出了用于明确地标识数据库***中的实体的数据库***700的实施例的框图。数据库***700包括适于将数据项存储在数据库***的表中的第一存储装置
(具体地,第一存储单元702),其中,这些数据项被存储为包括多个属性的记录。
数据库***700还包括适于存储用于数据项的属性的选定组合的命名规则的第二存储装置(具体地,第二存储单元704)和适于对命名规则进行优先级排序的优先级排序装置(具体地,优先级排序模块706)以及适于确定数据项的属性的选定组合中的每个的散列值的确定装置(具体地,确定单元708)。
最后但并非最不重要的是,数据库***700包括适于使用所确定的散列值和经优先级排序的命名规则来标识重复数据项的标识装置(具体地,标识模块710)。
可以注意到,模块、单元和/或装置可以互连以用于它们之间的信号和/或消息交换。该连接可以一对一的方式实现,或者使用数据库***内部总线***712实现。第一存储单元702、第二存储单元704、优先级排序模块706、确定单元708和标识模块710可以直接或间接地连接至这个数据库***内部总线***712。
图8描绘了根据示例性实施例的本发明内的设备的框图。应当理解,图8仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
在此使用的设备可包括一个或多个处理器02、一个或多个计算机可读RAM04、一个或多个计算机可读ROM 06、一个或多个计算机可读存储介质08、设备驱动器12、读/写驱动器或接口14、网络适配器或接口16,其全部通过通信结构18互连。通信结构18可用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、***存储器、***设备和***内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。
一个或多个操作***10和一个或多个应用程序11被存储在一个或多个计算机可读存储介质08上,以供一个或多个处理器02经由一个或多个相应的RAM 04(其通常包括高速缓存存储器)来执行。在所示实施例中,计算机可读存储介质08中的每个可以是内部硬盘的磁盘存储设备、CD-ROM、DVD、记忆棒、磁带、磁盘、光盘、诸如RAM、ROM、EPROM、闪存的半导体存储设备或可以存储计算机程序和数字信息的任何其他计算机可读有形存储设备。
在此使用的设备还可以包括R/W驱动器或接口14,用于从一个或多个便携式计算机可读存储介质26读取和写入该一个或多个便携式计算机可读存储介质。所述设备上的应用程序11可存储在一个或多个便携式计算机可读存储介质26上,通过相应的R/W驱动器或接口14读取并加载到相应的计算机可读存储介质08中。
在此使用的设备还可以包括网络适配器或接口16,如TCP/IP适配器卡或无线通信适配器(如使用OFDMA技术的4G无线通信适配器)。所述计算设备上的应用程序11可以经由网络(例如,互联网、局域网或其他广域网或无线网络)和网络适配器或接口16从外部计算机或外部存储设备被下载到计算设备。程序可以从网络适配器或接口16加载到计算机可读存储介质08上。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
在此使用的设备还可以包括显示屏20、键盘或小键盘22、以及计算机鼠标或触摸板24。设备驱动器12与用于成像的显示屏20、键盘或小键盘22、计算机鼠标或触摸板24、和/或用于字母数字字符输入和用户选择的压力感测的显示屏20接口。设备驱动器12、R/W驱动器或接口14和网络适配器或接口16可以包括硬件和软件(存储在计算机可读存储介质08和/或ROM 06上)。
在此描述的程序基于在示例性实施例中的特定示例性实施例中实现它们的应用来标识。然而,应当理解,本文中的任何特定程序术语仅仅是为了方便而使用的,并且因此示范性实施例不应局限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
基于上述内容,已经公开了一种计算机***、方法和计算机程序产品。然而,在不偏离示例性实施例的范围的情况下,可以进行多种修改和替换。因此,通过示例而非限制的方式公开了示例性实施例。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,示范性实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够在较高抽象层次(例如,国家、州或数据中心)处指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云***通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作***、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作***和应用。消费者不管理或控制底层云基础设施,而是具有对操作***、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图9,描述了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点40,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N。节点40可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图9中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点40和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图10,示出了由云计算环境50(图9)提供的一组功能抽象层。应提前理解,图10中所示的组件、层和功能仅旨在是说明性的,并且示例性实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作***74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和***管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;交易处理95;和多媒体修改96。
本发明可以是任何可能的技术细节集成度的***、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的***来实现。
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。本文使用的术语被选择来最好地解释实施例的原理、实际应用或优于市场中发现的技术的技术改进,或者使得本领域的其他普通技术人员能够理解本文公开的实施例。
本发明可以体现为***、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
该介质可以是用于传播介质的电子、磁性、光学、电磁、红外或半导体***。计算机可读介质的示例可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前示例包括致密盘-只读存储器(CD-ROM)、致密盘-读/写(CD-R/W)、DVD和蓝光盘。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)、以及常规的过程式程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和/或框图示出了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的***来实现。
本文中使用的术语仅用于描述具体实施方式的目的,而并非旨在限制本发明。如本文中使用的,除非上下文另有明确指示,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应当理解,当在本说明书中使用术语“包括(comprises)”和/或“包含(comprising)”时,其指定所述特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合的存在或添加。
以下权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等效物旨在包括用于结合如具体要求保护的其他要求保护的元件执行所述功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了本发明的描述,但并不旨在是详尽的或限于所公开形式的本发明。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述这些实施例以便最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明的具有不同修改的不同实施例,如适合于所预期的特定用途。

Claims (20)

1.一种用于明确地标识数据库***中的实体的计算机实现的方法,所述方法包括:
将数据项存储在数据库的表中,其中所述数据项被存储为包括多个属性的记录;
存储用于所述数据项的属性的选定组合的命名规则;
对所述命名规则进行优先级排序;
确定所述数据项的所述属性的选定组合中的每个的散列值,以及
使用所确定的散列值和经优先级排序的命名规则来标识重复数据项。
2.根据权利要求1所述的方法,其中,所述数据库***是关系数据库***。
3.根据权利要求1所述的方法,其中,所述数据库***是配置管理数据库。
4.根据权利要求1所述的方法,进一步包括,通过保持所确定的散列值作为用于合并的数据项的多值键来合并所标识的重复数据项。
5.根据权利要求4所述的方法,进一步包括,合并与所标识的数据项处于合成关系的其他数据项。
6.根据权利要求4所述的方法,进一步包括,为所确定的散列值保持指向所述合并的数据项之一的相同行标识符的指针。
7.根据权利要求1所述的方法,进一步包括:
保持所述表的索引;以及
在与所述索引相关的搜索树中保持指针,使得所述指针指向组合数据项的相同记录标识符。
8.根据权利要求1所述的方法,进一步包括:
使用适于创建命名规则及其相关优先级的创建SQL语句。
9.根据权利要求1所述的方法,进一步包括:
利用多值主键对数据库表中的记录进行排序。
10.根据权利要求1所述的方法,其中,多值主键用于对多节点数据库引擎上的聚类数据进行聚类。
11.根据权利要求9所述的方法,其中多值主键与单值列数据项是可比较的。
12.根据权利要求1所述的方法,进一步包括:
收集单值主键和多值主键的数据块的统计数据库数据。
13.一种用于明确地标识数据库***中的实体的计算机***,所述计算机***包括:
一个或多个计算机处理器、一个或多个计算机可读存储介质、以及存储在所述一个或多个计算机可读存储介质上的用于由能够执行一种方法的所述一个或多个处理器中的至少一个执行的程序指令,所述方法包括:
将数据项存储在数据库的表中,其中所述数据项被存储为包括多个属性的记录;
存储用于所述数据项的属性的选定组合的命名规则;
对所述命名规则进行优先级排序;
确定所述数据项的所述属性的选定组合中的每个的散列值,以及
使用所确定的散列值和经优先级排序的命名规则来标识重复数据项。
14.根据权利要求13所述的计算机***,其中所述数据库***是关系数据库***。
15.根据权利要求13所述的计算机***,其中所述数据库***是配置管理数据库。
16.根据权利要求13所述的计算机***,进一步包括,通过保持所确定的散列值作为用于合并的数据项的多值键来合并所标识的重复数据项。
17.根据权利要求16所述的计算机***,进一步包括,合并与所标识的数据项处于合成关系的其他数据项。
18.根据权利要求16所述的计算机***,进一步包括,为所确定的散列值保持指向所述合并的数据项之一的相同行标识符的指针。
19.根据权利要求13所述的计算机***,进一步包括:
保持所述表格的索引;以及
在与所述索引相关的搜索树中保持指针,使得所述指针指向组合数据项的相同记录标识符。
20.一种用于明确地标识数据库***中的实体的计算机程序产品,所述计算机程序产品包括:
一个或多个非暂时性计算机可读存储介质以及存储在所述一个或多个非暂时性计算机可读存储介质上的能够执行方法的程序指令,所述方法包括:
将数据项存储在数据库的表中,其中所述数据项被存储为包括多个属性的记录;
存储用于所述数据项的属性的选定组合的命名规则;
对所述命名规则进行优先级排序;
确定所述数据项的所述属性的选定组合中的每个的散列值,以及
使用所确定的散列值和经优先级排序的命名规则来标识重复数据项。
CN202180022762.XA 2020-04-03 2021-03-05 用于实体的多个唯一标识符的多值主键 Pending CN115516441A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/839,200 US11604776B2 (en) 2020-04-03 2020-04-03 Multi-value primary keys for plurality of unique identifiers of entities
US16/839,200 2020-04-03
PCT/IB2021/051847 WO2021198807A1 (en) 2020-04-03 2021-03-05 Multi-value primary keys for plurality of unique identifiers of entities

Publications (1)

Publication Number Publication Date
CN115516441A true CN115516441A (zh) 2022-12-23

Family

ID=77921765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180022762.XA Pending CN115516441A (zh) 2020-04-03 2021-03-05 用于实体的多个唯一标识符的多值主键

Country Status (10)

Country Link
US (1) US11604776B2 (zh)
JP (1) JP2023519551A (zh)
KR (1) KR20220143696A (zh)
CN (1) CN115516441A (zh)
AU (1) AU2021250715B2 (zh)
CA (1) CA3170205A1 (zh)
DE (1) DE112021000621T5 (zh)
GB (1) GB2609831A (zh)
IL (1) IL295594A (zh)
WO (1) WO2021198807A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11244069B2 (en) * 2019-08-26 2022-02-08 International Business Machines Corporation Controlling combination of information submitted to computing systems
US11604776B2 (en) 2020-04-03 2023-03-14 International Business Machines Corporation Multi-value primary keys for plurality of unique identifiers of entities

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961721B2 (en) * 2002-06-28 2005-11-01 Microsoft Corporation Detecting duplicate records in database
US8838549B2 (en) * 2008-07-07 2014-09-16 Chandra Bodapati Detecting duplicate records
CN101355448B (zh) 2008-09-03 2012-01-11 中兴通讯股份有限公司 上载比较方法和装置
US8645543B2 (en) * 2010-10-13 2014-02-04 International Business Machines Corporation Managing and reconciling information technology assets in a configuration database
US8832041B1 (en) 2011-09-16 2014-09-09 Google Inc. Identifying duplicate entries
US10387389B2 (en) 2014-09-30 2019-08-20 International Business Machines Corporation Data de-duplication
GB2530774A (en) 2014-10-01 2016-04-06 Ibm Method for creating and handling identification for a re-source in a configuration database
US11347878B2 (en) * 2015-06-02 2022-05-31 ALTR Solutions, Inc. Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
EP3115906A1 (en) * 2015-07-07 2017-01-11 Toedt, Dr. Selk & Coll. GmbH Finding doublets in a database
US10558627B2 (en) * 2016-04-21 2020-02-11 Leantaas, Inc. Method and system for cleansing and de-duplicating data
US10983959B2 (en) * 2017-10-26 2021-04-20 First Data Corporation Merchant table and associated processes
US11487822B2 (en) 2018-06-13 2022-11-01 International Business Machines Corporation Facilitating spatial indexing on distributed key-value stores
US11604776B2 (en) 2020-04-03 2023-03-14 International Business Machines Corporation Multi-value primary keys for plurality of unique identifiers of entities

Also Published As

Publication number Publication date
CA3170205A1 (en) 2021-10-07
AU2021250715A1 (en) 2022-09-15
GB2609831A8 (en) 2023-03-08
WO2021198807A1 (en) 2021-10-07
AU2021250715B2 (en) 2024-02-01
KR20220143696A (ko) 2022-10-25
GB202216193D0 (en) 2022-12-14
IL295594A (en) 2022-10-01
US11604776B2 (en) 2023-03-14
GB2609831A (en) 2023-02-15
US20210311917A1 (en) 2021-10-07
JP2023519551A (ja) 2023-05-11
DE112021000621T5 (de) 2022-11-10

Similar Documents

Publication Publication Date Title
US10915532B2 (en) Supporting a join operation against multiple NoSQL databases
US11334593B2 (en) Automated ETL workflow generation
US20150012553A1 (en) Dynamic assignment of business logic based on schema mapping metadata
US11269844B2 (en) Automated data labeling
US9454592B2 (en) Managing, importing, and exporting teamspace templates and teamspaces in content repositories
WO2022257709A1 (en) Database optimization using record correlation and intermediate storage media
AU2021250715B2 (en) Multi-value primary keys for plurality of unique identifiers of entities
US10789272B2 (en) Scalable, distributed containerization across homogenous and heterogeneous data stores
US9679013B2 (en) Generating and accessing a data table
US9886463B2 (en) Generating and accessing a data table
US20200334302A1 (en) Automatic check of search configuration changes
US20230153300A1 (en) Building cross table index in relational database
US11556507B2 (en) Processing metrics data with graph data context analysis
US11086836B2 (en) Index leaf page splits avoidance or reduction
US20170220584A1 (en) Identifying Linguistically Related Content for Corpus Expansion Management
US20190095513A1 (en) System and method for automatic data enrichment from multiple public datasets in data integration tools
US10169382B2 (en) Keyword identification for an enterprise resource planning manager
US11977540B2 (en) Data virtualization in natural language
US20220292121A1 (en) Search in knowledge graphs
US20230297551A1 (en) Transforming data of strict schema structure database
US11275770B2 (en) Parallelization of node's fault tolerent record linkage using smart indexing and hierarchical clustering
US20230222107A1 (en) Database record bit
JP2024525114A (ja) レコード相関及び中間ストレージ媒体を用いたデータベース最適化
US20200293530A1 (en) Data schema discovery with query optimization

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