CN107533559A - 数据结构、用于填充数据结构的模型以及使用数据结构对处理装置进行编程的方法 - Google Patents

数据结构、用于填充数据结构的模型以及使用数据结构对处理装置进行编程的方法 Download PDF

Info

Publication number
CN107533559A
CN107533559A CN201680021047.3A CN201680021047A CN107533559A CN 107533559 A CN107533559 A CN 107533559A CN 201680021047 A CN201680021047 A CN 201680021047A CN 107533559 A CN107533559 A CN 107533559A
Authority
CN
China
Prior art keywords
entity
attribute
record
data structure
software
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
CN201680021047.3A
Other languages
English (en)
Inventor
B·塞德尔
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.)
Miley M Bal Intellectual Property Ltd
Original Assignee
Miley M Bal Intellectual Property Ltd
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
Priority claimed from AU2015900480A external-priority patent/AU2015900480A0/en
Application filed by Miley M Bal Intellectual Property Ltd filed Critical Miley M Bal Intellectual Property Ltd
Publication of CN107533559A publication Critical patent/CN107533559A/zh
Pending legal-status Critical Current

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
    • 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/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • 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/23Updating
    • G06F16/235Update request 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
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Abstract

一种用于包括属性表的软件的数据结构。所述属性表的每个记录包括附加信息,使得所述软件的应用程序代码仅能够通过所述数据结构中所引用的属性而引用与如存储在数据库架构中的属性相关联的数据值。以此方式,数据库架构从而能够独立地确定如何实施属性记录。

Description

数据结构、用于填充数据结构的模型以及使用数据结构对处 理装置进行编程的方法
技术领域
本发明涉及一种数据结构、一种用于填充数据结构的模型以及一种使用数据结构对处理装置进行编程的方法。所述数据结构促进应用程序代码与包含应用程序的一般操作所需的数据的数据库架构的独立性。所述模型提供了一种识别和合理化应用程序的一般操作所需的数据的方法,其方式是,促进容易地填充上述数据结构,以便提供与应用程序代码的这种独立性。
背景技术
以下对本发明的背景的讨论旨在促进对本发明的理解。然而,应当理解,所述讨论不是承认或认可所提及的任何材料在本申请的优先权日在任何司法管辖权内已公布、是已知的或是公知常识的一部分。
计算机软件的设计从一个想法开始。这个想法背后的功能可能是简单的或复杂的,但对于软件开发来说,几乎不言自明的是,由于“功能蔓延”,最终软件的功能通常与最初的想法背后的功能大不相同。即使在“最终确定”时,由于需要修复错误和/或需要引入另外的功能,计算机软件还常常会被进一步更改。
“功能蔓延”和最终确定后的修改都给设计师和开发人员造成了问题。设计师需要能够设计期望的更改,而不会对现有功能产生不利影响或不会将新的错误引入到软件中。同时,新的设计在用于创建软件或期望在其上运行软件的操作系统的编程语言的约束内在技术上必须是可行的。
当软件相对较小时,上述挑战通常不会引起问题。但是,如果软件具有相当大的尺寸,那么软件数据库架构和应用程序代码的实际尺寸和复杂程度不仅可能抑制错误修复或新功能的引入,而且可能阻止对所述架构或代码的优化。
为了进行详细说明,更改数据库架构和应用程序代码可能不再能够访问数据库表,或者可能访问不正确的数据。更改应用程序代码,使得其需要访问新数据或需要更改现有数据,并且应用程序代码可能需要修改数据库架构。即使不需要更改数据库架构,至少这样的更改要求:
·必须验证引用新数据或已更改数据的应用程序代码的所有其它元素,以确保所有引用与彼此和数据库架构一致;以及
·在每个数据输入点处,数据接受相同或至少一致的有效性检查。
由于应用程序代码和数据库架构之间的这种相互关系,设计人员经常设法牺牲一者来优化另一者。
因此,本发明的目的是创建一种设计软件的方法,其打破了应用程序代码和数据库架构之间的这种相互依赖性。
数据库设计
为了促进对本发明的正确理解,重要的是理解如下所述的数据库设计的某些基本原理。
历史上,数据库的主要建模工具一直是实体关系模型(“ERM”,也称为实体关系图)。ERM陈述了作为预期软件参与者的每个“实体”和其与每个其它“实体”的关联(如果有)(这种关联被称为“关系(relationships)”)。在这样做时,其预先假设三种可能的关系:
·第一“实体”与另一个“实体”具有单一关联(也称为1:1关系);
·第一“实体”可能与另一个“实体”的多个实例相关联(也称为1:N关系);或者
·第一“实体”的多个实例可能与另一个“实体”的多个实例相关联(也称为M:N关系)。
然后,每个“实体”和其相关联的关系的识别形成数据库层的初始架构。
然后寻求对初始架构利用诸如规格化形式等技术来优化。但是,此优化仅适用于初始架构——对所述架构的任何后续修改都可能导致所述架构不再符合具有相关联性能结果的一个或多个规格化形式。
发明内容
贯穿本文档,除非另有相反指示,否则术语“包括”、“由...组成”等将被解释为非穷尽的,或者换句话说,意指“包括但不仅限于”。
根据本发明的第一方面,存在一种包括属性表的软件数据结构,其中属性表的每个记录包括附加信息,使得软件的应用程序代码仅能够通过数据结构中所引用的属性来引用与如存储在数据库架构中的属性相关联的数据值,所述数据库架构从而能够独立地确定如何实施属性记录。
软件还可以包括实体表,属性表的每个记录也引用实体表的记录,数据库架构可操作以独立地确定关于实体记录和属性记录存储的数据之间的关系的实施。
优选地,数据结构在第三数据存储中实施。
理想情况下,实体表的第一记录是对实体表和属性表的存在的引用。
属性表中的每个记录优选地包括定义布尔表达式或函数的字段。此布尔表达式可以包括对属性表中的属性的引用,所述属性本身引用另外的布尔表达式。
数据结构还可以包括链接到第一字段表中的一组记录的表单表,该组记录中的每个记录与属性表中的记录相关联,使得所述应用程序代码能够使用表单表和第一字段表中所包含的数据,以在需要时创建期望的表单。
数据结构还可以包括报告表,所述报告表链接到第二字段表中的一组记录,该组记录中的每个记录与属性表中的记录相关联,使得所述应用程序代码能够使用报告表和第二字段表中所包含的数据,以在需要时创建期望的报告。
在报告表或表单表包括数据结构的一部分的情况下,数据结构还可以包括格式化表,所述格式化表中的每个记录包括关于表单表中的记录或报告表中的记录的元素的格式化信息。
数据结构还可以包括用于记录应用程序行为细节的一个或多个表。
属性表还可以包括字段,所述字段的值向应用程序代码指示是否允许其更改该属性的数据值。此外,属性表还可以包括字段,用于评估字段值的布尔表达式表示该属性的数据完整性规则。
根据本发明的第二方面,存在一种填充根据本发明的第一方面的软件的数据结构的方法,所述方法包括以下步骤:
识别与软件相关的实体;
识别每个所识别实体的属性;
识别所识别实体之间的关系;
修改所有所识别关系,使得所识别实体之间仅存在1:N关系;
向1:N关系的N侧上的每个所识别实体添加属性,作为来自1:N关系的另一个所识别实体的记录的引用值;以及
向表示根据前述步骤识别的每个实体的实体表添加新记录;
向表示根据前述步骤识别的每个属性的属性实体添加新记录,并将所述属性与匹配识别为具有所述属性的实体的实体表的对应记录相关联。
所述方法还可以包括修改所有所识别关系使得在所识别实体之间仅存在1:N关系的步骤,所述步骤包括通过将两个所识别实体组合成单个实体来消除所识别实体之间的所有1:1关系的子步骤。
修改所有所识别关系使得在所识别实体之间仅存在1:N关系的步骤可以包括以下子步骤:通过以1:N关系回到原始的识别实体将关系变换到其自身的实体来消除所识别实体之间的所有M:N关系。
所述方法可以包括识别至少一个实体的至少一个汇总属性的步骤。类似地,所述方法还可以包括识别至少一个实体的至少一个简单属性的步骤。
所述方法还可以包括以下步骤:在实体表中创建与实体表相关的记录和与属性表相关的记录作为第一记录。
根据本发明的第三方面,存在一种记录在计算机可读介质上的软件,所述软件在由适当的处理装置执行时利用根据本发明的第一方面的数据结构。优选地,数据结构在第三数据存储中实施。
优选地,应用程序代码操作以执行初始化程序,所述初始化程序可操作以读取属性表的第一记录。另选地,应用程序代码操作以执行初始化程序,所述初始化程序可操作以读取实体表的第一记录,并且从而向应用程序代码提供实体表和属性实体的细节以供未来引用。
对来自数据库架构的数据值的查询可能需要对属性表的第一查询,所述查询的至少一些结果被用作对数据库架构的第二查询的基础。此外,可以通过转译器模块24进行第二查询,转译器模块24可操作以将第二查询转译为数据库架构的适当查询。
转译器模块24可以通过一组加载(load)函数来执行查询。每个加载函数可能需要执行属性表中识别的属性和记录的形式的参数。
从该组加载函数获得的信息用于:
确定数据库架构中的相关表;
确定数据库架构中的相关表的引用位置;以及
确定要返回的类型函数。
应用程序代码和数据库架构可以包括用于与数据结构同步的同步构件。
根据本发明的第四方面,存在一种记录在计算机可读介质上的软件,所述软件在由适当的处理装置执行时,允许用户通过图形用户界面来:
识别与所述软件的预期功能相关的实体;
识别每个所识别实体的属性;
识别所识别实体之间的关系;
修改所有所识别关系,使得所识别实体之间仅存在1:N关系;以及
向1:N关系的N侧上的每个所识别实体添加属性,作为回到1:N关系的另一个所识别实体的外键(foreign key),
所述软件还包括填充构件,所述填充构件可操作以将新记录添加到表示每个所识别实体的实体表,并且将新记录添加到表示每个所识别属性的属性实体并将所识别属性与匹配已经被识别有属性的实体的实体表的对应记录相关联。
附图说明
现在将参考附图,仅通过举例来描述本发明,其中:
图1是根据本发明的数据结构的示意图。
图2示出了图1所示的数据结构的说明性示例。
图3是示出了如何向图1所示的数据结构添加新属性的流程图。
图4是示出了如何从数据库架构中移除稀疏数据的流程图。
图5是示出了如何从数据库架构中移除重复数据的流程图。
图6是如图1所示的填充数据结构的方法的示意图。
图7至9是如图6所示的方法的步骤的说明性示例。
图10是根据本发明的第三实施方案的数据结构的示意图。
图11是用于促进如图6所述的填充数据结构的方法的软件的示意图。
定义
出于说明本发明的目的,在相关数据库的背景下描述以下实施方案。然而,本发明可以容易地在对象图数据库或二值或三值存储的背景下实施。
在后面这些实施方式以及将来可能开发的其它实施方式的背景下——并且出于本说明书和所附权利要求的目的——本领域技术人员应当理解,对术语的引用应当如下理解:
记录=一组相关联的值。每个记录通常与表相关联,并且该组相关联值中的每个相关联值与该表的字段相关。从应用程序代码的角度来看,一组记录也可以是表的虚拟表示。
表=如由数据库架构实施的底层记录的抽象排序规则。为了便于理解表,表通常以视觉方式表示为字段表(赋予每个字段的标签通常描述为表的行标题)。
字段=数据记录内的数据值的标签。每个字段是便于理解数据值(例如字符串、整数值、布尔值)的定义类型。
实体=表的虚拟表示,可由应用程序代码访问。每个实体必须在本发明内实施为主实体内的记录。
属性=字段的虚拟表示,可由应用程序代码访问。每个属性在本发明内被实施为属性实体内的记录。属性可能具有存储在基础数据库架构中或根据相关函数计算的固定值。
具体实施方式
根据本发明的第一方面,存在用于软件12的数据结构10。在本实施方案中,数据结构10包括两个数据库表14、16。以下将第一数据库表14称为主实体14。以下将第二数据库表16称为属性实体16。属性实体16的每个记录必须与主实体14中的记录相关联。
使用数据库引擎来实施主实体14和属性实体16的数据库在下文被称为第三数据存储18。
主实体14和属性实体16在第三数据存储18中实施。第三数据存储18是具有特性并执行类似于数据库引擎的操作的程序。第三数据存储18提供可由应用程序代码22使用的一组公共函数。由这些公共函数定义的接口包括更新机制来控制和改变应用程序代码22的行为。第三数据存储18必须驻留在被指定用于执行相关联程序组的处理装置(未示出)的工作存储器内。
主实体14和属性实体16的实际记录包含表示应用程序代码22和数据库架构20之间的可能交互的数据值。特别是数据值表示应用程序代码22可以请求哪些数据。
应当注意,并不意图使第三数据存储18包含关于如何在技术层面访问或修改数据库架构20中的数据的信息。而是意在包含关于可以访问或存储数据库架构20中的哪些数据的信息。
第三数据存储18还包含定义引导程序的一组可执行指令。引导程序仅在建立应用程序代码22和第三数据存储18之间的通信链路时执行。
应用程序代码22是用于完成各种任务的一组模块。虽然该组模块中的模块会变化,但是该组必须包括转译器模块24。
转译器模块24将加载函数和提交(commit)函数暴露给第三数据存储18。加载函数要求向其传递两个参数。第一参数是属性,而第二参数是记录。加载函数返回对象。
下面将更详细地描述提交函数。
应当注意,转译器模块24是应用程序代码22的需要基础数据库架构20所特有的信息的唯一元素。因此,转译器模块24旨在形成用于生成应用程序代码22的应用程序环境(未示出)的标准库的一部分。以下将进一步描述转译器模块24的作用。
在执行应用程序代码22时,所执行的第一个任务是运行连接模块(来自该组模块)以建立与第三数据存储18的通信链路。一旦建立了通信链路,第三数据存储18便执行引导程序。
引导程序的执行操作以通过新建立的通信链路将与表示主实体本身和属性实体两者的主实体相关联的记录传送到应用程序代码22。这些通信记录在下文被称为初始化记录。
然后,应用程序代码22必须在属性实体16中创建三个新属性。注意,为了做到这一点,应用程序代码22必须至少知道第三数据存储18中存在属性实体16。
所创建的第一属性是查询属性。所述查询属性引用第三数据存储18的本地化查询函数。
第二和第三属性是恒等函数。虽然所述函数的实施可能不同,但每个恒等函数必须评估为真实的布尔值。第二属性和第三属性之间的差异在于第二属性是与主实体14相关联的属性,而第三属性是与属性实体16相关联的属性。
第一和第三属性在属性实体16内被定义为属性实体16的属性。第二属性在属性实体16内被定义为主实体14的属性。
然后可以通过以下函数检索主实体14和属性实体16内的记录:
LOAD(第一属性,第二属性)
{以获得主实体14的所有记录}
LOAD(第一属性,第三属性)
{以获得属性实体16的所有记录}
此处注意,对加载函数的引用不是对转译器模块24的加载函数的引用。而是,其是对第三数据存储18的加载函数的引用。
然后,由应用程序代码22使用从这两个命令检索的记录来创建引用应用程序代码22可以请求的那些数据(即属性)的数据模型。该数据模型寄存给应用程序代码22的工作存储器。
理想情况下,该组模块中的剩余模块没有或具有很少的“硬编码”商业逻辑。相反,本发明的意图是这些模块22的其余部分包括对第三数据存储18的查询和数据调用(诸如更改数据值、创建记录或删除记录的命令)。每个数据调用通常对从第三数据存储18的先前查询接收到的数据值或环境因素(诸如外部输入)作出反应。
在可以对第三数据存储18进行查询之前,查询标准必须被解析为布尔值。在查询标准是基于其本身记录布尔值的属性的情况下,这不会产生任何问题。但是,在属性不记录布尔值的情况下,则必须创建临时布尔属性。
根据预期查询的函数来定义临时布尔属性。下面陈述了如何定义最常见的预期查询的示例。
比较器函数
比较器函数包括对属性是否具有等于、超过或小于指定值的数据值的检查。
促进比较器函数查询的临时布尔属性包括称为右手(Right Hand)、左手(LeftHand)和运算符(Operator)的三个元素。这些元素将根据以下表达式来引用值:
[左手][运算符][右手]=布尔值
在这种方法中,左手或右手元素中的至少一个必须是属性实体16中所记录的属性。在左手和右手元素两者都为记录在属性实体16中的属性的情况下,它们必须与主实体14的相同记录相关联。
“与(AND)”/“或(OR)”函数
促进“与/或”函数查询的临时布尔属性包括两个元素:运算符和列表(List)。列表元素由一组数据值组成,并且通常通过执行先前查询来获得。所述元素用于评估为布尔值,如下:
[列表1][运算符][列表2][运算符]……[运算符][列表N]=布尔值
基于范围的函数
促进基于范围的函数查询的临时布尔属性包括称为右手、中间(Mid)、左手和运算符的四个元素。这些元素将根据以下表达式来引用值:
[左手]<=[中间]<=[右手]=布尔值
在本方法中,中间元素必须是属性实体16中记录的属性。如果左手元素或右手元素之一也是记录在属性实体16中的属性,那么它们也必须与主实体14的与中间元素相同的记录相关联。
阶跃函数
阶跃函数允许通过如AER中所描述的N:1关系检索值。阶跃函数使用两个属性,即链接值和远程值,其中链接值包含来自实体的记录,并且远程值属于该实体。使用C的指针取消引用符号:
[链接值]->[远程值]=值
汇总函数
汇总属性允许对来自如AER中所描述的相关联的1:N关系的多组值进行汇总(见下文)。记录组是使用来自返回到原始表的相关表的链接字段而从逆相关实体中获得。然后,在组中发生的每个记录都具有使用汇总字段从中提取的值。然后将这组值传递给汇总函数,以使用如下公式产生单个值:
汇总函数([链接字段],[汇总字段])=值
对于本领域技术人员应当显而易见的是,如何修改上述基于函数的查询以实施其它类型的基于函数的查询。
注意,在几乎所有情况下,临时布尔属性必须被定义为主实体14中与在布尔表达式中使用的定义属性相同的实体的属性。
然后,查询进行到第二阶段,其中查询使用临时布尔属性和查询属性。查询属性优选地是与用于促进加载初始化记录的相同的查询属性。
查询属性通过将临时布尔属性作为执行参数提交来控制查询函数的执行。在理论层面上,查询函数然后确定与临时布尔属性相关联的实体。一旦确定,查询函数迭代相关实体的记录,解析如由临时布尔属性定义的布尔表达式。如果布尔表达式的解产生“真实(TRUE)”评估,则将所评估的记录添加到构成查询属性的数据值的所得记录组中。
由于相关联实体的记录被保存在数据库架构20中而不是保持在第三数据存储中,所以实现数据值的实际检索如下。在通过查询属性执行查询函数时,第三数据存储启动加载事件。加载事件的启动将信号发送回到转译器模块24以执行其加载函数。
如所讨论,转译器模块24的加载函数需要两个参数,即属性和记录。属性和记录参数必须与来自主实体14的相同记录相关联。
查询属性用作属性参数,而临时布尔属性用作记录参数。通过针对数据库架构的实施的一系列附加函数调用,转译器模块24按顺序操作来:
·确定与布尔表达式相关联的主实体14中的实体记录,所述实体记录是临时布尔属性的数据值。
·确定与确定的实体相关联的记录的数据库架构中的引用位置。请注意,在基于SQL的数据架构中,如上所述,这可能仅仅是对与所确定的实体相关联的表的名称的引用;以及
·基于对临时布尔属性的数据值的评估,确定要执行的函数类型。
然后,该信息用于构建由托管数据库架构20的数据库引擎使用的查询语言中的适当查询。然后执行构建的查询。
注意,由转译器模块24的加载函数返回的值的类型必须是与为属性参数定义的类型相同的类型。因此,如果执行的查询返回不同类型的值,那么将要求转译器模块24操纵返回的值以将其转换为适当的类型。
然后,应用程序代码可以通过取消引用由查询调用返回的引用来访问查询结果。
当应用程序代码22需要更新数据库架构20中的数据值时,这也通过转译器模块24来实现。应用程序代码需要以“更改(Change)”命令的形式将更新命令发送到第三数据存储。第三数据存储然后将“更改”命令重新格式化为转译器模块24的提交函数的调用。
在从第三数据存储接收到该调用时,转译器模块24解析所述调用并将其重新格式化为数据库引擎26的本机语言命令。然后,重新格式化的命令由数据库引擎26执行以更新适当的数据值。
如本领域技术人员可以理解的,当应用程序代码22需要创建新记录时遵循类似的程序,尽管在这种情况下所使用的命令是“插入”命令而不是“更改”命令。
由于应用程序代码22依赖于如由第三数据存储18中的主实体14和属性实体16形成的数据模型,所以对这些实体14、16的任何更改必须与应用程序代码22和数据库架构20同步。数据库架构20与第三数据存储18的同步并不意在完全同步。而是,其只是在有必要允许转译器模块24在未来进行适当的数据调用的程度上的同步。
在本实施方案中,为了促进同步,每当执行更改第三数据存储的操作时,记录更改的日期和时间。此外,应用程序代码22和数据库引擎26还记录他们最后与第三数据存储18同步的日期和时间。如果应用程序代码22在周期性检查期间确定第三数据存储18具有比针对应用程序代码22的同步记录的日期/时间晚的记录日期/时间,那么应用程序代码22立即开始与第三数据存储18的同步。遵循相同程序来确保数据库架构20的同步。
虽然上面的描述示出了由本发明使用来执行数据查询的技术方面,但是如所指示,本发明的目的是提供能够被修改而不会不利地影响应用程序代码22的数据库架构20。因此,以下描述说明如何在类似的技术层面上实现这点。
如果应用程序代码22需要附加属性,那么将新记录28添加到属性实体16。由于新记录28表示新属性,所以为避免混淆,我们以后将其称为“新属性(New Attribute)”。
除了描述新属性16之外,新记录28还指定与新属性16相关的主实体14中的实体。一旦新记录28被建立,第三数据存储18也操作以创建第三数据存储18的新的时间戳。
当数据库架构20针对第三数据存储18执行其下一个同步检查时,检索该时间戳的细节并将其与由数据库架构20记录的时间戳进行比较。如果第三数据存储的时间戳晚于由数据库架构20记录的时间戳,那么数据库架构20启动同步动作。在同步之后,数据库架构20操作以存储和引用与新属性相关联的数据值。作为数据库架构20的基础的数据库引擎26对于这样做具有自由裁量权。
例如,如果新属性被添加到由数据库架构20中的小表所表示的实体,那么新属性可以通过直接命令添加到数据库引擎26,以将该表的定义改变为包括新字段。但是,如果将新属性添加到由大表表示的实体,那么替代的动作过程是创建新表,所述新表仅包含新属性作为其字段以及原始表的外键。然后,新表与大表返回相关,使得每当对来自与大表相关联的实体的信息进行适当请求时,两个表被连接。
添加新属性的另一种替代方式是创建与同新属性有关的实体相关联的新表。新表具有与原始表相同的结构,即,其具有表示原始大表的所有属性的字段加上表示新属性的新字段。创建后,原始表的记录的所有数据值都用于填充新表的对应记录。这可以在定期排程的基础上或按批量更新进行。
当数据库引擎26注意到与属性相关联的字段的数据值被识别为填充在设置的阈值之下时(例如,总记录的0.1%具有与属性相关联的字段的数据值),数据库引擎26可以选择从其当前表中移除与属性相关联的字段并将其移动到新表中。然后,可在需要时通过数据库引擎26将新表连接到原始表。
注意,上述修改需要对数据库架构20进行类似的修改。然而,由于数据库架构20的独立性,不要求数据库引擎26向第三数据存储18或应用程序代码22通知已如何实施该更改。
本领域技术人员应当进一步理解,数据库架构18独立地用于优化其中存储的表和数据的能力允许更有效地使用计算资源。例如,在软件12在多个存储装置(未示出)上操作的情况下,很少被访问的数据可以通过将其存储在具有较慢访问速度的存储装置上而被有效地归档。这然后又释放了存储装置上的存储,使得被更频繁访问的数据/表具有更高的存取速度,并且从而软件12的整体性能更高。
根据本发明的第二实施方案,其中相似的附图标记表示相似的部件,存在用于填充数据结构10的模型200。以下将本发明的模型200称为“原子实体关系”(AER)模型。AER模型200是ERM模型的变体。
在AER模型200中,实体202、其属性204和其关系206全部根据标准ERM模型来识别。然而,一旦在AER模型200下识别了关系206,则它们接受进一步审查。
在两个实体202通过1:1关系206链接的情况下,以仅在一个实体存在的情况下才可以存在另一个实体为基础组合实体,并且因此所述实体是不正确地分为两个实体的相同实体202。
类似地,在两个实体202通过M:N关系206链接时,关系206本身被分成其自身的实体202。这是因为没有办法识别和操纵每个单独关系206。新实体202具有返回到M:N关系206的每个原始实体202的1:N关系206。
因此,在AER模型200中,存在的唯一关系206是1:N关系206。
为了促进通过建模器(未示出)对AER 200中的实体关系206的视觉理解,在图中将每个关系206称为单一实体202(即,承载1:N关系206的一个元素的实体202)的属性204。然后在这个属性204和相关实体202之间绘制箭头208。
AER模型200进一步允许简单和汇总属性210两者。简单属性210基于涉及赋予给至少一个或多个属性204的值的函数来赋予值。汇总属性210使用与另一实体202的关系206来产生相关实体202的列表。
在图6中示意性地示出了该AER模型200。
现在将在为第一实施方案给出的示例的背景下描述这个实施方案。
如第一实施方案所述,存在四个实体202,即:
·学生;
·科目;
·房间;以及
·大楼。
在标准ERM下,这些实体202之间的关系可以描述如下:
·许多学生可以报名参加很多科目(M:N关系);
·科目仅在一个房间内进行教学(1:1关系);以及
·一座大楼具有许多房间(1:N关系)。
类似地,这些实体202的唯一属性如下:
·学生-名,姓。
·科目-科目名称。
·房间-楼层,房间号。
·大楼-名称,地址。
在AER模型200下,第一步是识别并组合所有的1:1关系206。因此,实体202科目和房间现在被组合成单个实体202,科目。(参见图7)。
在科目和房间实体202的组合之后,所有M:N关系206被识别并分解成如图8所示的1:N关系206(即学生/科目关系)。这将看到将被形成的被称为报名参加的新实体202。实体科目202和所报名参加的新实体202之间的关系现在是1:N关系206(即,学生可以报名参加许多事物)。实体科目202和所报名参加的新实体202之间的关系现在也是1:N关系206(即,科目可以具有许多个报名参加)。
有理化(rationalised)关系206现在被转换成与它们相关的N侧实体202的属性204。这意味着AER模型200中的实体202的新属性204现在如下:
·学生-名,姓。
·科目-科目名称,楼层,房间号,大楼。
·报名参加-科目,学生。
·大楼-名称,地址。
图9中示出了该最终的AER模型200。
为了填充数据结构10,输入两个初始化记录作为数据结构10的主实体14中的第一记录。
第一初始化记录212用作自引用记录,即,其通知第三数据存储18内的主实体14的存在。第二初始化记录212是属性实体16的记录引用,即,其通知第三数据存储18内的属性表16的存在。
在记录了初始化记录212的情况下,主实体14的剩余记录用AER模型200中识别的实体202填充。属性实体16的剩余记录也用在AER模型200中识别的实体202的属性204填充。
为了确保所识别属性204保持其与所识别实体202的关联,属性实体16具有称为相关联实体(Associated Entity)的字段。由于在AER模型200中识别的每个属性204被记录在属性实体16中,相关联实体字段也用与所记录的属性204相关的实体202的细节填充。
如所填充,所得数据结构10如图2所示。
如果在稍后阶段进行更改,使得科目可以在一年中的不同时间被保持在不同房间中,那么需要对AER模型200进行更改。然而,被填充的数据结构10和应用程序代码22均利用科目.房间和科目.楼层属性204来将学生引导到正确的房间。
为了适应这些变化,实体房间202被恢复到AER 200中,作为与实体科目202的提议的1:N关系206(即,现在可以根据一年中的时间将房间用于多个科目)。新房间实体202具有如原始存在于科目实体202中的属性房间号和楼层204以及另外的属性日期范围204。
新属性204,房间,被引入到科目实体202中以实现1:N关系206的实施。
由于房间的使用是与时间相关的,所以现有房间和楼层属性204现在变成利用房间实体202和科目实体202之间的关系来确定其适当值的汇总属性210。
为了实施该更改并适当地填充数据结构10,将新房间实体202添加到第三数据存储18的实体表202。同时,正在被修改的属性被识别,并且相关联的外键被更改为新的表。在这种情况下,这意味着修改房间号属性,使得其与科目实体的关联被更改为与房间实体202的关联。
在第三数据存储18被适当地更新的情况下,数据库引擎26通过首先复制科目.楼层和科目.房间号字段的所有数据值来修改数据库架构20以变成房间表的对应字段的数据值。当随后对科目.楼层和科目.房间号字段进行数据调用时,将在当前日期和每个相关联的房间记录的数据范围字段的数据值之间进行比较,以识别正确的房间记录。然后返回正确的房间记录的数据值,以形成科目.楼层和科目.房间号字段的数据值。
根据本发明的第三实施方案,其中相似的附图标记表示相似的元件,存在数据结构300和实施数据结构300的软件302。数据结构300是如第一实施方案中所述的数据结构10的增强版本。
为了进行详细说明,第三数据存储18不仅包括主实体14和属性实体16,而且包括表单实体304和字段实体306。
表单实体304中的每个记录表示由软件302使用来从用户(未示出)获得数据的表单的类型。字段实体306中的每个记录表示用于以表单进行数据输入的字段。以类似于属性实体的实施的方式,字段实体306中的每个记录包括将字段记录链接到其相关联的表单记录的字段(属性)。然而,字段实体306中的每个记录还包括将字段记录与至少一个相关联的属性记录相链接的字段(属性)。
然后,应用程序代码22能够使用与表单和字段实体相关联的数据来在需要时创建表单。
本发明的其它实施方案可以以类似的方式形成。例如,需要由软件302生成的报告的细节可以以与上文对于表单描述的几乎相同的方式来实施。
在本发明的另外的实施方案中,软件302的其它数据驱动元素可以以与已经描述的类似的方式被原子化并被包括作为第三数据存储18内的表和/或属性。这些数据驱动元素的示例包括表单和报告格式以及应用程序行为。由于实施这些数据驱动元素的方法可以根据设计软件302的人而变化,所以在此将不提供对它们的实施的进一步解释。
根据本发明的第四实施方案,其中相似的附图标记表示相似的部件,存在包括图形用户界面402的软件400。图形用户界面402允许用户定义实体、属性和关系,并且然后根据如上所述的AER模型200来检查所定义的实体、属性和关系。
此外,软件400可以具有创建模块404。创建模块404操作以通过对图形用户界面402的适当操纵将由用户创建的AER图转译为第三数据存储18的主实体14和属性实体16所需的记录。
本领域技术人员应当进一步理解,上述发明不限于所描述的实施方案。特别地,在不脱离本发明的范围的情况下,可以进行以下修改和改进:
·虽然表、记录和字段通常与固定顺序的定义相关联,但是根据本发明所设想的实体和属性不具有定义的表示。因此,实体和属性的确切实施可以留给具体实施方式。
·属性实体16可以包括“更新”或类似命名的字段。该字段在理想情况下是布尔字段,并且向应用程序代码22提供关于是否允许其更改为所述字段记录的数据值的信息。因此,第三数据存储18能够将与某些属性相关联的数据值指定为只读。
·还可以将另外的字段添加到属性实体16以提供另外的功能或限制。例如,可以添加“条件(Conditional)”属性。“条件”属性在理想情况下是如已经描述的为属性设置数据完整性规则的类型的布尔表达式。因此,当布尔表达式评估为“真实(TRUE)”时,已知满足为适用属性设置的数据完整性规则。
·代替更改记录的使用,数据库架构20可以包含错误检测和处理系统来执行同步功能。在这种配置中,错误检测和处理系统可以访问或周期性地检查数据库架构20是否与第三数据存储18同步。如果系统检测到数据库架构20与第三数据存储18不同步,那么系统然后可以联系第三数据存储18以获得诸如丢失或以其它方式需要的信息以使数据库架构20恢复与第三数据存储18同步。
·另选地,数据库架构20可以各自记录表示它们正在操作的第三数据存储18的版本的值。当执行查询或者数据更改寻求永久提交时,进行记录的版本值与第三数据存储18的当前版本值之间的比较。如果比较显示记录的版本值低于第三数据存储18的当前版本值,那么数据库架构20查询第三数据存储18以获得诸如丢失或以其它方式需要的信息以使数据库架构20恢复与第三数据存储18同步。
·在另外的替代配置中,数据库架构20在执行查询或永久提交数据更改之前周期性地或根据需要联系第三数据存储18以获得最近更改记录30的细节。然后,这些更改记录30由数据库架构20进行评估,并且如果尚未被评估,则实施评估。在这样的系统中,一旦更改记录30已由数据库架构20读取,则第三数据存储18假定其知道更改记录30所引用的更改并且正在采取与该更改相关的适当动作。
·在第三数据存储18由相同应用程序代码22的多个实例访问并且应用程序代码22与第三数据存储18同步改变的情况下,可以修改任何前述的同步方法以适应多个实例。例如,可以实施版本控制系统,或者在更改记录30的情况下,在应用程序代码22的所有实例已经实施更改之前,可以不删除更改记录30。
·转译器模块24可以承担数据库引擎26的任何或所有责任。
·第四实施方案的软件400可以适于向开发人员提供另外的功能。例如,用户界面402可以允许开发人员设置用于确定汇总和简单属性的参数和函数。
·在替代配置中,可以省略通过单独程序执行初始化程序,有利于将主实体14的第一和第二记录硬编码到应用程序代码22中。但是,如果采用这种方法,那么硬编码的记录必须始终与主实体14的第一和第二记录一致。
·初始化记录可以包括超出主实体14和属性实体16的细节的另外的信息。例如,可以提供主实体14和属性实体16中的所有记录。
·本发明还可以通过省略主实体14来实施,有利于简单地实施属性实体16。然而,这种实施消除了主实体14-属性实体16结构的内建类型安全性,并且因此可能导致对应用程序代码22安排附加的错误检查要求。
·引导程序还可以形成操作第三数据存储18的软件的标准库的一部分。
·转译器模块24可以通过修改加载和提交函数来增强,以允许原子读取和写入(特别是在多用户环境中)。这可以通过向加载函数发送一组属性记录对以及向提交函数发送一组命令来实现。以这种方式,转译器模块24可以优化其对数据库架构20的查询,同时确保创建和提交的所有值在一个事务内发生。
·在多用户环境中,第三数据存储库18可以被保存在服务器(未示出)的工作存储器中,而在使用此第三数据存储18的应用程序代码22上工作的程序员可以在与此服务器进行数据通信的一个或多个客户端计算机上工作。
·本领域技术人员应当理解,对服务器、处理装置等的所有引用都是对如他们将所熟悉的这样的设备的引用。在处理装置的情况下,这包括桌上型计算机和笔记型计算机、平板计算机以及在一些情况下甚至是智能移动电话。
本领域技术人员应当进一步了解,本发明不限于上述实施方案。所描述的添加或修改在不相互排斥的情况下)可以组合以形成被认为在本发明的范围内的其它实施方案。

Claims (30)

1.一种包括属性表的软件的数据结构,其中所述属性表的每个记录包括附加信息,使得所述软件的应用程序代码仅能够通过所述数据结构中所引用的属性而引用与正如存储在数据库架构中的属性相关联的数据值,所述数据库架构从而能够独立地确定如何实施所述属性记录。
2.根据权利要求1所述的软件的数据结构,还包括实体表,并且其中所述属性表的每个记录引用所述实体表的记录,所述数据库架构可操作以独立地确定关于所述实体记录和属性记录存储的数据之间的关系的实施。
3.根据权利要求1或权利要求2所述的软件的数据结构,其中所述数据结构在第三数据存储中实施。
4.根据权利要求2或权利要求3所述的软件的数据结构,其中所述实体表的第一记录是对所述实体表和所述属性表的存在的引用。
5.根据前述权利要求中任一项所述的软件的数据结构,其中所述属性表中的每个记录包括定义布尔表达式或函数的字段。
6.根据权利要求4所述的软件的数据结构,其中所述布尔表达式包括对所述属性表中的属性的引用,所述属性本身引用另外的布尔表达式。
7.根据前述权利要求中任一项所述的软件的数据结构,还包括链接到第一字段表中的一组记录的表单表,该组记录中的每个记录与所述属性表中的记录相关联,使得所述应用程序代码能够使用所述表单表和第一字段表中所包含的数据,以在需要时创建期望的表单。
8.根据前述权利要求中任一项所述的软件的数据结构,还包括报告表,所述报告表链接到第二字段表中的一组记录,该组记录中的每个记录与所述属性表中的记录相关联,使得所述应用程序代码能够使用所述报告表和第二字段表中所包含的数据,以在需要时创建期望的报告。
9.根据权利要求7或权利要求8所述的软件的数据结构,还包括格式表,所述格式表中的每个记录包括关于所述表单表中的记录或所述报告表中的记录的元素的格式化信息。
10.根据前述权利要求中任一项所述的软件的数据结构,还包括用于记录应用程序行为细节的表。
11.根据前述权利要求中任一项所述的软件的数据结构,其中所述属性表还包括字段,所述字段的值向所述应用程序代码指示是否允许其更改该属性的所述数据值。
12.根据前述权利要求中任一项所述的软件的数据结构,其中所述属性表还包括字段,用于评估所述字段值的所述布尔表达式表示该属性的数据完整性规则。
13.一种填充根据权利要求1至12中任一项所述的软件的数据结构的方法,包括以下步骤:
识别与所述软件相关的实体;
识别每个所识别实体的属性;
识别所识别实体之间的关系;
修改所有所识别关系,使得所识别实体之间仅存在1:N关系;
向1:N关系的N侧上的每个所识别实体添加属性,作为回到所述1:N关系的另一个所识别实体的外键;以及
向表示根据前述步骤识别的每个实体的所述实体表添加新记录;
向表示根据前述步骤识别的每个属性的所述属性实体添加新记录,并将所述属性与匹配识别为具有所述属性的所述实体的所述实体表的对应记录相关联。
14.根据权利要求13所述的填充软件的数据结构的方法,其中修改所有所识别关系使得所识别实体之间仅存在1:N关系的所述步骤包括以下子步骤:通过将两个所识别实体组合成单个实体来消除所识别实体之间的所有1:1关系。
15.根据权利要求13或权利要求14所述的填充软件的数据结构的方法,其中修改所有所识别关系使得所识别实体之间仅存在1:N关系的所述步骤包括以下子步骤:通过以1:N关系回到原始的识别实体将关系变换到其自身的实体,来消除所识别实体之间的所有M:N关系。
16.根据权利要求13至15中任一项所述的填充软件的数据结构的方法,其中所述方法还包括识别至少一个实体的至少一个汇总属性的步骤。
17.根据权利要求13至16中任一项所述的填充软件的数据结构的方法,其中所述方法还包括识别至少一个实体的至少一个简单属性的步骤。
18.根据权利要求13至17中任一项所述的填充软件的数据结构的方法,其中所述方法还包括以下步骤:在所述实体表中创建与所述实体表相关的记录和与所述属性表相关的记录作为所述第一记录。
19.一种记录在计算机可读介质上的软件,其在由适当的处理装置执行时利用如权利要求1至12中任一项所述的数据结构。
20.根据权利要求19所述的软件,其中所述数据结构在第三数据存储中实施。
21.根据权利要求19或权利要求20所述的软件,其中所述应用程序代码操作以执行初始化程序,所述初始化程序可操作以读取所述属性表的所述第一记录。
22.根据权利要求19或权利要求20所述的软件,正如其最终引用权利要求2,其中所述应用程序代码操作以执行初始化程序,所述初始化程序可操作以读取所述实体表的所述第一记录,并且从而向所述应用程序代码提供所述实体表和所述属性表的细节以供未来引用。
23.根据权利要求19至22中任一项所述的软件,其中对来自所述数据库架构的数据值的查询需要对所述属性表的第一查询,所述查询的至少一些结果被用作对所述数据库架构的第二查询的基础。
24.根据权利要求23所述的软件,其中所述第二查询是通过转译器模块24进行,所述转译器模块24可操作以将所述第二查询转译为对所述数据库架构的适当查询。
25.根据权利要求24所述的软件,其中所述转译器模块24通过一组加载函数执行查询。
26.根据权利要求25所述的软件,其中所述加载函数接收如所述属性表中识别的属性和记录作为其执行参数。
27.根据权利要求25或权利要求26所述的软件,其中从该组加载函数获得的信息用于:
确定所述数据库架构中的相关表;
确定所述相关表在所述数据库架构中的引用位置;以及
确定要返回的类型函数。
28.转译器模块24根据权利要求26所述的软件,其中所述查询的结果以与所述属性参数的类型相同的类型返回。
29.转译器模块24根据权利要求19至28中任一项所述的软件的数据结构,其中所述应用程序代码和数据库架构具有用于与所述数据结构同步的同步构件。
30.一种记录在计算机可读介质上的软件,其在由适当的处理装置执行时,允许用户通过图形用户界面来:
识别与所述软件相关的实体;
识别每个所识别实体的属性;
识别所识别实体之间的关系;
修改所有所识别关系,使得所识别实体之间仅存在1:N关系;以及
向1:N关系的N侧上的每个所识别实体添加属性,作为回到所述1:N关系的另一个所识别实体的外键,
所述软件还包括填充构件,所述填充构件可操作以将新记录添加到表示每个所识别实体的实体表,并将新记录添加到表示每个所识别属性的属性实体并将所述所识别属性与匹配已经识别有所述属性的所述实体的所述实体表的对应记录相关联。
CN201680021047.3A 2015-02-13 2016-02-12 数据结构、用于填充数据结构的模型以及使用数据结构对处理装置进行编程的方法 Pending CN107533559A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
AU2015900480 2015-02-13
AU2015900480A AU2015900480A0 (en) 2015-02-13 Data structure and model for populating a data structure
AU2015904853A AU2015904853A0 (en) 2015-11-24 Data structure, model for populating a data structure and method of programming a processing device utilising a data structure
AU2015904853 2015-11-24
PCT/AU2016/050095 WO2016127224A1 (en) 2015-02-13 2016-02-12 Data structure, model for populating a data structure and method of programming a processing device utilising a data structure

Publications (1)

Publication Number Publication Date
CN107533559A true CN107533559A (zh) 2018-01-02

Family

ID=55590295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680021047.3A Pending CN107533559A (zh) 2015-02-13 2016-02-12 数据结构、用于填充数据结构的模型以及使用数据结构对处理装置进行编程的方法

Country Status (5)

Country Link
US (1) US20180032548A1 (zh)
EP (1) EP3256965A4 (zh)
CN (1) CN107533559A (zh)
AU (2) AU2016100156A4 (zh)
WO (1) WO2016127224A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536806A (zh) * 2018-04-03 2018-09-14 石贤明 数据处理的方法及系统
CN110555015A (zh) * 2019-09-09 2019-12-10 腾讯科技(深圳)有限公司 数据库实体管理方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460028B1 (en) * 1999-12-03 2002-10-01 T4Mupj2, Llc System and method for data organization
US6574631B1 (en) * 2000-08-09 2003-06-03 Oracle International Corporation Methods and systems for runtime optimization and customization of database applications and application entities
US7599948B2 (en) * 2003-10-10 2009-10-06 Oracle International Corporation Object relational mapping layer
US8738663B2 (en) * 2004-01-09 2014-05-27 Oracle International Corporation Rule-based transformation of metadata
US7599924B2 (en) * 2004-06-25 2009-10-06 International Business Machines Corporation Relationship management in a data abstraction model
US9069745B2 (en) * 2007-01-16 2015-06-30 Ebay, Inc. Electronic form automation
US8818975B2 (en) * 2009-12-18 2014-08-26 Sap Ag Data model access configuration and customization
US10235391B2 (en) * 2013-06-18 2019-03-19 Change Healthcare Holdings, Llc Method and apparatus for implementing dynamic database traversal

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536806A (zh) * 2018-04-03 2018-09-14 石贤明 数据处理的方法及系统
CN110555015A (zh) * 2019-09-09 2019-12-10 腾讯科技(深圳)有限公司 数据库实体管理方法、装置、电子设备及存储介质
CN110555015B (zh) * 2019-09-09 2023-11-03 腾讯科技(深圳)有限公司 数据库实体管理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20180032548A1 (en) 2018-02-01
AU2016100156A4 (en) 2016-03-17
AU2016218953A1 (en) 2017-09-21
EP3256965A4 (en) 2018-08-08
EP3256965A1 (en) 2017-12-20
WO2016127224A1 (en) 2016-08-18

Similar Documents

Publication Publication Date Title
US7673282B2 (en) Enterprise information unification
US8291387B2 (en) Method and system for testing a software application interfacing with multiple external software applications in a simulated test environment
CN101165688B (zh) 知识系统中资源之间的时间关联方法和系统
US7203929B1 (en) Design data validation tool for use in enterprise architecture modeling
US9251199B2 (en) Stateless database cache
CN110168515A (zh) 用于分析数据关系以支持查询执行的系统
CN109997125A (zh) 用于将数据导入数据储存库的系统
CN105378721A (zh) 知识捕获和发现系统
CN108319661A (zh) 一种备件信息的结构化存储方法及装置
CN105144162B (zh) 集成数据库框架
AU2017265144B2 (en) Information retrieval
CN111722839A (zh) 一种代码生成方法、装置、电子设备及存储介质
US7448028B2 (en) System and method for selective local object retrieval
CN105518669A (zh) 数据模型改变管理
CN108228762B (zh) 用于配置主数据库通用模板的方法和系统
CN111784108A (zh) 一种主数据管理平台的建模方法和装置
CN101013426B (zh) 信息管理装置以及信息管理方法
CN107533559A (zh) 数据结构、用于填充数据结构的模型以及使用数据结构对处理装置进行编程的方法
CN105518672A (zh) 跨多个模型的数据检索
CN110837365A (zh) 一种基于词根表的脚本辅助设计方法及装置
JP2011013910A (ja) 企業情報更新処理システム、企業情報更新処理方法、および企業情報更新プログラム
Johnson et al. A developer's guide to data modeling for SQL server: covering SQL server 2005 and 2008
US11340918B2 (en) Knowledge engine auto-generation of guided flow experience
Hess Evaluating Domain-Driven Design for Refactoring Existing Information Systems
Akour et al. Traceability between code and design documentation in database management system: a case study.

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180102