CN106462643B - 外键到主键的基于规则的联结 - Google Patents

外键到主键的基于规则的联结 Download PDF

Info

Publication number
CN106462643B
CN106462643B CN201580034946.2A CN201580034946A CN106462643B CN 106462643 B CN106462643 B CN 106462643B CN 201580034946 A CN201580034946 A CN 201580034946A CN 106462643 B CN106462643 B CN 106462643B
Authority
CN
China
Prior art keywords
expression
row
parent table
semantic
parent
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
Application number
CN201580034946.2A
Other languages
English (en)
Other versions
CN106462643A (zh
Inventor
C·佩特克勒斯克
M·杜米特鲁
V·帕拉斯基夫
A·耐茨
P·J·桑德斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106462643A publication Critical patent/CN106462643A/zh
Application granted granted Critical
Publication of CN106462643B publication Critical patent/CN106462643B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • 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)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

将数据库系统中的子表链接到父表。对于给定父表行,与该特定行相关联的表达被标识出。该表达可以是语义表达,该语义表达包括不同于或不仅仅只是等于表达或包含表达的某物。该表达还可取父表的除该父表的主键以外的字段作为输入。对于子表的多个行(且可能是所有行)中的每一者,该表达是对照子表的对应行的外键来评估的。如果外键匹配表达,则关联在外键和父表的特定行之间被创建并或许被保存。这些表达可不同,甚至连父表中的单个行的粒度也一样,由此允许或许定制的每行表达。

Description

外键到主键的基于规则的联结
背景
计算系统和相关联的网络彻底改变了人类工作、游戏和通信的方式。我们生活的几乎每个方面都在某种方式上受到计算系统的影响。计算系统现在大部分都连接到网络和因特网,使得允许大范围的通信。数据库技术通过计算系统的用户来启用。在关系数据库系统中,存在多个相互关联的表,其中各关系通过各表之间的链接来定义。
通常,各表被链接,使得一个表中的字段(被称为“引用表”或“子表”)唯一地标识另一表(被称为“被引用表”或“父表”)的某一行(例如,主键)。由此,外键被用于建立并加强子表和父表之间的链接。
传统地,子表的外键通过其中该外键正好与父键相同的直接等同性来唯一地标识父表的行。在外键和主键两者都是文本的情况下,子表的外键还可通过包含父表的行的主键的文本来唯一地标识该行。因此,子表的外键通过与父表的行的主键相同(或者在为文本的情况下通过包含父表的该行的主键)来唯一地标识该行。
本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实施所述一些实施例的一个示例性技术领域。
简要概述
本文中描述的至少一些实施例涉及使用数据库系统中的子表中的外键将该子表链接到父表。对于父表中的给定行,与该特定行相关联的表达被标识出。在一个实施例中,该表达是语义表达,该语义表达包括不同于或不仅仅只是等于表达或包含表达的某物。例如,该表达可以是复合表达、范围化表达、集合表达等等,从而表示更复杂的关系。该表达还可取父表的除该父表的主键以外的字段作为输入。
对于子表的多个行(且可能是所有行)中的每一者,该表达是对照子表的对应行的外键来评估的。如果基于该评估动作子表的对应行的外键匹配该表达,则关联在外键和父表的特定行之间被创建,并且该关联可或许被持久保存例如以供以后响应于查询来使用。
该表达可适用于父表的所有行以由此类似地在子表的外键和父表的对应匹配行之间创建关联。然而,在一些实施例中,这些表达可不同,甚至连父表中的单个行的粒度也一样,由此允许或许定义一个或多个关联准则的定制的每一行表达。在该情况下,父表中或许存在用于这样的表达的专用列。
本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
附图简述
为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
图1抽象地示出了其中可采用本文中所描述的一些实施例的计算系统;
图2示出了本文中所描述的原理可在其中起作用的数据库系统,且该系统包括子表和父表;
图3示出了用于使用子表中的外键字段将数据库系统中的子表链接到父表的方法的流程图;
图4示出了其中存在推特(tweet)子表和电影父表的示例数据库系统;
图5示出了其中存在雇员子表和薪金范围父表的示例数据库系统;以及
图6示出了基于图4的电影主表的主键(例如,电影标题)构建的特里(trie)结构。
详细描述
本文中描述的至少一些实施例涉及使用子表中的外键将数据库系统中的子表链接到父表。对于父表中的给定行,与特定行相关联的表达被标识出。在一个实施例中,该表达是语义表达,该语义表达包括不同于或不仅仅只是等于表达或包含表达的某物。例如,该表达可以是复合表达、范围化表达、集合表达等等,从而表示更复杂的关系。该表达还可取父表的除该父表的主键以外的字段作为输入。
对于子表的多个行(且可能是所有行)中的每一者,该表达是对照子表的对应行的外键来评估的。如果基于该评估动作子表的对应行的外键匹配该表达,则关联在外键和父表的特定行之间被创建,并且该关联可或许被持久保存例如以供以后响应于查询来使用。
该表达可适用于父表的所有行以由此类似地在子表的外键和父表的对应匹配行之间创建关联。然而,在一些实施例中,甚至下至父表中的单个行的粒度,表达可不同,由此允许或许定义一个或多个关联准则的定制的每一行表达。在该情况下,父表中或许存在用于这样的表达的专用列。
将参考图1描述对计算系统的一些介绍性讨论。接着,这种基于表达的关联的实施例将参考随后的附图予以描述。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
如图1所例示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中所使用的,术语“可执行模块”或“可执行组件”可指可在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。
本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备,或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他有形存储介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可以用来携带所需要的以计算机可执行的指令或数据结构的形式存在的程序代码装置并可以被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图2示出了本文中描述的原理可在其中起作用的数据库系统200。数据库环境200包括子表210和父表220。本文中描述的原理可在任何配置的子表和任何配置的父表上操作,而不管每一表中行和列的数目。
仅出于示例的目的,子表210被示为包括四个行211A、211B、211C和211D。然而,省略号211E表示子表210可包括任何数目的行,甚至少于所示出的四个行。例如,子表210可包括少至单个行,和多至可枚举数目的行,以及其间的任何事物。类似的,子表210被示为包括单个列212B,但是省略号212A和212C表示子表210可包括任何数目的列。列212B是包括可用于唯一地标识父表220中的相应行的值(未具体示出)的外键列。
仅出于示例的目的,父表220被示为包括三个行221A、221B和211C。然而,省略号221D表示父表220可包括任何数目的行,甚至少于所示出的三个行。例如,父表220可包括少至单个行,和多至可枚举数目的行,以及其间的任何事物。类似地,父表220被示为包括四个列222B、222C、222D和222E,但是省略号222A和222F标识父表220可包括任何数目的列。列222B是包括可用于唯一地标识父表220中的相应行的值(图2中未具体示出)的主键列。尽管图2是按抽象形式示出的,而没有示出值,更具体的示例将在以下参考图4和5来描述。
在本说明书和权利要求书中,使用了术语“行”和“列”。术语“行”不限于垂直堆叠并水平延伸的元素。此外,术语“列”不限于水平堆叠并垂直延伸的元素。表被显示的方式对于如本文中描述的本发明的原理而言并不重要。本文中描述的表不一定是通过计算机可读的形式在用户界面中示出的表。因此,术语水平和垂直在这样的计算机可读表中具有很少意义。由此,本文中描述的术语“行”和“列”仅涉及表的计算机表示的两个不同的维度。
根据本文中描述的原理,关联在子表210的外键列212B中的至少一些外键中的每一者以及父表220中的一个或多个行的对应集合之间被作出。通过这样的方式,本文中描述的原理将子表210链接到父表220。因此,图3示出了用于使用子表中的外键字段将数据库系统中的子表链接到父表的方法300的流程图。由于方法300可在图2的数据库系统200内执行,因此现将频繁参考图2来描述方法300。方法300可由例如计算系统(诸如计算系统100)通过该计算系统的一个或多个处理器(例如处理器102)执行一个或多个计算机可执行指令来执行。
可对父表中的每一行重复方法300。事实上,如以下进一步描述的,可实质上同时地对父表中的所有行执行方法300。这可使用特里结构化来实现。对于父表中的每一行,方法300涉及标识表达(动作301)。对于子表中的每一行,该表达用于确定该子表行是否将与父表中对应于该表达的行相关联。为了相关于给定父表行作出关于每一子表行的确定,该表达取子表行的外键、父表行的一个或多个字段作为输入。
例如,在图2的上下文中,与父表行221A相关联的表达被标识出,并且子表行211A的外键和父表行221A的一个或多个值将被提供作为该表达的输入以评估是否存在匹配。类似地,子表行211B的外键和父表行221A的一个或多个值将被提供作为该表达的输入以评估是否存在匹配。同样,子表行211C的外键和父表行221A的一个或多个值将被提供作为该表达的输入以评估是否存在匹配。最后,至少相关于父表行221A和所示出的子表行211A到211D,子表行211D的外键和父表行221A的一个或多个值将被提供作为该表达的输入以评估是否存在匹配。
类似地,或许在与子表行211A到211D将对照父表行211A的表达被评估相同的时间,子表行211A到211D中的每一者将对照父表行211B的表达被评估。而且,或许在与子表行211A到211D将对照父表行221A和221B的表达被评估相同的时间,子表行211A到211D中的每一者将相对于父表行211C的表达被评估。
传统地,定义外键和父表行之间的关联的表达简单地基于与主键的等同性,并且对于父表中的所有行相同。例如,如果给定子表行的外键与父表行中的任一者的主键相同,则关联将在该子表行的外键和匹配的父表行之间被作出。在为文本的情况下,该表达可以是“包含”表达。即,如果给定子表行的外键(采用文本的形式)包含父表行中的任一者的主键的文本,则关联将在该子表行的外键和匹配的父表行之间被作出。
相反,根据本文中描述的原理,表达可以是任何表达,包括语义表达,并且可使用来自父表行的除主键以外的值。此外,尽管不需要,但该表达可因父表行而不同。因此,关联准则的基于行的表达在本文中被允许。在本说明书并在权利要求书中,“语义表达”是在语义上描述一个或多个关联准则的表达,并且等于或包含准则明确地落在“语义表达”的定义之外。
例如,作为示例,语义表达包括分量表达、范围化表达、集合表达等等。例如,图4示出了其中存在推特(tweet)子表410和电影父表420的示例数据库系统400。推特子表410包括列出所作出的各推特的外键列412A。电影父表420包括列出各电影的主键列422A。在该情况下,每一父表行的表达被标识为被包括在表达列422B内(并通过引用来标识)。父表行421A的表达(即,包含[主键]而非“Book(书)”)是复合语义表达,并且不同于剩下的父表行421B和421C的表达(其是包含[主键])。
现在将参考图4的示例数据库系统400来描述图3的方法300。可为每一子表行执行虚线框310的内容。因此,为子表行411A中的推特“I like Hunger Games(我喜欢饥饿游戏)”执行虚线框310的内容。随后对照表达“包含‘Hunger Games’而不包含‘book’”来评估推特“I like Hunger Games”。它是匹配的(在判定框312处为“是”),并且由此关联431在外键“I like Hunger Games”和包含电影主键“Hunger Games”的父表行421A之间被作出(动作313)。这是因为推特“I like Hunger Games”包含术语“Hunger Games”(主键),但不包含术语“book”,并且由此是对相应的父表行421A的表达字段422B中的表达的匹配。
虚线框310的内容也对子表行411B中的推特“I liked the Hunger Games book”执行。随后对照表达“包含‘Hunger Games’而不包含‘book’”来评估推特“I liked theHunger Games book”。它不是匹配(在判定框312为“否”),因为该推特包含术语“book”。因此,不需要相对于父表行421A执行对子表行411B的进一步评估。
虚线框310的内容也对子表行411C中的推特“I liked both Star Wars and StarTrek(我喜欢星球大战和星际迷航两者)”执行,该推特被对照表达“包含‘Hunger Games’而不包含‘Book’”评估。它不是匹配(在判定框312为“否”)。因此,不需要相对于父表行421A执行对子表行411C的进一步评估(动作314)。
虚线框310的内容也对子表行411D中的推特“Hunger Games rocks(饥饿游戏很棒)”,该推特被对照表达“包含‘Hunger Games’而不包含‘Book’”评估。它是匹配(在判定框312为“是”),并由此关联434在外键“Hunger Games rocks”和父表行421A之间被作出(动作313)。这是因为推特“I like Hunger Games”包含术语“Hunger Games”(主键),但不包含术语“Book”,并且由此是对相应的父表行421A的表达字段422B中的表达的匹配。
方法300也按类似的方式相对于父表行421B执行。由此,虚线框310的内容对子表行411A中的推特“I like Hunger Games”执行。推特“I like Hunger Games”被对照表达“包含‘Star Wars’”评估(动作311)。它不是匹配(在判定框312为“否”)。
推特“I liked the Hunger Games book”随后被对照表达“包含‘Star Wars’”评估(动作311)。它也不是匹配(在判定框312为“否”),并由此关联不被作出。
推特“I like both Star Wars and Star Trek”随后被对照表达“包含‘StarWars’”评估(动作311)。它是匹配(在判定框312为“是”)。因此,关联432在推特“I likedboth Star Wars and Star Trek”和具有电影主键“Star Wars”的父表行421B之间被作出(动作313)。
推特“Hunger Games rocks”随后被对照表达“包含‘Star Wars’”评估(动作311)。它不是匹配(在判定框312为“否”),并由此关联不被作出。
方法300也按类似的方式相对于父表行421C执行。由此,虚线框310的内容对子表行411A中的推特“I like Hunger Games”执行。推特“I like Hunger Games”被对照表达“包含‘Star Trek’”评估(动作311)。它不是匹配(在判定框312为“否”)。
推特“I liked the Hunger book”随后被对照表达“包含‘Star Trek’”评估(动作311)。它也不是匹配(在判定框312为“否”),并由此关联不被作出。
推特“I like both Star Wars and Star Trek”随后被对照表达“包含‘StarTrek’”评估(动作311)。它是匹配(在判定框312为“是”)。因此,关联433在推特“I likedboth Star Wars and Star Trek”和具有电影主键“Star Wars”的父表行421B之间被作出(动作313)。
第二示例在图5中被解说,图5解说其中存在雇员子表510和薪金范围父表520的示例数据库系统500。在子表510中,存在名称列512A和薪金列512B。薪金列512用作主键列。在该情况下,每一父表行的表达530是相同的,但是复杂的表达,并使用除主键字段以外的字段作为该表达的输入。具体地,表达530指示该外键是否在相应父表行的最小值列522B和最大值列522C中的值之间,随后该外键将被与相应的父表行关联。
现在将参考图5的示例数据库系统500来描述图3的方法300。方法300是相对于具有主键“小”的父表行521A被执行的。虚线框310的内容可对子表行511A和511B中的每一者执行。然而,在每一情况下,薪金都不在0和49,000之内(判定框312中为“否”),并且由此不存在在方法300的该执行中作出的关联。
方法300也相对于具有主键“中”的父表行521B被执行。此处,子表行511A的外键50,000匹配(它在50,000(含)和179,999(含)之间)(在判定框312为“是”),并且由此关联531在子表行511A的外键50,000和父表行521B之间被作出。至于子表行511B,值200,000不在50,000和179,999之间(在判定框312为“否”),并且由此关联没有被作出(动作314)。
方法300也相对于具有主键“高”的父表行521C被执行。此处,子表行511A的外键50,000不是180,000或以上(在判定框312为“否”),并且由此关联没有被作出(动作314)。然而,子表行511B的外键200,000大于180,000(在判定框312为“是”),并且由此关联532在子表行511B的外键200,000和父表行521C之间被作出。在该情况下,该表达是范围化表达。集合表达是其中外键被评估以确定它是否是数个值之一的情况。
如先前所提出的,方法300可通过使用特里结构针对每一父表行并行地执行,即使这些表达可从一个父表行到下一父表行不同。父表的主键被用于构建特里结构。例如,图6示出了基于图4的电影主表420的主键(例如,电影标题)构建的特里结构600。针对每一外键并在遇到终止叶的程度上导航特里结构,相关联的表达或表达分量(例如,节点631到634)同样被确定为是匹配。在为无效节点(由面向右的0表示的表达分量节点634)的情况下,匹配那个表达或表达分量意味着表达本身或表达分量作为其分量的表达在该特里结构600的该评估上无法被满足。在为确认节点(例如,由面向右的1表示的节点631到633)的情况下,匹配该表达意味着该表达被满足,或者在为表达分量的情况下,意味着表达分量被满足。
例如,现在将描述基于推特外键“I like Hunger Games”对特里结构600的导航。导航在节点601处开始。到该分层结构的下一层的导航在遇到下一节点的文本之际发生。例如,“I”不匹配节点611、612或613中的任何文本,并且因此该导航保持在父节点601处(如行602所表示的)。“like”随后被评估,并且再次不存在对节点611、612或613中的文本的匹配。由此,导航保持在父节点601处。“Hunger”匹配下一节点611的文本,并由此导航移动到节点611。“Games”匹配下一分层节点621的文本,并由此导航移动到终止节点621,终止节点621与父表行421A内的复合表达的第一分量表达631相关联。因此,行421A的确认节点被遇到。外键现在已被评估,而没有遇到父表行421的无效表达634。因此,关联431可被作出。
现在将描述基于推特外键“I liked the Hunger Games book”对特里结构600的导航。导航在节点601处开始。“I”不匹配节点611、612或613中的任何文本,并且因此该导航保持在父节点601处(如行602所表示的)。“liked”随后被评估,并且再次不存在对节点611、612或613的文本的匹配。由此,导航保持在父节点601处。“the”随后被评估,并且再次不存在匹配,并且导航保持在父节点601。“Hunger”匹配下一节点611的文本,并由此导航移动到节点611。“Games”匹配下一分层节点621的文本,并由此导航移动到终止节点621,终止节点621与父表行421A内的复合表达的第一分量表达631相关联。在到达终止节点之际,导航返回到父节点601。“book”匹配下一分层节点613的文本。因此,行421A的无效节点被遇到。因此,在与复合表达有关的任何无效节点(例如,节点634)的到达否定与该复合表达有关的任何确认节点(例如,节点631)时,没有关联可被作出。
现在将描述基于推特外键“I liked both Star Wars and Star Trek”对特里结构600的导航。导航在节点601处开始。“I”不匹配节点611、612或613中的任何文本,并且因此该导航保持在父节点601处。“liked”随后被评估,并且再次不存在对节点611、612或613的文本的匹配,并由此导航保持在父节点601处。“both”随后被评估,并且再次不存在匹配,并且导航保持在父节点601处。“Star”匹配下一节点612的文本,并由此导航移动到节点612。“Wars”匹配下一分层节点622的文本,并且由此导航移动到终止节点632,该终止节点是父表行421B中的表达的确认节点632。不存在父表行421B的无效节点。因此,关联432可被作出。
导航返回到父节点601。“and”随后被评估,并且再次不存在对节点611、612或613中的文本的匹配,并由此导航保持在父节点601处。“Star”匹配下一节点612的文本,并由此导航移动到节点612。“Trek”匹配下一分层节点623的文本,并且由此导航移动到终止节点633,该终止节点是父表行421C中的表达的确认节点633。不存在父表行421C的无效节点。因此,关联432可被作出。
现在将描述基于推特外键“Hunger Games rocks”对特里结构600的导航。导航在节点601处开始。“Hunger”匹配下一节点611的文本,并由此导航移动到节点611。“Games”匹配下一分层节点621的文本,并由此导航移动到终止节点621,终止节点621与父表行421A内的复合表达的第一分量表达631相关联。因此,行421A的确认节点被遇到。导航在到达终止节点后返回到父节点601。“rocks”随后被评估,并且再次不存在对节点611、612或613的文本的匹配,并由此导航保持在父节点601处。因此,父表行421A中的表达的确认节点631被遇到,而没有到达该父表行421A中的表达的无效节点634。因此,关联431可被作出。
因此,本文中描述的原理可被执行以自动地将数据库中的各子表行的外键与该数据库中的各父表行相关联。本文中描述的原理允许定义用于作出关联的一个或多个先决条件的复杂表达。此外,表达可以以甚至每行的级别来定制,并且可使用来自父表行的主键以外的输入值。由此,已描述了用于在子表和父表之间创建关联的灵活和自动化机制。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (18)

