CN102508852B - 数据模型对偶化 - Google Patents

数据模型对偶化 Download PDF

Info

Publication number
CN102508852B
CN102508852B CN201110296894.XA CN201110296894A CN102508852B CN 102508852 B CN102508852 B CN 102508852B CN 201110296894 A CN201110296894 A CN 201110296894A CN 102508852 B CN102508852 B CN 102508852B
Authority
CN
China
Prior art keywords
data model
data
model
relational
key
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
CN201110296894.XA
Other languages
English (en)
Other versions
CN102508852A (zh
Inventor
H·J·M·梅杰
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 CN102508852A publication Critical patent/CN102508852A/zh
Application granted granted Critical
Publication of CN102508852B publication Critical patent/CN102508852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • 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
    • 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
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及数据模型对偶化。一数据模型可通过对偶化另一数据模型来生成。换言之,可将第一数据模型变换成第二数据模型,其中第二数据模型是第一数据模型的数学对偶。例如,可通过对偶化关系数据模型来生成非关系数据模型。

Description

数据模型对偶化
技术领域
本发明涉及对偶化数据模型的方法和系统。
背景技术
数据模型描述了可如何存储和访问数据。更正式地,数据模型定义数据实体以及各数据实体间的关系。数据模型的主要目的是提供数据的定义和格式,以便于管理和处理大量的数据。数据模型的一种应用是定义如何结构化和利用数据库或其他存储的数据库模型。数据库模型可以是关系的或非关系的。
在关系模型中,或更具体地在关系数据库中,根据一个或多个表来结构化数据。表是包括多个行和列的关系,其中所命名的列被称为属性,且行捕捉具体的实体实例的数据。例如,表可捕捉与诸如行(也称为元组)和列中的书籍等特定实体有关的信息。列标识实体的各种属性,诸如书籍的标题、作者、和出版年份等。行捕捉实体的实例,诸如特定的书籍。换言之,表中的每一行表示特定书籍的各属性。此外,表可包括使得两个或更多表能被链接在一起的主键和外键。
在非关系模型的许多实现中,键值模型是最受欢迎中的一种。键值数据库或存储表示将唯一键映射成一个或多个值的组的简单数据模型。更具体地,键值存储用于存储值和便于基于键来定位所存储的值的索引。例如,被定位的键标识书籍的数据的标题、作者或出版中的一个。
关系数据库通常被称为SQL数据库,而一些非关系数据库则被称为NoSQL数据库或存储。SQL代表结构化查询语言,该结构化查询语言是被利用来查询和更新关系数据库中的数据的主要语言。当结合关系数据库来利用SQL时,该数据库可被称为基于SQL的关系数据库。然而,基于SQL的关系数据库更经常地被简称为SQL数据库,并且用作关系数据库的同义词。NoSQL是用来指代与基于SQL的关系数据库不同的数据库的术语。换言之,术语NoSQL被用作非关系数据库或诸如但不限于键值存储等存储的同义词。
SQL数据库和NoSQL存储具有很多优点和缺点,这些缺点和优点是由CAP定理在高层次上捕捉的,CAP定理陈述为一致性(C)、可用性(A)和分区容忍性(P),在任何一个时间都只能保证其中的两个。一致性指在诸如更新等操作后保持在一致的状态中的系统特征。可用性关注于在一段时间上甚至在存在故障时仍保持可操作的,而分区容忍性(partitiontolerance)指系统跨各网络分区进行操作的能力。一般而言,对于SQL数据库的设计选择是选择一致性和可用性而不选分区容忍性,而对于NoSQL存储则放弃一致性而支持分区容错性和可用性。换言之,NoSQL存储为了可缩放性或可用性而牺牲了一致性,SQL数据库则为了一致性而牺牲了可缩放性。
随着基于网络或云计算的连续出现,NoSQL存储至少由于其可缩放性而在最近受到了很多关注。同时,在本文和其他上下文中,该行业中的某些人已表达了对SQL数据库的将来的担心。
发明内容
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本概念。本发明内容不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护的主题的范围。其唯一的目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施方式的序言。
简言之,本发明一般涉及数据模型对偶化。在给定了第一数据模型后,可产生是该第一数据模型的数学对偶(dual)的第二数据模型。因此,如果将该对偶第二数据模型本身进行对偶化,则将返回第一数据模型。作为实例而非限制,可从关系数据模型生成对偶非关系数据模型。更具体地,可生成键值数据模型,因此示出NoSQL数据模型是SQL模型的对偶。
为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。
附图说明
图2示出了各数据模型间的抽象变换。
图3描绘了示例性关系表示。
图4示出了包括各个表之间的指针的示例性关系表示。
图5示出了示例性非关系键值表示。
图6描绘了通用的键值表示。
图7是数据模型生成的方法的流程图。
图8是对偶化数据模型的方法的流程图。
图9是示出用于本发明各方面的合适操作环境的示意性框图。
具体实施方式
以下的细节一般涉及数据模型对偶化。一数据模型可通过对偶化另一数据模型来生成。换言之,可将第一数据模型变换成第二数据模型,其中第二数据模型是第一数据模型的数学对偶。例如,可从关系数据模型产生诸如键值存储等非关系数据模型,从而证明NoSQL数据模型是SQL数据模型的对偶。
此处所使用的术语“对偶”及其各种形式旨在表示数学对偶性,因为它涉及范畴论。更具体地,对偶性是类别“C”的属性和相对类别“Cop”的对偶属性之间的对应关系。在给定了关于类别“C”的语句后,通过交换每一态射(映射)的源和目标以及交换合成两个态射(morphism)的次序,可获取关于相对类别“Cop”的相应对偶语句。例如,类别“C”可对应于数据模型,且相对类别“Cop”可表示对偶或协同数据模型。例如,“对偶化”表示从数据模型生成对偶的动作。
现在参考附图更详细地描述本发明的各个方面,在全部附图中相似的数字指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等效和替换的方案。
首先参考图1,示出了数据建模系统100。数据建模系统100包括变换组件110,该变换组件接收、检索或者以其他方式来获取或获得第一数据模型,以及通过对偶化第一数据模型来生成第二数据库模型。换言之,第二数据模型是第一数据模型的数学对偶。而且,变换组件110可接收、检索或者以其他方式来获取或获得为第一数据模型的对偶的第二数据模型,以及通过对偶化第二数据模型来将第二数据模型变换回第一数据模型。结果,由于这种关系,第一数据模型可被简称为数据模型,且第二数据模型可被称为对偶或协同数据模型。因此,从左至右移动时,变换组件110将数据模型(D)变换成协同数据模型(co(D)),或者换言之根据数据模型(D)生成协同数据模型(co(D))。从右至左移动时,变换组件110将协同数据模型(co(D))变换成数据模型(例如,co(co(D))->D),或者换言之根据协同数据模型(co(D))产生数据模型(D)。
变换组件110包括实体组件112和关系组件114。数据模型包括一组实体和各实体间的关系(或换言之,关联)。实体组件112被配置来例如从第一数据模型的实体生成对偶或协同实体。类似地,例如,关系组件114可从在第一数据模型内指定的关系中导出(derive)对偶或协同关系。另外,例如,关系组件114可从第一数据模型的关系或关联中生成关系或关联的对偶合成。
图2示出了在两个数据模型间的抽象变换,以便于清楚和理解。更具体地,可从第一数据模型200产生第二数据模型210,并且反之亦然。第一数据模型包括三个实体“S”202、“T”204和“G”206。各实体间的关系如箭头所示。更具体地,关系“F”从“S”202前进至“T”204,且关系“G”从“T”204前进至“G”206。“G”还包括起始于“G”206并返回至“G”206的身份关系“ID”。另外,在“S”202和“G”206间存在合成关系“F;G”(F合成G)。为了对偶化第一数据模型200,标识相对实体,并且倒转各相对实体之间的关系或更正式的态射。如所示出地,第二数据模型210包括实体“CO-S”212、“CO-T”214和“CO-G”216。而且,表示态射的箭头被倒转,以表示态射的源和目标内的改变。例如,第一数据模型200的合成关系“F;G”(F合成G)在第二数据模型210中变成了“G;F”(G合成F)。作为真对偶,如果将第二数据模型210进行对偶化,则结果产生第一数据模型200。
以下是对可由图1中的变换组件110来实现的示例性变换过程的更高层次的讨论。此处,对关系数据库导出对偶。换言之,第一数据模型是关系模型。如将要示出地,结果或第二数据模型可以是非关系模型或更具体地是键值模型。
图3示出了用于存储作品信息的示例性关系表示300。如所示出地,存在通过主键和外键链接在一起的三个表。作品表310提供主键“ID”312以及诸如标题、作者、出版年份或页面总数等作品信息的其他列。评级表320提供作品评级信息和引用作品表310的唯一记录的外键“作品ID”322。类似地,关键词表330提供与作品相关联的关键词,并包括指示回作品表310的相应记录的外键“作品ID”332。
简要地转向图4,图3中的示例性关系表示300被示为在外键和主键之间插入了指针。具体地,指针410从评级表320的外键“作品ID”322指向由作品表310的主键“ID”312所标识的相应记录。类似地,指针420从关键词表330的外键“作品ID”332指向由作品表310的主键“ID”312所标识的相应记录。
图5示出了相对对图3和4中的示例性关系表示而提供的相同数据的示例性非关系键值表示500。在此,诸如510、520和530等行可存储键(被示为指向值的指针)或者标量值。例如,行510可包括针对标题、作者、关键词和评级的键,并包括出版年份和页面总数的标量值。行520包括映射至三个关键词的三个键,并且行530包括映射至两个评级表示的两个键。
参考图6,描绘了示例性非关系键值表示600。然而在此,代替仅允许行包括标量和键,该限制被放松至允许各种类型的数据。与之前的图5中的行510相对应的行610现包括针对标题和作者的值,并包括分别针对关键词和评级两者620和630的键的集合。更具体地,键620指向关键词,且键630指向评级信息。
将图4中的示例性关系表示与图6中的示例性非关系表示进行比较。注意到主要的区别特征是倒转了箭头。更具体地,关系箭头从具有外键的行前进至具有相应主键的行,且非关系箭头从行前进至存储数据的位置。换言之,在关系上下文中孩子指向其父亲,而在非关系上下文中父亲指向其孩子。在此已示出的是非关系键值数据模型为关系主外键数据模型的对偶。因此,NoSQL数据模型是SQL数据模型的数学对偶。
更正式地,在关系数据模型中实体(e)可被定义如下:“在表中的“e.k≠e’.k”,其中列是标量。对于态射,并且“e1.Ffk=e2.Fpk”。在非关系数据模型上下文中,实体(e)可被定义为:“在域(Lookup(查找))中的“Lookup[k]=v”,且态射被定义为“e1←e2”,“Lookup[e2.k]=e1”。而且,对于关系或关联的合成,将次序倒转如下:“co(F;G)=co(G);co(F)”。更简单地,关系模型实体中的单词是具有唯一主键的行,并且如果在“e1”和“e2”之间存在直接或间接的主/外键关系,则这两个实体“e1”和“e2”是相关的。在非关系或键值模型中,实体是可经由其在存储中的键来找到的值,并且如果在该模型中实体“e1”和“e2”通过存储而经由指针直接或间接地链接在一起,则这两个实体“e1”和“e2”是相关的。
具有对偶性的许多结果。尤其地,如果在“C”中语句“T”是真的,则在“co(C)”中它的对偶“co(T)”也是真的。参考关系或SQL数据模型以及非关系或NoSQL数据模型,这些结果中的一些被概括在下面的表1中。
表1
而且,如某些所表明地,SQL和NoSQL数据模型并不像善良与邪恶一样是相冲突的。相反,这两种数据模型是可和谐地共存并可变换成彼此的相对体。
而且,已发现格式化NoSQL数据模型是很有意义的。在格式化SQL数据模型之前,工作是相对于可被宽松地称为关系数据模型的模型来完成,但是存在很多特别的实现,并且本行业并非尤其集中于任何一种实现。快速地前进至今天,除了现在数据模型是NoSQL以外,情形十分类似。通过将NoSQL格式化成SQL的对偶,工作可被集中于这种版本的数据模型。
然而出于清楚和简要的目的,已详细讨论了关系和非关系数据模型之间的变换。然而,所要求保护的主题并不限于此。相反,内容将涵盖由对偶化产生的任何和所有数据模型。作为示例而非限制,可将结构化数据模型变换成或生成非结构化数据模型,或者反之亦然。例如,图1中的变换组件110可接收XML(可扩展标记语言)数据模型来作为输入,并输出文档数据模型,其中文档或对象(数据项)被索引以便迅速和有效地执行查询。
另外,要注意图1中的变换组件110可自动地或半自动地操作。在自动模式中,变换组件110可接收第一数据模型,并自动输出对偶第二数据模型。或者,在半自动模式中,变换组件110可请求来自用户的输入,以便于产生对偶数据模型。在一个实现中,例如变换组件110可以是在关于对偶化的数据建模中帮助用户的工具。
已相对于若干组件间的交互描述了上述系统、体系结构、环境等。应该理解,这样的系统和组件可以包括在其中指定的这些组件或子组件,所指定的组件或子组件中的一些,和/或附加的组件。子组件还可以被实现为以通信方式耦合到其他组件而不是包括在父组件内的组件。此外,一个或多个组件和/或子组件可以结合成提供聚集功能的单个组件。系统、组件、和/或子组件之间的通信可以根据推(push)和/或拉模型来实现。各组件也可以与一个或多个其他组件进行交互,出于简明考虑在此未具体描述其他组件,但本领域的技术人员均已知。
此外,应该理解以上所公开的系统及以下方法的各部分可以包括或包含基于人工智能、机器学习或知识或基于规则的组件、子组件、进程、装置、方法或机制(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分类器……)。这些组件和其它组件可以自动化执行某些机制或进程,由此使得系统和方法的各部分更为自适应、高效及智能。作为示例而非限制,变换组件110或其中的一个或多个子组件可使用这些机制来有效地确定或以其他方式推断数据模型属性和对偶数据模型特征。
考虑到以上描述的示例性系统,参考图7和8的流程图将可以更好地理解依照所公开的主题来实现的方法。尽管为了说明简洁起见,作为一系列框示出和描述了方法,但是,应该理解,所要求保护的主题不仅限于所描述框的顺序,一些框可以按与此处所描绘和描述的不同的顺序进行和/或与其他框并发地进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。
参考图7,示出了数据模型生成的方法700。在参考数字710处,接收、检索或者以其他方式来获取或获得第一数据模型。在数字720处,将第一数据模型变换成或者换言之使用第一数据模型来生成对偶第二数据模型。作为示例而非限制,可将包括主键和外键的第一关系数据模型变换成或者使用该第一关系数据模型来生成非关系键值数据模型。本示例示出可将已知第一数据模型变换成特定形式的另一已知数据模型,从而在将对偶第二数据模型本身进行对偶化时,第一数据模型会产生。由于这两种数据模型至少被本行业中某些人认为是对立的,因此这是相当令人惊奇的结果。当然,数据模型对偶化的结果可以是全新的和之前未被认识到的数据模型,其具有同样的令人惊奇和不寻常的后果。
图8是对偶化数据模型的方法800的流程图。在参考数字810处,从第一实体导出第二实体,其中第二实体是第一实体的对偶。在参考数字820处,例如“通过倒转箭头”(例如,将S→R倒转成S←R)来定义各元素间的对偶关系。在数字830处,将对偶合成关系确定为例如“倒转箭头”,以及倒转合成的次序(例如,将F合成G倒转成G合成F)。
此处使用的术语“组件”和“系统”及其各种形式旨在表示与计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、实例、可执行程序、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用程序程序和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多的计算机之间。
在本文中使用的词语“示例性”或其各种形式意味着用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。此外,各示例只是出于清楚和理解的目的来提供的并且并不意味着以任何方式限制或约束所要求保护主题或本发明的相关部分。可以理解,本来可呈现不同范围的多个附加或替换示例,但出于简明的目的已被省略。
如此处所使用,术语“推论”或“推断”通常指的是从经由事件和/或数据捕捉的一组观察结果来推理或推断系统、环境、和/或用户的状态的过程。可以使用推断来标识特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑,计算在感兴趣状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,不管事件在时间上是否紧密相关,以及事件和数据是来自一个还是多个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护主题的自动化和/或推断的动作。
而且,对于在详细描述中使用术语“包括”、“包含”、“具有”、“含有”或其它形式的变型而言,这样的术语旨在以类似于术语“包括”的方式体现包含性。
为了为所要求保护主题提供上下文,图9以及以下讨论旨在提供对其中可以实现本主题的各方面的合适环境的简要、概括描述。然而,合适的环境只是示例并且并非旨在对使用范围或功能提出任何限制。
尽管能够在可以在一台或多台计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是,本领域的技术人员将认识到,各方面也可以与其他程序模块等相结合地实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件和数据结构等。此外,本领域技术人员可以理解,上述系统和方法可用各种计算机系统配置实现,包括单处理器、多处理器或多核处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器或可编程消费者或工业电子设备等。各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,所要求保护主题的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或两者中。
参考图9,示出了示例性通用计算机910或计算设备(例如,台式机、膝上型计算机、服务器、手持式设备、可编程消费或工业电子作品、机顶盒、游戏系统……)。计算机910包括一个或多个处理器920、系统存储器930、系统总线940、大容量存储950、以及一个或多个接口组件970。系统总线940与至少上述系统组件通信地耦合。然而,可以理解,在其最简单的形式中,计算机910可包括耦合到系统存储器930的一个或多个处理器920,该一个或多个处理器执行各种计算机可执行动作、指令和或组件。
处理器920可以用通用处理器、数字信号处理器(DSP)、应用程序专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件或被设计为执行此处描述的功能的其任意组合来实现。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何处理器、控制器、微控制器、或状态机。处理器920还可被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、结合一个DSP核的一个或多个微处理器、或任何其它这种配置。
计算机910可包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以便于控制计算机910来实现所要求保护主题的一个或多个方面。计算机可读介质可以是能由计算机910访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、磁带盒、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、以及固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者可用于存储所需信息并且可由计算机910访问的任何其他介质。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变的一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
系统存储器930和大容量存储950都是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,系统存储器930可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存……)或是两者的某种组合。作为示例,基本输入/输出系统(BIOS),包括诸如在启动期间在计算机910内的元件之间传输信息的基本例程,可被存储在非易失性存储器中,而易失性存储器可担当外部高速缓存存储器以便于处理器920的处理等。
大容量存储950包括相对于系统存储器930来说用于存储大量数据的可移动/不可移动、易失性/非易失性计算机存储介质。例如,大容量存储950包括但不限于,诸如磁盘或光盘驱动器、软盘驱动器、闪存存储器、固态驱动器、或记忆棒的一个或多个设备。
系统存储器930和大容量存储950可包括或其中存储有操作系统960、一个或多个应用程序962、一个或多个程序模块964和数据966。操作系统960用于控制和分配计算机910的资源。应用程序962包括系统和应用程序软件中的一个或两个,并且可通过存储在系统存储器930和/或大容量存储950中的程序模块964和数据966来利用操作系统960对资源的管理以执行一个或多个动作。因此,应用程序962可根据由此提供的逻辑来将通用计算机910变成专用机器。
所要求保护主题的全部或各部分可以使用产生控制计算机以实现所公开功能的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现。作为示例而非限制,变换组件110可以是应用程序962或形成应用程序962的一部分,并且包括存储在存储器和/或大容量存储950中的一个或多个模块964和数据966,其功能可以在由所示的一个或多个处理器920执行时实现。
计算机910还包括通信地耦合到系统总线940并方便与计算机910的交互的一个或多个接口组件970。作为示例,接口组件970可以是端口(例如,串行、并行、PCMCIA、USB、火线……)或接口卡(例如,声音、视频……)等。在一个示例实现中,接口组件970可被具体化为用户输入/输出接口,该用户输入/输出接口使得用户能够通过一个或多个输入设备(例如,诸如鼠标的指向设备、跟踪球、指示笔、触摸垫、键盘、话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、相机、其他计算机……)来将命令和信息输入到计算机910中。在另一示例实现中,接口组件970可被具体化为输出外围接口,该输出外围接口向显示器(例如,CRT、LCD、等离子……)、扬声器、打印机和/或其他计算机等提供输出。此外,接口组件970可被具体化为网络接口,该网络接口使得能够诸如通过有线或无线通信链路与其他计算设备(未示出)通信。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。

Claims (15)

1.一种数据建模的方法,包括:
采用被配置来执行存储在存储器(930)中的计算机可执行指令以执行以下动作的至少一个处理器(920):
通过交换第一数据模型的每一态射的源和目标实体以及交换所述第一数据模型的合成各态射的次序来从所述第一数据模型生成第二数据模型,使得所述第二数据模型是所述第一数据模型的数学对偶。
2.如权利要求1所述的方法,其特征在于,还包括通过对偶化所述第二数据模型来将所述第二数据模型变换成所述第一数据模型。
3.如权利要求1所述的方法,其特征在于,包括从关系数据模型生成非关系数据模型。
4.如权利要求3所述的方法,其特征在于,包括从所述关系数据模型生成键值模型。
5.如权利要求1所述的方法,其特征在于,包括从非关系数据模型生成关系数据模型。
6.如权利要求1所述的方法,其特征在于,包括从结构化数据模型生成非结构化数据模型。
7.如权利要求6所述的方法,其特征在于,包括从XML数据模型生成文档数据模型。
8.一种便于数据模型变换的系统(100),包括:
被配置来将第一数据模型变换成第二数据模型的变换组件(110),其中所述第二数据模型是所述第一数据模型的数学对偶,其中所述变换组件交换所述第一数据模型的每一态射的源和目标实体并交换了所述第一数据模型的合成各态射的次序以生成所述第二数据模型。
9.如权利要求8所述的系统,其特征在于,所述第一数据模型是关系数据模型。
10.如权利要求8所述的系统,其特征在于,所述第一数据模型是非关系数据模型。
11.如权利要求8所述的系统,其特征在于,所述第一数据模型是结构化数据模型。
12.如权利要求11所述的系统,其特征在于,所述第一数据模型是XML数据模型。
13.如权利要求8所述的系统,其特征在于,所述第二数据模型是非结构化数据模型。
14.如权利要求8所述的系统,其特征在于,所述第二数据模型是键值数据模型。
15.如权利要求8所述的系统,其特征在于,所述第二数据模型是文档数据模型。
CN201110296894.XA 2010-09-23 2011-09-22 数据模型对偶化 Active CN102508852B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/888,918 2010-09-23
US12/888,918 US9460189B2 (en) 2010-09-23 2010-09-23 Data model dualization

Publications (2)

Publication Number Publication Date
CN102508852A CN102508852A (zh) 2012-06-20
CN102508852B true CN102508852B (zh) 2016-04-20

Family

ID=45871731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110296894.XA Active CN102508852B (zh) 2010-09-23 2011-09-22 数据模型对偶化

Country Status (7)

Country Link
US (2) US9460189B2 (zh)
EP (1) EP2619694A4 (zh)
JP (1) JP5873498B2 (zh)
CN (1) CN102508852B (zh)
AU (1) AU2011305918B2 (zh)
TW (1) TW201229792A (zh)
WO (1) WO2012039923A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436710B2 (en) * 2010-09-28 2016-09-06 Redis Labs Ltd. Systems, methods, and media for managing an in-memory NoSQL database
JP5867208B2 (ja) * 2012-03-16 2016-02-24 富士通株式会社 データモデル変換プログラム、データモデル変換方法およびデータモデル変換装置
US10169446B1 (en) 2012-09-10 2019-01-01 Amazon Technologies, Inc. Relational modeler and renderer for non-relational data
US8725750B1 (en) * 2012-10-25 2014-05-13 Hulu, LLC Framework for generating programs to process beacons
US9111012B2 (en) 2012-11-26 2015-08-18 Accenture Global Services Limited Data consistency management
CN103390015B (zh) * 2013-01-16 2016-03-30 华北电力大学 基于统一索引的海量数据联合存储方法及检索方法
US9686118B1 (en) 2013-06-04 2017-06-20 Amazon Technologies, Inc. Abstraction layer for streaming data sources
CN104699720A (zh) * 2013-12-10 2015-06-10 中兴通讯股份有限公司 海量数据融合存储方法及系统
CN105786925B (zh) * 2014-12-26 2021-02-26 远光软件股份有限公司 基于参考模型进行动态数据建模的方法及装置
JP6849904B2 (ja) * 2016-10-28 2021-03-31 富士通株式会社 検索プログラム、検索装置および検索方法
US11269822B2 (en) * 2017-10-09 2022-03-08 Sap Se Generation of automated data migration model
US11003550B2 (en) * 2017-11-04 2021-05-11 Brian J. Bulkowski Methods and systems of operating a database management system DBMS in a strong consistency mode
CN108363785A (zh) * 2018-02-12 2018-08-03 平安科技(深圳)有限公司 数据关系展示方法、装置、计算机设备及存储介质
US10838952B2 (en) 2019-01-03 2020-11-17 Bank Of America Corporation Resource offloading process using machine learning for database

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205562A1 (en) * 2001-12-27 2004-10-14 G.E. Information Services, Inc. System and method for transforming documents to and from an XML format
US20060101423A1 (en) * 2004-10-01 2006-05-11 Microsoft Corporation Method and apparatus for elegant mapping between data models

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956707A (en) 1997-02-13 1999-09-21 Chu; Wesley W. Database system with query relaxation using type abstraction hierarchy (TAH) as query condition relaxation structure
JP3734334B2 (ja) 1997-05-07 2006-01-11 富士通株式会社 データ移行システム、データ移行用プログラムを格納したコンピュータ読み取り可能な記録媒体、及びデータ移行方法
JP2000112795A (ja) 1998-10-05 2000-04-21 Fujitsu Ltd データ構造変換処理装置および記録媒体
US7320001B1 (en) * 1999-01-15 2008-01-15 Hon Hai Precision Industry, Ltd. Method for visualizing information in a data warehousing environment
US6879946B2 (en) * 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
US6721727B2 (en) 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
WO2001055898A1 (en) * 2000-01-14 2001-08-02 Synquiry Technologies, Ltd. Software composition using graph types, graphs, and agents
US6615220B1 (en) * 2000-03-14 2003-09-02 Oracle International Corporation Method and mechanism for data consolidation
US6795868B1 (en) * 2000-08-31 2004-09-21 Data Junction Corp. System and method for event-driven data transformation
US7159185B1 (en) * 2000-09-14 2007-01-02 Microsoft Corporation Function objects
US7013289B2 (en) * 2001-02-21 2006-03-14 Michel Horn Global electronic commerce system
US6907433B2 (en) * 2001-08-01 2005-06-14 Oracle International Corp. System and method for managing object to relational one-to-many mapping
US8316306B2 (en) * 2001-10-15 2012-11-20 Maya-Systems Inc. Method and system for sequentially navigating axes of elements
US7680817B2 (en) * 2001-10-15 2010-03-16 Maya-Systems Inc. Multi-dimensional locating system and method
US7937281B2 (en) * 2001-12-07 2011-05-03 Accenture Global Services Limited Accelerated process improvement framework
US20030172368A1 (en) * 2001-12-26 2003-09-11 Elizabeth Alumbaugh System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
US7730063B2 (en) * 2002-12-10 2010-06-01 Asset Trust, Inc. Personalized medicine service
US7739223B2 (en) 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
US7426520B2 (en) * 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
US7454696B2 (en) * 2004-04-09 2008-11-18 International Business Machines Corporation Method and apparatus for stream based markup language post-processing
US20050171966A1 (en) 2004-01-29 2005-08-04 International Business Machines Corporation Relational to hierarchical tree data conversion technique
US20050204347A1 (en) * 2004-03-12 2005-09-15 International Business Machines Corporation Method for generating XSLT documents from multiple versions of a UML model or XML schemas created from multiple versions of a UML model
US20050246353A1 (en) * 2004-05-03 2005-11-03 Yoav Ezer Automated transformation of unstructured data
US7827205B2 (en) * 2004-05-27 2010-11-02 International Business Machines Corporation Bi-directional data mapping tool
WO2006017944A1 (en) 2004-08-16 2006-02-23 Abb Research Ltd Method and system for bi-directional data conversion between iec 61970 and iec 61850
US7567968B2 (en) 2005-01-31 2009-07-28 Microsoft Corporation Integration of a non-relational query language with a relational data store
US20060047780A1 (en) * 2005-11-08 2006-03-02 Gregory Patnude Method and apparatus for web-based, schema-driven application-server and client-interface package using a generalized, data-object format and asynchronous communication methods without the use of a markup language.
US7680767B2 (en) 2006-03-23 2010-03-16 Microsoft Corporation Mapping architecture with incremental view maintenance
WO2007122639A2 (en) * 2006-04-26 2007-11-01 Tata Consultancy Services A system and method for pattern based services extraction
US7478332B2 (en) 2006-05-24 2009-01-13 170 Systems Inc. System for and method of providing a user interface for a computer-based software application
US7580941B2 (en) * 2006-06-13 2009-08-25 Microsoft Corporation Automated logical database design tuning
US8572236B2 (en) * 2006-08-10 2013-10-29 Ab Initio Technology Llc Distributing services in graph-based computations
US8135718B1 (en) * 2007-02-16 2012-03-13 Google Inc. Collaborative filtering
US20090106282A1 (en) 2007-10-19 2009-04-23 Siemens Product Lifecycle Management Software Inc. System and method for interformat data conversion
US7783680B2 (en) * 2008-01-07 2010-08-24 International Business Machines Corporation Quasi-inverses of schema mappings
EP2131293A1 (en) 2008-06-03 2009-12-09 Alcatel Lucent Method for mapping an X500 data model onto a relational database
US8495559B2 (en) * 2008-09-09 2013-07-23 International Business Machines Corporation Extracting platform independent models from composite applications
US8255410B2 (en) 2008-12-09 2012-08-28 Microsoft Corporation Translating queries to representational state transfer (REST)
JP2010152748A (ja) 2008-12-25 2010-07-08 Nec Corp グラフ変換支援システム、グラフ変換支援方法、及びプログラム
US8713543B2 (en) * 2009-02-11 2014-04-29 Johnathan C. Mun Evaluation compiler method
US8898627B2 (en) * 2010-05-11 2014-11-25 Smartshift Gmbh Systems and methods for applying rules to transform objects of an application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205562A1 (en) * 2001-12-27 2004-10-14 G.E. Information Services, Inc. System and method for transforming documents to and from an XML format
US20060101423A1 (en) * 2004-10-01 2006-05-11 Microsoft Corporation Method and apparatus for elegant mapping between data models

Also Published As

Publication number Publication date
JP5873498B2 (ja) 2016-03-01
CN102508852A (zh) 2012-06-20
AU2011305918B2 (en) 2014-11-20
WO2012039923A3 (en) 2012-05-31
TW201229792A (en) 2012-07-16
AU2011305918A1 (en) 2013-03-21
US20170017670A1 (en) 2017-01-19
US11003637B2 (en) 2021-05-11
EP2619694A2 (en) 2013-07-31
EP2619694A4 (en) 2015-01-14
US9460189B2 (en) 2016-10-04
WO2012039923A2 (en) 2012-03-29
US20120078974A1 (en) 2012-03-29
JP2013542501A (ja) 2013-11-21

Similar Documents

Publication Publication Date Title
CN102508852B (zh) 数据模型对偶化
Luengo et al. Big data preprocessing
JP7273045B2 (ja) Sqlクエリプランを最適化するための次元コンテキスト伝搬技術
Gollapudi Practical machine learning
US10353923B2 (en) Hadoop OLAP engine
CN102567457A (zh) 对象模型到键值数据模型的映射
US20210019318A1 (en) Materialized views for database query optimization
CN102479255B (zh) 用于优化数据库查询的方法和系统
Ilyas et al. Machine learning and data cleaning: Which serves the other?
CN102541993A (zh) 用于分布式计算的电子表格模型
Franciscus et al. Precomputing architecture for flexible and efficient big data analytics
Ives et al. Dataset relationship management
Barrasa et al. Building Knowledge Graphs
Liu et al. Ontology-based big dimension modeling in data warehouse schema design
Reniers et al. Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF
CN102402420B (zh) 解析可观察集合
Gupta et al. Efficiently querying archived data using hadoop
Chen et al. On construction of a power data lake platform using spark
Akhtar et al. Pro Apache Phoenix: An SQL Driver for HBase
Asghar et al. Enhancing OLAP functionality using self-organizing neural networks
Goher et al. A Survey of Cloud-Based Services Leveraged by Big Data Applications
Laxmi Lydia et al. Challenging Data Models and Data Confidentiality Through “Pay-As-You-Go” Approach Entity Resolution
Siddesh et al. Driving big data with hadoop technologies
Hoseini et al. A survey on semantic data management as intersection of ontology-based data access, semantic modeling and data lakes
ABDELKADER RALEM AHMED SUBMITTED TO THE COMPUTER SCIENCE DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY-KHEMIS MILIANA UNIVERSITY IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER IN COMPUTER SCIENCE

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150722

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150722

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant