CN102289448A - 访问数据访问层的实体 - Google Patents

访问数据访问层的实体 Download PDF

Info

Publication number
CN102289448A
CN102289448A CN2011101623504A CN201110162350A CN102289448A CN 102289448 A CN102289448 A CN 102289448A CN 2011101623504 A CN2011101623504 A CN 2011101623504A CN 201110162350 A CN201110162350 A CN 201110162350A CN 102289448 A CN102289448 A CN 102289448A
Authority
CN
China
Prior art keywords
entity
pseudo
father
character
fructification
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.)
Granted
Application number
CN2011101623504A
Other languages
English (en)
Other versions
CN102289448B (zh
Inventor
A.博埃罗
D.科尔索
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of CN102289448A publication Critical patent/CN102289448A/zh
Application granted granted Critical
Publication of CN102289448B publication Critical patent/CN102289448B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了访问数据访问层的实体。本发明提供了一种用于数据访问层的实体的方法和系统,所述数据访问层遵循实体关系模型,其中,根据实体及其之间的关系来描述数据;其中,为实体提供CRUD界面;本发明包括以下各项:a)定义元实体,在下文中称为虚拟实体,作为一个或多个实体的各部分的组合物而得到;b)经由虚拟实体描述符将虚拟实体描述为其中经由链接以父子结构来连接实体的分级结构;在所述虚拟实体描述符中,指定从每个实体获取哪些性质以形成虚拟实体的部分实体;c)在虚拟实体上提供CRUD界面;d)在运行时间,经由其CRUD界面来访问虚拟实体,所述访问被实现为对访问组成虚拟实体的实体的CRUD方法的一组调用。

Description

访问数据访问层的实体
技术领域
本发明涉及分别根据权利要求1和14的前序的用于访问数据访问层的实体的方法、系统。
背景技术
大多数企业和制造工艺使用数据库管理系统来存储和检索数据,即执行其任务所需的信息。用于感兴趣的特定域的此类信息的概念描述称为“物理数据模型”。
软件应用程序通常被与在“数据库层级”(DB层级)上的用来处理物理数据模型信息的数据库结构保持分开。这借助于“数据提取层”(DAL)来完成,其为“逻辑数学模型”的实现。逻辑数据模型的非常常见的类型是“实体关系模型”(ERM),其中,根据实体、即表示真实世界对象的数据结构及其之间的关系来描述数据。
例如,在生产环境数据模型中,例如在制造执行系统(MES)中,我们将说“机器属于特定生产线”。在本示例中,“机器”和“生产线”是我们的数据模型的实体,同时“属于”是其之间的关系。
在数据模型之上放置施加于信息的一组算法、约束和规则的描述:这是“企业逻辑”(BL)层级。例如,参考前一示例,我们可以说“一个人只有当他/她具有特定技能组时才能操作特定机器”。“人”、“机器”和“技能”是我们的逻辑数据模型的实体,“具有”是人和技能之间的关系,并且以上句子是由我们的企业逻辑施加的约束。
当在特定域中开发一般软件解决方案时,在DB和DAL两个层级,通常以固定的数据模型来构造信息:基于关于真实过程的一般知识来定义实体和关系。这适用于企业逻辑层级,其中,要求所实现的算法、规则和约束来适合其中将使用该解决方案的所有特定情况。
遗憾的是,主要缺点是每当将一般解决方案应用于特定情况时,在DB、DAL、BL层级处常常需要繁重的定制。
举例说明此问题的简单示例是处理关于人的信息。在一般数据模型中,对应于人的实体包含通常表示我们感兴趣的域中的人的所有性质,例如在本示例中,人类资源管理系统,:姓氏、名字、出生时间和地点等。如果在USA使用此一般数据模型,需要将其扩展至包括重要的SSN(社会安全号码)信息,其出于税收的目的唯一地识别那个国家中的人。在此极其简单的附加性质情况下,DB层级上的定制是与现有的一个呈1:1关系的表格或附加表格的附加列。关于数据读取过程,在DB层级,经由SQL联接子句将读取语句修改为包括新添加的性质,但是遗憾的是这在DAL层级是不真实的。
此外,大多数问题在定制数据写入过程时出现。事实上,关系数据库不具有对应于用于读取的“联接”子句的写结构。在DAL和BL层级,问题甚至更复杂,事实上,在不同的情况下必须保持/扩展/覆写由基本实体实现的预先存在的写逻辑。
正如此非常简单的示例性情况所示,常见定制在将一般解决方案应用于特定情况时如何要求包括附加实体、性质和关系及附加的不同行为、约束和检查是显而易见的。
因此,本领域中的要求是通过以高效且灵活的方式对DAL层进行定制来适应特定解决方案的数据模型,其常常不同于由通用解决方案实现的一般数据模型。遗憾的是,通常通过部分地或完全取代产品持续(product persistence)层来完成DAL层的定制,这意味着相当大的开发努力。
因此,在实际情况中,常常发生的是一般产品DAL和BL层通常被丢弃并从头开始重新写入,以便获得代表(typical of)物理数据处理层的弹性和灵活性。这是由于在DAL层级、实体是刚性的且两个或更多实体的数据不可以高效的方式分组的事实。
遗憾的是,跳过DAL层的主要缺点是可能丢失用于数据模型的实体的某些持续功能和与之一起的可用于编程短语的某些控制和检查能力。
发明内容
因此,本发明的目的是通过提供用于访问数据访问层的实体并还针对上数据层实现代表访问数据库物理层的灵活性的方法和系统来克服上述缺点。
由用于访问数据访问层的实体的方法和系统来实现上述目的,数据访问层遵循其中根据实体及其之间的关系来描述数据的实体关系模型;其中,实体提供有CRUD接口;本发明包括以下各项:
a)定义元实体,在下文中称为虚拟实体,作为一个或多个实体的各部分的组合物而得到;
b)经由虚拟实体描述符将虚拟实体描述为其中经由链接以父子结构来连接实体的分级结构;以所述虚拟实体描述符,指定从每个实体获取哪些性质以形成虚拟实体的部分实体;
c)在虚拟实体上提供CRUD接口;
d)在运行时间,经由其CRUD接口来访问虚拟实体,所述访问被实现为对访问组成虚拟实体的实体的CRUD方法的一组调用。
在提出的发明的实施例中,可以方便地从由以下各项中的一个或多个组成的组中选择连接父和子实体的链接:
—直接链接,其中,所述父实体包括参考子实体的一组性质。
—返回链接,其中,所述子实体包括参考父实体的一组性质;
—枢轴返回链接,其中,针对给定枢轴标识符的每个期望值将一组子实体性质复制一次。
在提出的发明的实施例中,至少一个子实体可以有利地是可选副实体,意味着父实体与子实体之间的关系本身并不是强制性的。
在提出的发明的实施例中,至少一个直接链接子实体可以方便地是查找副实体,意味着至少一组性质被标记为唯一地识别子实体实例的标识符且查找副实体被用于基于其标识符组对特定实例进行定位,并用于从储存库读取其性质,使得能够在父实体中更新参考该组的链接性质。
在提出的发明的实施例中,可以将关于实体的信息存储在可以是数据库、优选地关系数据库中的储存库中。
在提出的发明的实施例中,可以经由读取方法或经由写入方法来执行项目d)的虚拟实体的访问。
在提出的发明的实施例中,可以优选地将虚拟实体上的读取方法实现为组成虚拟实体的实体上的读取方法的调用。
在提出的发明的实施例中,可以通过由以下各项中的一个或多个组成的组的选择来有利地实现虚拟实体实例的集合:
—“.NET”标准对象;
—被束缚于Microsoft ObjectDataSource(微软对象数据源)的Microsoft DataSet(微软数据集)和/或DataTable(数据表)对象;
—适合于向第三方ASP.NET控制提供数据的其它标准表示。
在提出的发明的实施例中,写入方法可以是编辑方法,其中:
—对虚拟实体的分级结构执行检验以便判定其每个部分实体的处理顺序:
—如果用直接链接将子实体链接到父实体,则在父实体之前处理子实体;
—如果用返回链接将子实体链接到父实体,则在父实体之后处理子实体;
—其中,每个部分实体的处理包括以下子步骤:
—检查部分实体以检验其是否将被修改;
—如果其将被修改:
       · 从数据库检索最新完整实体实例;
       · 在当前部分实体的分级位置上执行检验:
                —如果当前部分实体是根实体或被直接链接到其父:它通过其查找标识符(如果被标记为被查找)之一或通过其唯一密钥之一来进行检索;
                —如果其被成功地检索,用数据库上的新值来更新它,除非其为未被标记为“可更新”的查找实体;否则,
       · 如果当前部分实体被返回链接到其父:如果当前部分实体不是可通过唯一密钥检索的,创建具有新值的实体实例;否则如果其可访问性质的所有新值是无效的,从数据库去除整个实体实例,否则如果可访问性质的至少一个新值不是无效的,则用新值来更新当前部分实体。
在提出的发明的实施例中,写入方法还可以是删除方法,其中:
—如果用返回链接将子实体链接到父实体,则之前删除子实体并之后删除父实体;否则,
—如果用直接链接将子实体链接到父实体,则只删除父实体。
在提出的发明的实施例中,对于至少一个实体的CRUD接口的方法中的至少一个而言,可以优选地关联将在运行时间执行的至少插件,其中,插件是实现定制动作的外部软件模块。
在提出的发明的实施例中,其中,所述至少一个实体可以方便地是虚拟实体。
在提出的发明的实施例中,所述实体可以是定制实体,用包含在动态实体描述符结构中的信息以动态的方式生成;其中,所述动态实体描述符结构包括以下信息:
—关于在数据访问层中如何表示实体的信息;
—关于在储存库中如何存储实体数据的信息;
—关于将如何写入实体和调用哪些外部提供商以执行写入操作的信息。
此外,可以提供计算机程序元件,包括用于在被加载在计算设备的数字处理器中时执行根据上述方法的步骤的计算机程序代码。
另外,可以提供存储在计算机可用介质上的计算机程序产品,包括用于促使计算设备执行所述方法的计算机可读程序代码。
用提出的发明的实施例,以高效的方式处理数据模型信息,同时使在识别一般结构和关于特定域中的数据的性质时通常所需的开发努力最小化。
提出的发明的实施例允许读和写操作两者中的属于不同实体的数据的高性能和灵活的组合。
提出的发明的实施例在DAL层处针对读和写操作两者允许SQL语言在数据库层级针对读操作提供的类似种类的灵活性。
提出的发明的实施例允许BL层的完整或部分定制。
提出的发明的实施例不要求定制数据访问类的开发。
用提出的发明的实施例,组成基本构建块、库或动态定义实体以创制期望逻辑数据模型是非常简单的。事实上,在此组成过程中,保留原始企业逻辑还是将其扩展/重写以适合特定模型需要的选择只能涉及虚拟实体的一小部分上的特定动作以及整个虚拟实体。
提出的发明的实施例允许展示统一界面,即用于应用程序必须处理的所有数据模型实体的交互规则集合,从基本库实体到由许多标准和定制副实体行为组成的复杂聚合。
附图说明
现在将参考附图在优选但非排他性的实施例中描述本发明,在附图中:
图1是示意性地举例说明现有技术中的用于数据访问的3层数据模型的方框图;
图2是示意性地举例说明根据提出的发明的示例性实施例的用于数据的3层数据模型的方框图;
图3是示意性地举例说明根据提出的发明的示例性实施例的被定义为真实实体的分级结构的虚拟实体的不同示例的图;
图4是示意性地举例说明根据提出的发明的示例性实施例的被定义为真实实体的分级结构的虚拟实体的不同示例的图;
图5是示意性地举例说明根据提出的发明的示例性实施例的被定义为真实实体的分级结构的虚拟实体的不同示例的图;
图6是示意性地举例说明根据提出的发明的示例性实施例的被定义为真实实体的分级结构的虚拟实体的不同示例的图;
图7是示意性地举例说明根据提出的发明的示例性实施例的被定义为真实实体的分级结构的虚拟实体的不同示例的图;
图8是示意性地举例说明根据提出的发明的示例性实施例的被定义为真实实体的分级结构的虚拟实体的不同示例的图;
图9是示意性地举例说明根据提出的发明的示例性实施例的用于实体操作的插件执行的示例的流程图;
图10是示意性地举例说明根据本发明的示例性实施例的包含在动态实体描述符结构中的信息的类型的图。
具体实施方式
根据提出的发明,DAL层遵循其中根据实体及其之间的关系来描述数据的ERM模型。
实体展示CRUD界面,即其在适用时支持四个基本存储操作:创建、读取、更新、删除。应注意的是最小CRUD界面要求至少支持读取操作。
提出的发明引入“实体聚合”的概念,根据该概念:
—如果在两个实体之间存在关系,即一个实体包含对另一个实体的参考,则能够将其聚合
—可以对该聚合进行迭代,因此给出分级结构,即聚合实体的树
—此类聚合的结果是称为“虚拟实体”的元实体
—基本实体如何被链接以便获得虚拟实体的描述称为“虚拟实体描述符”
—虚拟实体自动地展示CRUD界面。
实体表明其之间的允许链接(关系)。这每当实体包含对另一实体的参考、即唯一地识别另一实体的实例的一组性质时发生。
虚拟实体描述符是分级、即树形结构,其中子实体通过“链接”性质被连接到父实体,并且其中,指定从结构的一组不同实体中采取哪些性质来形成新的虚拟实体。在其它发明实施例中,可以优选地对此类性质给定新名称“别名”。
可以将提出的发明实现为基于实体关系逻辑数据模型的架构。可以将虚拟实体描述符看作一类架构。可以优选地将虚拟实体描述符串行化和去串行化以便在不写入代码的情况下被容易地使用,例如可行的表示是XML语言。
有利地,用提出的发明,特定解决方案的DAL和BL层可以基于虚拟实体而不是类对象。事实上,提出的发明通过提供虚拟实体描述符的库来避免在应用和部署努力方面具有其明显缺点的不断地扩展定制聚合企业对象的库的需要。
在运行时间,经由虚拟实体的CRUD界面来访问虚拟实体。经由读取或写入方法的访问被实现为对访问构成虚拟实体的实体的CRUD方法的一组调用。
图1和图2分别示意性地举例说明现有技术和发明示例中的用于数据访问的3层数据模型的差别。在BL层级,在如图1所示的现有技术中,存在将特定企业逻辑实现为类的每个解决方案定制,替代地在如图2所示的示例性实施例中,存在作为虚拟实体描述符的企业实体的和可选地插件的定义。
在DAL层级,在如图1所示的现有技术中,存在一般域实体,而在如图2所示的示例性实施例中,存在一般域CRUD实体。在图2中,BL层级的虚拟实体的定义不要求对数据库层级的直接访问和DAL层级的跳过,对于如图1所示的现有技术解决方案而言情况常常如此。
链接类型
在虚拟实体中,可以将副实体、即子实体直接链接或返回链接到父实体。在其它实施例中,返回链接还可以是枢轴链接(pivot-link)。
在本文中,术语“直接链接”的副实体指示父实体包括参考副实体的一组性质。替代地,在术语“返回链接”副实体的情况下,意图在于副实体参考父实体。
用示例1、4和5来举例说明直接链接、返回链接和枢轴链接之间的差别。
示例1:直接链接
在示例性实施例中,在MES情况中,让我们假设以下三个基本DAL实体是生产订单管理组件的一部分:
—“运动(campaign)”实体,表示制造特定数量的产品的生产请求。
—“订单”实体,表示生产特定材料所需的操作,以及相关信息。运动由一个或多个订单组成。
—“条目”实体:表示用于完成整个生产订单的执行的制造步骤。订单由一个或多个条目组成。
虚拟实体的非常简单的示例可以聚合以下性质数据:
—条目标识符(从条目获取)
—条目估计起始时间(从条目获取)
—条目估计结束时间(从条目获取)
—条目所属的订单的标识符(从订单获取)
—由订单生成的最终材料的标识符(从订单获取)
—订单所属的运动的标识符(从运动获取)
在本简单示例情况下,虚拟实体被以图形方式表示为如图3的虚拟实体图表T1所示的三个级联直接链接实体的树。
本示例中的链接性质是由订单和条目实体两者展示的订单标识符和由运动和订单实体两者展示的运动标识符。
副实体类型
在提出的发明的实施例中,可以提供其它两个类型的副实体,例如“可选”副实体或“查找”副实体。
可选副实体
根据第一附加副实体类型,如果父实体与副实体之间的关系本身不是强制性的,即参考实体不一定指向被参考实体的实例,则可以将副实体标记为“可选”副实体。
示例2:可选副实体
在示例性实施例中,让我们假设条目实体包含称为参考被关联到条目的执行设备的设备ID的性质,如果有的话,如图3的虚拟实体图T2中所示。
在这种情况下,由于该关联不是强制性的,即条目不一定具有关联设备,所以此类副实体被标记为可选的。
在此虚拟实体描述符上调用的读取方法返回所有条目实例,无论它们是否指向相关设备。对于不存在到设备实体的关联的虚拟实体实例而言,从设备实体提取的性质具有无效值。
查找副实体
根据第二附加副实体类型,可以将直接链接的副实体标记为“查找”副实体。
要求至少一组性质的查找副实体被标记为唯一地识别副实体实例的“标识符”。
在查找副实体中,以与对于非查找副实体而言不同的方式来实现写入方法,而读取方法的实现不受影响。实际上,查找副实体并不意图被写入,而是意图被用于基于其标识符组对特定实例进行定位并用于从储存库读取其性质,使得能够在父实体中更新对其进行参考的链接性质。
在写入期间,从数据库搜索并读取与对至少一个标识符给定的值匹配的副实体实例,并且在父实体中更新所有链接性质。结果是副实体未被修改,但是在然后可以参考不同实例的父实体中发生更新。
在本发明的其它实施例中,还可以提供具有混合查找性质的副实体,在本文中称为“可创建”和/或“可更新”查找副实体。在“可创建”查找副实体中,如果未发现匹配的副实体实例,现在用给定性质值创建一个新的,并且父实体将对其进行参考。在“可更新”副实体中,当识别并检索到匹配的副实体实例时,在数据库中更新任何经修改的性质。
示例3:查找副实体
图3的虚拟实体图T3a和T3b描述两个虚拟实体描述符,其不同之处在于在第二虚拟实体描述符中运动副实体被标记为“查找”。
对于第一虚拟实体而言,此虚拟实体的实例上的写入方法的调用意味着根据数据,可以调用订单和运动实例两者上的写入方法。
替代地,对于第二虚拟实体而言,此虚拟实体的实例上的写入方法的调用意味着只有订单实例被写入,并且特别地,其指向与针对其“标识符性质”给定的值、例如Campaign.Name(运动.名称)给定的值匹配的运动实例。
枢轴链接
在提出的发明的实施例中,优选的是将某些返回链接副实体标记为枢轴链接副实体。
事实上,应注意的是在返回链接中,副实体通过一个或多个性质来参考父实体。遗憾的是,这意味着除非关系是一对一的,在结果得到的一组虚拟实体实例中,重复来自父实体的性质值,因为可能存在参考同一父实体实例的多个副实体实例。枢轴链接不具有此类缺陷,如用描绘返回链接与枢轴返回链接之间的差异的示例4和5举例说明的那样。
示例4:返回链接副实体
让我们假设实体EntryProperty(条目实体)表示被关联到条目实体的性质。其通过性质EntryID(条目ID)来参考条目性质并展示表示性质名称的名称性质。用EntryPropertyValue(条目性质值)实体来表示EntryProperty(条目性质)实例所取的值,其借助于性质EntryProperty.Name(条目性质.名称)来参考EntryProperty(条目性质),并展示表示性质值的Value性质,如图4中的虚拟实体图T4所示。
在表1中举例说明结果得到的虚拟实体实例的样本集。
Figure 364590DEST_PATH_IMAGE002
表1
存在其中此类数据聚合没有用的许多常见情况。
因此,在某些此类情况中,期望具有“枢转”副实体数据组织,其中,针对给定“枢轴标识符”的每个期望值将一组副实体性质(和副副实体)复制一次。枢轴标识符是枢转副实体的一组性质,其值被用来识别将在虚拟实体中枢转的实例。这些值被称为“枢轴值”。如果针对给定枢转副实体指定N个枢轴值,则从其开始的子树将被复制N次,每个枢轴值一次。
示例5:枢轴链接副实体
在本示例中,与示例4相比,结果得到的虚拟实体是完全不同的,因为EntryProperty(条目性质)在其Name(名称)性质上枢转,如图4的虚拟实体图T5a所示。
假设3个枢轴值,给定“propA”、“propB”、“propC”,从EntryProperty(条目性质)开始的子结构在内部被复制3次,如图4的虚拟实体图T5b中所示。
因此,枢轴值变成如在表2中举例说明的复制性质的前缀。有利地,可以指定独立的别名。
Figure 717949DEST_PATH_IMAGE003
表2
方便地,可以以如表2所示的更有用的形式用此虚拟实体来表示示例4的表1所示的相同样本数据。
有利地,用枢轴链接副实体,实现数据组织的用户友好方式,因为避免了根实体的数据的冗余复制。如示例4和5所示,表2仅包含3行,而表1包含8行。
事实上,应用常常要求在没有不必要冗余的情况下以表的方式来组织数据,如从关系数据库中的SQL联接命令得到的情况一样。
应注意的是根据定义,枢转实体是可选的。事实上,在本示例中,条目2不具有称为“propC”的性质且条目3不具有称为“propA”的性质,因此,相应的虚拟实例性质被设置为无效的。
当实体以1:1的关系参考另一实体时,它可以被称为其“扩展”。有利地,在发明实施例中,可以动态地生成扩展实体并在虚拟实体中用作其扩展的实体的返回链接副实体。
示例5a:枢轴链接副实体的另一示例:
在本示例中,使用了两个实体,Person(人)和PersonCustomAttribute(人定制属性)。Person实体展示以下四个性质:代码、名字、姓氏和电子邮件,其中,代码性质是唯一地识别人的号码。
PersonCustomAttribute(人定制属性)实体展示以下三个性质:AttributeName(属性名称)、AttributeValue(属性值)和PersonCode(人代码)。PersonCode(人代码)性质识别属性所参考的人。
让我们假设三个Person(人)实例被存储在储存库中。
第一个人具有以下数据:
—代码:1
—名=John
—姓=Smith
—电子邮件=jsmithhotmail.com
第二个人具有以下数据:
—代码:2
—名=Mary
—姓=Williams
—电子邮件=mary.Williamsgmail.com
第三个人具有以下数据:
—代码:3
—名=James
—姓=Moore
—电子邮件=jamesmemail.com
让我们假设John Smith具有两个关联的定制属性,表明他具有黑色眼睛和棕色头发,而Mary Williams具有三个关联的定制属性,表明她具有蓝色眼睛,她体重55Kg,并且她165cm高。James Moore不具有关联的定制属性。
因此,储存库包含以下五个PersonCustomAttribute(人定制属性)实例:
AttributeName = eyes
AttributeValue = black
PersonCode = 1
(=> “John Smith has black eyes”)
AttributeName = hair
AttributeValue = brown
PersonCode = 1
(=> “John Smith has brown hair”)
AttributeName = eyes
AttributeValue = blue
PersonCode = 2
(=> “Mary Williams has blue eyes”)
AttributeName = weight
AttributeValue = 55
PersonCode = 2
(=> “Mary Williams weighs 55”)
AttributeName = height
AttributeValue = 167
PersonCode = 2
(=> “Mary Williams is 167 cm tall”)
还可以经由用于人的表3和用于PersonCustomAttributes(人定制属性)的表4以紧凑表格的形式来表示此类数据。
Figure 497686DEST_PATH_IMAGE005
表3
Figure 2011101623504100002DEST_PATH_IMAGE007
表4
如图5的虚拟实体图T7所示地描述相应的虚拟实体,假设从Person(人)获取性质Name(名)和Surname(姓)并从PersonCustomAttribute(个人定制属性)获取AttributeName(属性名称)和AttributeValue(属性值)。
此类虚拟实体具有表5所示的虚拟实例。
Figure 2011101623504100002DEST_PATH_IMAGE009
表5
应注意的是在表5中,不存在James Moore,因为他不具有与其相关联的定制性质。替代地,在副实体PersonCustomAttribute(人定制属性)在虚拟实体描述符中被标记为“可选”的情况下,虚拟实体具有如表6所示的附加实例。
Figure 2011101623504100002DEST_PATH_IMAGE011
表6
在替换虚拟实体描述符中,可以有利地插入PersonCustomAttribute(人定制属性)作为枢转实体。
在这种情况下,指定哪个是将被用作“枢轴性质”和用于它的一组“枢转值”的PersonCustomAttribute(人定制属性)性质。
例如,AttributeName(属性名称)被指定为枢轴性质且“眼睛”、“头发”和“体重”被指定为枢轴值。在表7中示出结果得到的虚拟实例。
Figure 2011101623504100002DEST_PATH_IMAGE013
表7
示例6:具有不同类型的副实体的概括示例
为了举例说明提出的发明的实施例如何可以能够还适应非常复杂的真实情况,因此提出包括直接、返回、枢轴、查找和可选副实体的样本虚拟实体描述符。
让我们假设用于特定应用的数据模型包含由以下各项组成的产品订单“条目”的丰富概念:
—条目的某些性质
—条目所属的订单的某些性质
—订单所属的运动的某些性质
—用于条目执行(如果有的话)的设备的某些性质,具有查找能力(改变EquipementName(设备名称)的值意味着使条目关联到不同的设备,或者如果无效的话,没有设备)
—EquipmentProperty(设备性质)的某些性质,在用于EquipmentProperty.ID(设备性质.ID)的给定的一组值上枢转
—EntryExtension(条目扩展)的某些性质,表示被关联到条目的附加应用特定数据的动态地生成的实体
—EntryPropertyValue(条目属性值)的某些性质,在用于EntryProperty.Name(条目属性.名称)的给定的一组值上枢转。
可以如图4的虚拟实体图T6所示地描述此类虚拟实体。
CRUD界面
经由CRUD界面来展示用于访问虚拟实体的访问方法。此类方法包括(在相关时)读取方法和三个写入方法,即创建、读取和删除方法。
用于虚拟实体的读取方法
在用于虚拟实体的CRUD界面中,虚拟实体上的读取方法被实现为包括虚拟实体的实体上的读取方法的调用。
在发明实施例中,用于存储实体的储存库是数据库,优选地是关系数据库。
在关系数据库中,通过生成并执行单个查询来实现用于虚拟实体的读取方法。在发明实施例中,这可以通过在内部架构(即,组成架构的基础类)中提供实体描述来实现,所述实体描述具有关于其在数据库中如何持续、即那些字段/表达参考那些表格/视图在外部保持被表示为实体性质的数据的详细信息。
有利地,通过经由对关系数据库的单个查询来执行读取方法,实现了读取方面的最大性能的目标。
此外,可以实现抽象层级过滤、分类和服务器侧寻呼功能,允许开发者对数据库吞吐量进行微调。
读取方法返回虚拟实体实例的集合。在发明实施例中,可以有适应不同应用领域的多个实施方式。
例如,在第一实施方式中,可以存在将在使用虚拟实体描述符来写入.NET应用程序时使用的VirtualEntityInstance(虚拟实体实例)对象的.NET标准Collection<>。在本实施方式中,VirtualEntityInstance是在处理聚合实体并实现所述方法以访问虚拟实体实例的架构中定义的类。
在第二实施方式中,可以存在能够被直接束缚于Microsoft ObjectDataSources以便在不写入.NET代码的情况下获得表状或表格状图形表示的Microsoft DataSet和/或DataTable对象。
在其它实施方式中,可以存在适合于向第三方ASP.NET控制(例如,制图、图表、树)提供数据的其它标准表示。
用于虚拟实体的写入方法
三个写入方法中的每一个根据存储在虚拟实体描述符中的信息行动。
创建和删除方法要求表示要创建或删除的复合对象的单个虚拟实体实例。
替代地,在本发明的优选实施例中,编辑方法可能要求复合对象的当前(即,旧的)和期望(即,新的)版本。事实上,编辑作为不止一个部分实体的复合物的虚拟实体可以决定(resolve to)每个部分实体实例的创建、修改或删除。
在本优选实施例中,其中编辑方法要求旧的和新的值,可以将创建方法实现为其中“旧”虚拟实体实例性质无效的编辑方法的特殊情况。
虚拟实体描述符中的其它属性
有利地,可以将虚拟实体描述符中的某些性质标记为只读或隐藏。在特定情况下写入方法可以将此类属性考虑在内,如以下示例所示。
交易支持
优选地,在聚合写入操作中涉及的实体可以展示支持分布式交易的创建、编辑和删除原子方法。这有利地允许在某些事失败的情况下退回整个交易。用聚合方法对分布式交易进行初始化,或者使用在外部创建的一个。
唯一密钥
架构中的每个实体展示关于哪组性质组成唯一地识别其实例的密钥的信息。
每个实体可以具有一个或多个唯一密钥。在某些情况下,实体可以不具有定义的唯一密钥,在这种情况下,由所有实体性质来组成唯一密钥。
可以使用唯一密钥:
—检索最新实例并在写入之前集成未被包含在部分实体中的性质;
—用在聚合中涉及的每个实体的删除方法。
数据依赖关系
某些实体具有来自其它实体的数据依赖关系。这意味着无论在虚拟实体描述符中如何分级组织(父/子)这些实体,写入方法的执行中的中间步骤包括将某些性质值从一个实体拷贝到另一个实体。通常,可以用“依赖关系”属性来标记实体性质,表明其值被其它实体性质的值继承。根据定义,链接性质是依赖性性质。事实上,如果实体A通过性质P来参考实体B,即A.P对应于B.P,则每当B.P的值中发生变化时更新A.P的值。
编辑/创建方法
在编辑/创建方法中,按顺序处理部分实体,保证遵守数据依赖关系;例如,如果部分实体A从部分实体B获得数据,则将在B之后处理A,用链接性质来表示最常见的情况。
参考由描述符定义的部分实体的树:
—如果用直接链接将子C链接到父F,在F之前处理C。
—如果用返回或枢转链接将子C链接到父F,则在F之后处理C。
在处理部分实体的同时,通常可以执行以下步骤:
I)在当前交易中支持(enlist)实体实例;
II)检查部分实体以检验其是否将被修改;
III)如果其将被修改;
—从数据库检索最新完整实体实例;
—进行关于将执行哪个动作的判定(创建/编辑/删除);
—执行该动作(如果不成功,方法执行停止且交易被退回)。
IV)将性质值拷贝到其它部分实体(如果有的话)中的依赖性性质。
在以下情况下,认为部分实体被修改:
i)至少一个性质明确地将被修改(即,其旧值不同于新的)或者
ii)至少一个依赖性性质隐含地将被更新,例如,这通常是链接性质的情况:如果Entity1.Property1(实体1.性质1)被链接到Entity2.Property2(实体2.性质2),Property2(性质2)的值的变化意味着更新Property1(性质1))或者
iii)部分实体被枢转,并且将创建其副实体之一,例如在这种情况下,还必须创建枢转实体的新实例。
将执行哪个动作的判定对于直接链接和返回链接副实体而言是不同的。
对于直接链接副实体而言,动作判定如下:
如果当前部分实体是根实体,或者被直接链接到其父,则根据其是否已被标记为“查找”,它通过其查找标识符之一或通过其唯一密钥之一来进行检索。当定义了多个标识符时,使用第一非零标识符来检索实体实例。
成功的检索意味着实体实例已经存在:其将在数据库上被更新,除非其为未被标记为“可更新”的查找实体。不成功的检索意味着实体实例是新的:其将在数据库上创建,除非其为未被标记为“可创建”的查找实体。
删除并重新创建未为之定义唯一密钥的实体的实例;常见的情况是表示其它实体之间的关联或换言之实现多对多关系的实体。
最后,如果查找实体中的所有查找标识符是无效的,这意味着调用者希望将其与其父分离;将不对数据库采取行动,并且在参考实体中,链接性质将被设置为无效。
对于返回链接副实体而言,动作判定如下。
如果当前部分实体被返回链接到其父,则进行通过其唯一密钥对其进行检索的尝试。如果检索尝试不成功,则创建实例。否则,检查其“可访问”性质以判定需要什么动作。当性质是可见的(即未被隐藏)且可编辑的(即不是只读的)或从另一部分实体获取(作为依赖性性质)时,其是“可访问的”。如果所有可访问性质是无效的,则这意味着调用者的意图是删除该实例,因此其将被从数据库去除,否则它用新值进行更新。
如上文所解释的,作为一组独立返回链接实体来处理枢转实体,每个枢轴值一个。这意味着在内部复制所有包括的性质和副实体以便具有用于枢轴值集合中的每个值的一个拷贝。
编辑示例
在示例中,使用以下符号来举例说明对部分实体采取的动作:
Figure 2011101623504100002DEST_PATH_IMAGE015
表8
示例7:简单直接链接副实体的编辑
在本示例中,让我们假设实体A具有如图5的虚拟实体图T8所示的直接链接副实体B。
让我们假设从实体A获取性质a1、a2、a3和a_pk并从实体B获取b1、b2和b_pk(a_pk和b_pk是用于两个实体的唯一密钥)。在典型的应用中,可以将a_pk和b_pk标记为“隐藏”。部分实体处理顺序是:首先实体B然后实体A。
样本情况7.1:创建
在本样本情况中,如表9所示,在新数据中指定值,提供用于性质a1、a2、a3、b1和b2的新值。先前的值全部是无效的,并且两个主密钥也是无效的。
Figure 2011101623504100002DEST_PATH_IMAGE017
表9
如图5的虚拟实体图T9所示,聚合编辑方法创建实体B的新实例和对其进行参考的实体A的新实例。
样本情况7.2:编辑两个部分实体
在此样本情况下,如表10的粗体格式所示,对a1、a2、a3、b1和b2给定新的值
表10
还如图5的虚拟实体图T10所示地更新两个实体B和A。
样本情况7.3:仅编辑副实体
在此样本的情况下,如表11的粗体格式所示地对b1和b2给定新的值。
Figure 2011101623504100002DEST_PATH_IMAGE021
表11
还如图5的虚拟实体图T11所示地仅更新实体B。
样本情况7.4:仅编辑主实体
在此样本情况下,对a1、a2和a3给定新的值。
Figure 2011101623504100002DEST_PATH_IMAGE023
表12
还如图5的图T12所示地仅更新实体A。
示例8:直接链接查找副实体的编辑
本示例与示例7的不同之处在于如图5的虚拟实体图T13所示地将实体B标记为“查找”(不可创建,不可更新),并宣布性质b1是其查找标识符。
由于实体B被定义为不可创建或不可编辑,所以不允许对其进行写操作,这意味着根据定义,b2和b_pk是只读的。部分实体处理顺序再次地是首先实体B然后实体A。
样本情况8.1:创建
针对a1、a2、a3和b1指定新的值。与示例7的差别是由于b1是B的查找标识符,所以使用给定值作为检索B的该特定实例的密钥。
Figure 2011101623504100002DEST_PATH_IMAGE025
表13
还如图6的虚拟实体图T14所示,创建参考具有b1=“b_id1”的实体B的实例的实体A的新实例。
如果不存在具有b1=“b_id1”的实体B的实例,则该方法失败,因为B不是“可创建的”,否则其将尝试创建新实例。
样本情况8.2:编辑(或更新)
在本样本情况下,对a1、a2、a3和b1给定新值。因为b1是B的标识符,所以改变其值意味着使A参考B的不同实例,这与示例7所示的相差悬殊。
Figure 2011101623504100002DEST_PATH_IMAGE027
表14
实体A被更新并链接到实体B的另一实例,还如图6的虚拟实体图T15所示的具有b1=“b_id2”的一个。
样本情况8.3:解开链接
在此样本情况下,对b1给定无效值。这意味着实体A不参考实体B的任何实例。
Figure 2011101623504100002DEST_PATH_IMAGE029
表15
还如图6的图T15所示,通过将实体A的到实体B的链接设置为无效更新实体A;当然,仍存在实体B的先前链接实例。
示例9:返回链接副实体的编辑
本示例与示例7的不同之处在于实体B被返回链接到实体A。应注意的是一般不推荐返回链接,因为其改变结果基数(cardinality)。然而,在一对一关系的情况下允许并意图使用它们。
部分实体处理顺序是:首先实体A然后实体B,这相对于示例7和8是相反的顺序。
样本情况9.1:创建
对a1、a2、a3、b1和b2指定新的值。先前的值全部是无效的,并且两个唯一密钥也是无效的。
Figure 2011101623504100002DEST_PATH_IMAGE031
表16
创建实体A的新实例,然后还如图6的虚拟实体图T18所示地创建对其进行参考的实体B的新实例。
样本情况9.2:编辑两个部分实体
在本样本情况下,对a1、a2、a3、b1和b2给定新值。
Figure 2011101623504100002DEST_PATH_IMAGE033
表17
还如图6的虚拟实体图T19所示,两个实体A和B被更新。
样本情况9.3:删除副实体
在此样本情况下,对b1和b2给定无效值,其全部是用于B的“可访问”值。
Figure 2011101623504100002DEST_PATH_IMAGE035
表17
还如在图6的虚拟实体图T20所示,从数据库中移除B的这个实例,即具有b_pk=51的一个。
示例10:编辑枢轴链接副实体
在本示例中,主实体A具有枢轴链接副实体B,其具有返回链接副实体C,如图7的虚拟实体图T21所示的。从实体A获取性质a1、a2、a3和a_pk,从实体B获取性质b1和b_pk,从实体C获取性质c1、c2和c_pk。用于副实体B的枢轴值是X和Y。
部分实体处理顺序是:首先主实体A,然后副实体B,然后副实体C。
样本情况10.1:创建
在此样本情况下,对a1、a2、a3、Xb1、Xc1、Xc2、Yb1、Yc1和Yc2指定新值。先前的值全部是无效的,并且所有唯一密钥也是无效的。
Figure 2011101623504100002DEST_PATH_IMAGE037
表18
如下创建用于部分实体A、B和C的新实例:首先是A的新实例,然后是对其进行参考的B的两个新实例(一个用于枢轴值X且一个用于枢轴值Y),最后是C的两个新实例,每个参考其“父”B实例,如图7的虚拟实体图T22所示。
样本情况10.2:部分创建
在此样本情况下,对a1、a2、a3、Xb1、Xc1和Xc2指定新值。先前的值全部是无效的,并且所有唯一密钥也是无效的。
Figure 2011101623504100002DEST_PATH_IMAGE039
表19
如下创建新实例:首先是实体A的新实例,然后是对其进行参考的实体B的新实例(对于枢轴值X而言)且最后是对其“父”实体B实例进行参考的实体C的新实例,还如图7的虚拟实体图T23所示。
样本情况10.3:部分编辑
在此样本情况下,对性质Xc1和Xc2给定新值。
Figure 2011101623504100002DEST_PATH_IMAGE041
表20
只需要更新对应于枢轴值X的实体C的实例,还如图7的虚拟实体图T24所示。
删除方法
除主根实体之外,仅返回和枢轴链接部分实体受到聚合删除方法的影响。
再次地,按照从数据依赖关系导出的顺序来处理部分实体,其被相对于编辑方法情况反向:
—如果用返回或枢转链接将子实体C链接到父实体F,则在父实体F之前处理子实体C。
—如果用直接链接将子实体C链接到父实体F,则子实体C及其副实体不受删除的影响。
示例11:删除直接链接级联实体
如图8的虚拟实体图T25所示,删除由级联直接链接实体组成的虚拟实体意图仅删除根实体实例,在本示例中为实体A,如图8的虚拟实体图T26所示。
示例12:删除返回链接实体
在返回链接实体的被参考实体之前将其删除。例如,对于图8的虚拟实体图T27所示的示例中的虚拟实体而言,首先删除实体B,然后是实体A,如图8的虚拟实体图T28所示。
插件
在本发明的实施例中,可以定义一个或多个操作插件以便对数据访问方法的行为进行定制。插件是实现定制动作的外部软件模块。
可以针对被关联到一个或多个实体方法的一个或多个实体和虚拟实体来定义插件。
图9是示意性地举例说明根据提出的发明的示例性实施例的用于实体操作的插件执行的示例的流程图。
可以根据三种方式将插件分配给实体操作。
根据第一方式,将全局插件分配给给定实体的所有实例上的特定操作的执行。
根据第二方式,将上下文插件分配给所有实体实例上的操作的执行,其上下文、即所有实体展示的特定性质与给定值匹配。
根据第三方式,将实例插件分配给特定实例上的操作的执行。
如图9的流程图中所示,实例插件超越上下文插件,上下文插件又超越全局插件。
此外,在发明实施例中,相对于默认操作,可以定义具有不同作用类型的插件。
根据第一作用类型,可以定义作为在默认操作之前执行的插件的“前”插件。
根据第二作用类型,可以定义作为代替默认操作执行的插件的“跳过”插件。
根据第三作用类型,可以定义作为在默认操作之后执行的插件的“后”插件。
可以以完全独立的方式来配置前、跳过和后插件,即,其不是相互排斥的,还如图9的流程图所示。
在发明实施例中,在架构与外部插件之间交换的数据可以方便地包括流程控制参数,其可以由插件来设置以影响执行流程。
有利地,用定义插件的可能性,可以以容易且灵活的方式针对特定解决方案的需要定制对数据的任何操作。
示例13:“跳过”插件
在本示例中,让我们假设针对Entry.Create()方法定义称为“CustomEntryCreation(定制条目创建)”的全局“跳过”插件。用此类插件,对实体Entry(条目)的任何实例上的Creat()方法的每个明示或暗示(即聚合写)调用决定CustomEntryCreation(定制条目创建)插件,使得默认实现被忽视。
示例14:“后”插件
在本示例中,让我们假设称为“EntryCreationTrack(条目创建跟踪)”的上下文“后”插件被关联到用于具有“上下文”性质的给定值的实例的Entry.Create()方法。例如,上下文性质可以识别例如由特定用户或由特定应用程序页面创建的实体。此类“EntryCreationTrack(条目创建跟踪)”插件随后在每次已经在指定上下文中创建了条目时被调用。其目的可以是操作时间、实例数据和结果的跟踪。
示例15:“前”插件(“pre”plugin)
在本示例中,让我们假设针对Entry.Create()方法定义称为“EntryValidation(条目确认)”的全局“前”插件。其目的是在条目实际上被写入数据库之前检验条目的有效性。如果数据不是有效的,则可以使得EntryValidation(条目确认)插件能够中断该操作并报告警告。
动态实体的生成
DAL层级上的实体可以是标准或定制的。标准实体也称为产品或基本实体,并且是具有一般有效性的库实体。例如,在MES领域中,可以展示在组件中组织的一组标准MES实体以处理最常见的业务对象。
通常,标准实体只能覆盖特定系统数据模型的一部分。
常常要求在数据层级中集成通常被存储在定制数据库表格中的其它信息。
有利地,在发明实施例中提供了定义针对特定定制应用生成的定制实体(在这里称为动态实体)的可能性。
方便地,此类动态实体生成功能允许创建具有标准实体的相同界面的定制业务对象。
第一个优点是“外部”界面是相同的,即动态地生成的实体能够被开发者及其它软件模块和工具用作标准实体。
第二个优点是“内部”界面也是相同的,即能够在虚拟实体描述符中使用动态地生成的实体,如上文在示例6中所述。
通过定义动态实体描述符、保持关于要生成的实体的信息的对象来获得动态实体生成。
图10是示意性地举例说明根据本发明的示例性实施例的包含在动态实体描述符DED的结构中的信息的类型的图示。
由动态实体描述符DED保持的信息是以下各项:
—关于在数据访问层中如何表示实体的信息ERI,例如,类名、性质名和类型、特定属性CI;
—关于在储存库DB中如何存储实体数据的信息ESI,例如数据库表格、视图、字段/表达式。此类信息被用来自动地实现组成架构要执行读取操作所需的内部界面的所有方法。
—关于将如何对实体进行写入的信息EWI,即调用哪些外部提供者WOP以执行写操作。写提供者可以选自架构中可用的通用提供者,例如对数据库表格执行INSERT(插入)、UPDATE(更新)和DELETE(删除)的简单提供者,以及特别针对特定实体开发的定制提供者。
除上述本发明的实施例之外,本领域的技术人员将能够得出多种其它布置和步骤,其(如果在本文中未明确地描述)无论如何落在所附权利要求的范围内。
所使用的缩写的列表:
BL        业务逻辑
DAL      数据访问层
DB        数据库
CRUD   创建读取更新删除
MES     制造执行系统
XML   可扩展标记语言

Claims (15)

1. 一种用于访问数据访问层的实体的方法,所述数据访问层遵循实体关系模型,其中根据实体及其之间的关系来描述数据;其中,为实体提供CRUD界面;所述方法的特征在于其包括以下步骤:
a)定义元实体,在下文中称为虚拟实体,作为一个或多个实体的各部分的组合物而得到;
b)经由虚拟实体描述符将虚拟实体描述为其中经由链接以父子结构来连接实体的分级结构;在所述虚拟实体描述符中,指定从每个实体获取哪些性质以形成虚拟实体的部分实体;
c)在虚拟实体上提供CRUD界面;
d)在运行时间,经由其CRUD界面来访问虚拟实体,所述访问被实现为对访问组成虚拟实体的实体的CRUD方法的一组调用。
2. 根据权利要求1所述的方法,其中,连接父和子实体的链接选自由以下各项中的一个或多个组成的组:
—直接链接,其中,所述父实体包括参考子实体的一组性质;
—返回链接,其中,所述子实体包括参考父实体的一组性质;
—枢轴返回链接,其中,针对给定枢轴标识符的每个期望值将一组子实体性质复制一次。
3. 前述权利要求中的任一项的方法,其中,至少一个子实体是可选副实体,意味着父实体与子实体之间的关系本身不是强制性的。
4. 前述权利要求中的任一项的方法,其中,至少一个直接链接子实体是查找副实体,意味着至少一组性质被标记为唯一地识别副实体实例的标识符,并且所述查找副实体被用于基于其标识符组对特定实例进行定位,并且用于从储存库读取其性质,使得在父实体中能够更新参考该组的链接性质。
5. 前述权利要求中的任一项的方法,其中,关于实体的信息被存储在储存库中,其是数据库,优选地是关系数据库。
6. 前述权利要求中的任一项的方法,其中,步骤d)的虚拟实体的访问是经由读取方法或经由写入方法。
7. 权利要求6的方法,其中,虚拟实体上的读取方法被实现为组成虚拟实体的实体上的读取方法的调用。
8. 根据前述权利要求中的任一项所述的方法,其中,所述虚拟实体实例的集合被实现为由以下各项中的一个或多个组成的组的选择:
—“.NET”标准对象;
—被束缚于Microsoft ObjectDataSource的Microsoft DataSet和/或DataTable对象;
—适合于向第三方ASP.NET控制提供数据的其它标准表示。
9. 权利要求6的方法,其中,所述写入方法是编辑方法,其中:
—对虚拟实体的分级结构执行检验以便判定其每个部分实体的处理顺序:
—如果用直接链接将子实体链接到父实体,则在父实体之前处理子实体;
—如果用返回链接将子实体链接到父实体,则在父实体之后处理子实体;
—其中,每个部分实体的处理包括以下子步骤:
—检查部分实体以检验其是否将被修改;
—如果其将被修改:
              · 从数据库检索最新完整实体实例;
              · 在当前部分实体的分级位置上执行检验:
                     —如果当前部分实体是根实体或被直接链接到其父:如果被标记为被查找,通过其查找标识符之一或通过其唯一密钥之一来进行检索;
                     —如果其被成功地检索,用数据库上的新值来更新它,除非其为未被标记为“可更新”的查找实体;否则,
              · 如果当前部分实体被返回链接到其父:如果当前部分实体不是可通过唯一密钥检索的,创建具有新值的实体实例;否则如果其可访问性质的所有新值是无效的,从数据库去除整个实体实例,否则如果可访问性质的至少一个新值不是无效的,则用新值来更新当前部分实体。
10. 权利要求6的方法,其中,所述写入方法是删除方法,其中:
—如果用返回链接将子实体链接到父实体,则之前删除子实体并之后删除父实体;否则,
—如果用直接链接将子实体链接到父实体,则只删除父实体。
11. 根据前述权利要求中的任一项所述的方法,其中,对于至少一个实体的CRUD界面的方法中的至少一个而言,关联将在运行时间执行的至少插件,其中,插件是实现定制动作的外部软件模块。
12. 根据权利要求11所述的方法,其中,所述至少一个实体是虚拟实体。
13. 根据前述权利要求中的任一项所述的方法,其中,所述实体是定制实体,用包含在动态实体描述符结构(DED)中的信息以动态的方式生成;其中,所述动态实体描述符结构(DED)包括以下信息:
—关于在数据访问层中如何表示实体的信息(ERI);
—关于在储存库(DB)中如何存储实体数据的信息(ESI);
—关于将如何对实体进行写入并调用哪些外部提供者(WOP)以执行写入操作的信息(EWI)。
14. 一种具有用于执行根据权利要求1至13中的任一项所述的方法的步骤的装置的系统。
15. 权利要求1至13中的任一项所述的方法,其特征在于其在软件中实现。
CN201110162350.4A 2010-06-17 2011-06-16 访问数据访问层的实体 Expired - Fee Related CN102289448B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10166330.0 2010-06-17
EP10166330A EP2397939A1 (en) 2010-06-17 2010-06-17 Accessing entities of a data access layer

Publications (2)

Publication Number Publication Date
CN102289448A true CN102289448A (zh) 2011-12-21
CN102289448B CN102289448B (zh) 2016-02-24

Family

ID=42562747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110162350.4A Expired - Fee Related CN102289448B (zh) 2010-06-17 2011-06-16 访问数据访问层的实体

Country Status (3)

Country Link
US (1) US8762421B2 (zh)
EP (1) EP2397939A1 (zh)
CN (1) CN102289448B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016150139A1 (zh) * 2015-03-23 2016-09-29 中兴通讯股份有限公司 一种建立网络业务实例的方法和装置
CN111159485A (zh) * 2019-12-30 2020-05-15 科大讯飞(苏州)科技有限公司 尾实体链接方法、装置、服务器及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098515B2 (en) * 2011-11-15 2015-08-04 Sap Se Data destruction mechanisms
US9268533B2 (en) 2013-01-30 2016-02-23 International Business Machines Corporation Method and apparatus for enabling layered property definition in traditional and cloud computing environments

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028545A1 (en) * 2001-08-01 2003-02-06 Yaoping Wang System and method for managing object to relational one-to-many mapping
US20040181440A1 (en) * 2003-03-12 2004-09-16 Adam Yeh Automatic generation of a dimensional model for business analytics from an object model for online transaction processing
US20060020586A1 (en) * 2000-03-03 2006-01-26 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
EP1696352A2 (en) * 2005-02-28 2006-08-30 Microsoft Corporation Platform for data services across disparate application frameworks
CN101149750A (zh) * 2007-10-29 2008-03-26 浙江大学 一种基于元数据的数据资源整合方法
CN101233505A (zh) * 2005-07-29 2008-07-30 微软公司 从关系数据库中检索对象并将其保存到关系数据库

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004010319A2 (en) * 2002-07-22 2004-01-29 Thought, Inc. Dynamic object- driven database manipulation and mapping system
US7904487B2 (en) * 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7526503B2 (en) * 2005-08-15 2009-04-28 Microsoft Corporation Interactive schema translation with instance-level mapping
US7647298B2 (en) * 2006-03-23 2010-01-12 Microsoft Corporation Generation of query and update views for object relational mapping
US20100175044A1 (en) * 2009-01-07 2010-07-08 Infosys Technologies Limited Method for creating software factory for developing j2ee applications

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060020586A1 (en) * 2000-03-03 2006-01-26 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
US20030028545A1 (en) * 2001-08-01 2003-02-06 Yaoping Wang System and method for managing object to relational one-to-many mapping
US20040181440A1 (en) * 2003-03-12 2004-09-16 Adam Yeh Automatic generation of a dimensional model for business analytics from an object model for online transaction processing
EP1696352A2 (en) * 2005-02-28 2006-08-30 Microsoft Corporation Platform for data services across disparate application frameworks
CN1828527A (zh) * 2005-02-28 2006-09-06 微软公司 用于跨不同应用程序框架的数据服务的平台
CN101233505A (zh) * 2005-07-29 2008-07-30 微软公司 从关系数据库中检索对象并将其保存到关系数据库
CN101149750A (zh) * 2007-10-29 2008-03-26 浙江大学 一种基于元数据的数据资源整合方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016150139A1 (zh) * 2015-03-23 2016-09-29 中兴通讯股份有限公司 一种建立网络业务实例的方法和装置
CN111159485A (zh) * 2019-12-30 2020-05-15 科大讯飞(苏州)科技有限公司 尾实体链接方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
US8762421B2 (en) 2014-06-24
EP2397939A1 (en) 2011-12-21
CN102289448B (zh) 2016-02-24
US20110314062A1 (en) 2011-12-22

Similar Documents

Publication Publication Date Title
Banerjee et al. Semantics and implementation of schema evolution in object-oriented databases
US8117535B2 (en) System and method for creating dynamic folder hierarchies
US8694557B2 (en) Extensibility of metaobjects
US9396284B2 (en) Method and system for implementing efficient updatable relational views over XML data
KR20010012305A (ko) 정보처리 시스템내 데이터를 저장하고 조작하기 위한시스템 및 방법
WO1999039284A1 (en) A method for synchronizing the schema of a database with its representation in an object-oriented repository
US20070083543A1 (en) XML schema template builder
Grandi Dynamic class hierarchy management for multi-version ontology-based personalization
JP5090481B2 (ja) データモデリング方法及び装置及びプログラム
CN102289448B (zh) 访问数据访问层的实体
WO2002103573A1 (en) A flexible virtual database system including a hierarchical application parameter repository
Bychkov et al. Methods and tools for automation of development of information systems using specifications of database applications
Monk A model for schema evolution in object-oriented database systems
Jackson Thirty years (and more) of databases
Choi et al. Interoperability between a relational data model and an RDF data model
Krótkiewicz Formal definition and modeling language of association-oriented database metamodel (AssoBase)
Kaur et al. PostgreSQL Development Essentials
Aithal et al. Disconnected Data Access Architecture using ADO. NET Framework
US20240134883A1 (en) Data object management using data object clusters
JP2005202612A (ja) データベース生成プログラム作成装置
Karanikolas et al. CUDL language semantics: Updating FDB data
Liu Maintaining Database consistency in the Presence of Schema Evolution
SRAI et al. INTEGRATION OF THE MDA APPROACH IN DOCUMENT-ORIENTED NOSQL DATABASES, GENERATION OF A PSM MODEL FROM A PIM MODEL
Kuno View materialization issues in object-oriented databases
van Leuken et al. Standardization Concepts in the NELSIS CAD Framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160224

Termination date: 20190616