1.一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令被构造成使得当由计算系统的一个或多个处理器执行时,使得所述计算系统执行一种用于使用数据库系统中的子表中的外键将所述子表链接到父表的方法,所述方法包括:
标识与父表的行相关联的语义表达,所述语义表达至少:
被作为所述父表的所述行的第一键存储;
使用关联准则来描述语义关系;
引用来自所述父表的所述行的第二键;并且
接收来自所述子表的外键作为输入;
对于子表中的多个行中的每一行,执行以下的动作:
对照子表行的外键来评估所述语义表达以评估所述语义表达是否被满足,其中当所述子表的外键满足所述语义表达而不是直接等于所述语义表达时,所述语义表达被满足;以及
至少基于所述行的外键满足所述语义表达,在所述外键和所述父表的所述行之间创建关联。
2.根据权利要求1所述的计算机可读存储介质,其特征在于,所述语义表达包括复合表达。
3.根据权利要求1所述的计算机可读存储介质,其特征在于,所述语义表达包括范围化表达。
4.根据权利要求1所述的计算机可读存储介质,其特征在于,所述语义表达包括集合表达。
5.根据权利要求1所述的计算机可读存储介质,其特征在于,所述语义表达使用所述父表的所述行的除所述父表的所述行的主键以外的字段作为输入。
6.根据权利要求1所述的计算机可读存储介质,其特征在于,所述语义表达是第一表达,所述父表的所述行是所述父表的第一行,并且所述第一行的主键是第一主键,并且其中所述方法进一步包括:
标识与父表的第二行相关联的第二表达;
对于子表中的多个行中的每一行,执行以下的动作:
对照所述子表的对应行的外键来评估所述第二表达以评估所述第二表达是否被满足;以及
至少基于所述子表的所述对应行满足所述第二表达,在所述外键和所述父表的所述第二行之间创建关联。
7.根据权利要求6所述的计算机可读存储介质,其特征在于,所述第二表达是与所述第一表达相同的表达。
8.根据权利要求6所述的计算机可读存储介质,其特征在于,所述第二表达是与所述第一表达不同的表达。
9.根据权利要求1所述的计算机可读存储介质,其特征在于,创建关联还包括保存所述关联。
10.一种使用数据库系统中的子表中的外键将所述子表链接到父表的方法,所述方法包括:
标识与所述父表的行相关联的语义表达,所述语义表达至少:
被作为所述父表的所述行的第一键存储;
使用关联准则来描述语义关系;
引用来自所述父表的所述行的第二键;并且
接收来自所述子表的外键作为输入;
对于子表中的多个行中的每一行,执行以下动作:
对照子表行的外键来评估所述语义表达以评估所述语义表达是否被满足,其中当所述子表的外键满足所述语义表达而不是直接等于所述语义表达时,所述语义表达被满足;以及
至少基于所述行的外键满足所述语义表达,在所述外键和所述父表的所述行之间创建关联。
11.根据权利要求10所述的方法,其特征在于,所述语义表达是第一表达,所述父表的行是所述父表的第一行,并且所述方法进一步包括标识与父表的第二行相关联的第二表达,并且其中所述第一表达和所述第二表达在所述父表的表达字段内。
12.根据权利要求11所述的方法,其特征在于,所述第一表达和所述第二表达中的至少一者取所述父表的除所述行的主键以外的字段作为输入。
13.根据权利要求10所述的方法,其特征在于,所述外键是经词例化的文本。
14.根据权利要求11所述的方法,其特征在于,所述方法进一步包括:
至少使用所述父表的第一行和第二行的主键来制定特里结构,所述特里结构的多个终止节点各自对应于多个表达,所述多个表达至少包括所述第一表达和所述第二表达。
15.根据权利要求14所述的方法,其特征在于,评估所述第一表达以及评估所述第二表达针对所述子表的至少一个特定行通过对照所述特里结构评估所述子表的那个特定行的外键被并发地执行。
16.一种计算系统,包括:
一个或多个处理器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令被构造成使得当由所述一个或多个处理器执行时,所述计算机可执行指令使得所述计算系统执行一种用于使用数据库系统中的子表中的外键将所述子表链接到父表的方法,并且所述方法包括:
标识与父表的行相关联的语义表达的动作,所述语义表达至少:
被作为所述父表的所述行的第一键存储;
使用关联准则来描述语义关系;
引用来自所述父表的所述行的第二键;并且
接收来自所述子表的外键作为输入;
对于子表中的多个行中的每一行,执行以下的动作:
对照子表行的外键来评估所述语义表达以评估所述语义表达是否被满足,其中当所述子表的外键满足所述语义表达而不是直接等于所述语义表达时,所述语义表达被满足;以及
至少基于所述行的外键满足所述语义表达,在所述外键和所述父表的所述行之间创建关联。
17.根据权利要求16所述的计算系统,其特征在于,所述父表的除主键以外的字段是所述父表的第一字段,所述语义表达进一步取所述父表的除所述主键以外的第二字段作为输入。
18.根据权利要求16所述的计算系统,其特征在于,所述语义表达进一步取所述父表的主键作为输入。
CN201580034946.2A 2014-06-27 2015-06-24 外键到主键的基于规则的联结 Active CN106462643B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/317,056 2014-06-27
US14/317,056 US9916357B2 (en) 2014-06-27 2014-06-27 Rule-based joining of foreign to primary key
PCT/US2015/037300 WO2015200405A1 (en) 2014-06-27 2015-06-24 Rule-based joining of foreign to primary key

Publications (2)

Publication Number Publication Date
CN106462643A CN106462643A (zh) 2017-02-22
CN106462643B true CN106462643B (zh) 2020-02-07

Family

ID=53541929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580034946.2A Active CN106462643B (zh) 2014-06-27 2015-06-24 外键到主键的基于规则的联结

Country Status (4)

Country Link
US (2) US9916357B2 (zh)
EP (1) EP3161684B1 (zh)
CN (1) CN106462643B (zh)
WO (1) WO2015200405A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977812B2 (en) 2015-01-30 2018-05-22 Microsoft Technology Licensing, Llc Trie-structure formulation and navigation for joining
US9892143B2 (en) 2015-02-04 2018-02-13 Microsoft Technology Licensing, Llc Association index linking child and parent tables
CN107239458B (zh) * 2016-03-28 2021-01-29 阿里巴巴集团控股有限公司 基于大数据推算开发对象关系的方法及装置
US10162881B2 (en) * 2017-01-17 2018-12-25 Maana, Inc. Machine-assisted key discovery and join generation
CN110647588A (zh) * 2018-06-08 2020-01-03 贵州高新翼云科技有限公司 一种对任意复杂关系数据模型自动填写所有表格及大数据自动测试的通用算法
US11120025B2 (en) * 2018-06-16 2021-09-14 Hexagon Technology Center Gmbh System and method for comparing and selectively merging database records
CN111078680B (zh) * 2018-10-18 2023-09-26 杭州海康威视数字技术股份有限公司 表格信息处理方法、装置、电子设备及可读存储介质
CN110457551B (zh) * 2019-08-14 2021-04-23 梁冰 自然语言的语义递归表示系统的构造方法
US20210064615A1 (en) * 2019-08-30 2021-03-04 Mentor Graphics Corporation Memory system query with expanding request

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
CN102567457A (zh) * 2010-11-02 2012-07-11 微软公司 对象模型到键值数据模型的映射

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404507A (en) 1992-03-02 1995-04-04 At&T Corp. Apparatus and method for finding records in a database by formulating a query using equivalent terms which correspond to terms in the input query
US6360223B1 (en) 1997-12-22 2002-03-19 Sun Microsystems, Inc. Rule-based approach to object-relational mapping strategies
WO2001008045A1 (en) 1999-07-22 2001-02-01 Ori Software Development Ltd. Method for organizing directories
US6339777B1 (en) 1999-07-30 2002-01-15 International Business Machines Corporation Method and system for handling foreign key update in an object-oriented database environment
US7162478B2 (en) * 2001-02-28 2007-01-09 International Business Machines Corporation System and method for correlated fragmentations in databases
US6907433B2 (en) 2001-08-01 2005-06-14 Oracle International Corp. System and method for managing object to relational one-to-many mapping
US6980976B2 (en) 2001-08-13 2005-12-27 Oracle International Corp. Combined database index of unstructured and structured columns
US6938038B2 (en) 2002-06-04 2005-08-30 Sap Aktiengesellschaft Method and apparatus for generating and utilizing qualifiers and qualified taxonomy tables
US7016914B2 (en) 2002-06-05 2006-03-21 Microsoft Corporation Performant and scalable merge strategy for text indexing
US7146356B2 (en) 2003-03-21 2006-12-05 International Business Machines Corporation Real-time aggregation of unstructured data into structured data for SQL processing by a relational database engine
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
US7730097B2 (en) 2004-02-12 2010-06-01 Mobileframe, Llc Smart database
US7930291B2 (en) 2004-06-18 2011-04-19 Bmc Software, Inc. Constraint processing
US7664790B2 (en) 2004-06-18 2010-02-16 Bmc Software, Inc. Cascade delete processing
US20060288024A1 (en) 2005-04-28 2006-12-21 Freescale Semiconductor Incorporated Compressed representations of tries
US20060248087A1 (en) 2005-04-29 2006-11-02 International Business Machines Corporation System and method for on-demand analysis of unstructured text data returned from a database
US20070174329A1 (en) 2006-01-26 2007-07-26 International Business Machines Corporation Presenting a reason why a secondary data structure associated with a database needs rebuilding
US20070250471A1 (en) 2006-04-25 2007-10-25 International Business Machines Corporation Running XPath queries over XML streams with incremental predicate evaluation
US7788305B2 (en) 2007-11-13 2010-08-31 Oracle International Corporation Hierarchy nodes derived based on parent/child foreign key and/or range values on parent node
US8086592B2 (en) * 2007-11-30 2011-12-27 SAP France S.A. Apparatus and method for associating unstructured text with structured data
US8032493B2 (en) 2008-01-31 2011-10-04 Hewlett-Packard Development Company, L.P. System and method of obtaining interrelated data in a database
US8108367B2 (en) 2008-05-20 2012-01-31 International Business Machines Corporation Constraints with hidden rows in a database
US8341191B2 (en) * 2008-11-21 2012-12-25 Sap Ag Methods and structures for utilizing reusable custom-defined nestable compound data types to permit product variations within an existing taxonomy
US20120078950A1 (en) 2010-09-29 2012-03-29 Nvest Incorporated Techniques for Extracting Unstructured Data
US20120117067A1 (en) * 2010-10-29 2012-05-10 Navteq North America, Llc Method and apparatus for providing a range ordered tree structure
US8407180B1 (en) 2010-11-29 2013-03-26 Teradata Us, Inc. Eliminating inner joins based on a temporal relationship constraint
US20120246133A1 (en) 2011-03-23 2012-09-27 Microsoft Corporation Online spelling correction/phrase completion system
EP2713288B1 (en) 2012-09-26 2020-05-06 Tata Consultancy Services Limited Foreign key identification in database management systems
US9298829B2 (en) 2012-12-18 2016-03-29 International Business Machines Corporation Performing a function on rows of data determined from transitive relationships between columns
US9727594B2 (en) 2013-01-10 2017-08-08 Microsoft Technology Licensing, Llc Adaptive range filters for range and point queries
US20160062997A1 (en) 2014-08-28 2016-03-03 Weebly, Inc. Serialized Child Associations in Parent Record
US9977812B2 (en) 2015-01-30 2018-05-22 Microsoft Technology Licensing, Llc Trie-structure formulation and navigation for joining
US9892143B2 (en) 2015-02-04 2018-02-13 Microsoft Technology Licensing, Llc Association index linking child and parent tables

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
CN102567457A (zh) * 2010-11-02 2012-07-11 微软公司 对象模型到键值数据模型的映射

Also Published As

Publication number Publication date
EP3161684A1 (en) 2017-05-03
US10635673B2 (en) 2020-04-28
US20180173766A1 (en) 2018-06-21
US20150379085A1 (en) 2015-12-31
EP3161684B1 (en) 2019-08-14
CN106462643A (zh) 2017-02-22
US9916357B2 (en) 2018-03-13
WO2015200405A1 (en) 2015-12-30

Similar Documents

Publication Publication Date Title
CN106462643B (zh) 外键到主键的基于规则的联结
Kleppmann Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems
US11086873B2 (en) Query-time analytics on graph queries spanning subgraphs
US9892143B2 (en) Association index linking child and parent tables
US8108360B2 (en) Database object update order determination
US20180004778A1 (en) Field types defined via custom metadata types
US10248386B2 (en) Generating a software complex using superordinate design input
US11157467B2 (en) Reducing response time for queries directed to domain-specific knowledge graph using property graph schema optimization
US11036717B2 (en) Trie-structure formulation and navigation for joining
US20160171049A1 (en) Comparing join values in database systems
US9779368B2 (en) Dynamic inheritance of metadata concepts from project resources into a semantic model
US9965812B2 (en) Generating a supplemental description of an entity
US20170351683A1 (en) Hierarchical data insertion
US20140379691A1 (en) Database query processing with reduce function configuration
CN110888888A (zh) 人员关系分析方法、装置、电子设备及存储介质
Pramanik et al. Minimum 2‐Tuple Dominating Set of an Interval Graph
US20170161359A1 (en) Pattern-driven data generator
US11138174B2 (en) Electronic database and method for forming same
US11586593B2 (en) Mechanism for synchronization of hierarchical data between a mobile device and multi tenant database
Zdravković et al. Model-based, client-side integration of heterogeneous data from REST services
KR102315126B1 (ko) 정규형 위배 속성 식별 방법 및 그 장치
Curcin et al. Simulating Taverna workflows using stochastic process algebras
Tomás House allocation problems with existing tenants and priorities for teacher recruitment
Casini et al. Leveraging human oversight and intervention in large-scale parallel processing of open-source data
Kaptein Lecture Notes: AI at a Webscale

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant