CN111767266A - 实体联系模型设计方法、装置、计算机设备和存储介质 - Google Patents
实体联系模型设计方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111767266A CN111767266A CN202010411284.9A CN202010411284A CN111767266A CN 111767266 A CN111767266 A CN 111767266A CN 202010411284 A CN202010411284 A CN 202010411284A CN 111767266 A CN111767266 A CN 111767266A
- Authority
- CN
- China
- Prior art keywords
- definition
- metadata
- column
- model
- statement
- 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
Links
- 238000013461 design Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
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)
Abstract
本申请涉及一种实体联系E‑R模型设计方法、装置、计算机设备和存储介质。所述方法根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据;根据元数据和数据库环境信息,生成定义语句并且执行定义语句,从而规范了E‑R模型设计,并且在多个环境或者异构数据库中实现了设计定义与数据库定义的一致性。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种实体联系模型设计方法、装置、计算机设备和存储介质。
背景技术
数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。对用户要求描述的现实世界,通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。
实体联系模型(Entity Relationship Model,简称E-R模型)提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。相关技术中的E-R模型设计,通常是基于图形化设计编辑,生成数据库模式定义语言(Data DefinitionLanguage,简称DDL)语句,导入到数据库;或者使用逆向工程从数据库导出E-R模型。在制定E-R模型时,需要人为了解各种数据库的数据类型,然后基于规范约定编辑模型、导出DDL,导入到不同环境的数据库中,一方面不同数据库环境可能会导致定义发布的冲突,需要大量的人工介入,另一方面人为发布出错的风险极高。
针对相关技术中,E-R模型设计对不同数据库坏境的兼容性差以及人工设计的出错率大的问题,目前尚未提出有效的解决方案。
发明内容
基于此,有必要针对上述技术问题,提供一种实体联系模型设计方法、装置、计算机设备和存储介质。
根据本发明的一个方面,提供了一种实体联系E-R模型设计方法,所述方法包括:
根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据,其中,所述元数据包括表定义和列定义;
根据所述元数据和数据库环境信息,生成定义语句,其中,所述定义语句通过与所述数据库环境信息对应的数据定义语言表达;
执行所述定义语句。
在其中一个实施例中,所述根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据包括:
根据预设的元数据模型,接收表信息配置;
根据所述元数据模型加载必要列,接收列信息配置并确定元数据。
在其中一个实施例中,在所述列定义包括数据约束属性,所述数据约束属性包括联合唯一和全局唯一的情况下,所述根据所述元数据和数据库环境信息,生成定义语句包括:
根据所述元数据和数据库环境信息,生成定义语句,所述定义语句包括与所属数据约束属性对应的索引构建语句。
在其中一个实施例中,所述列定义还包括名称指定列,所述名称指定列用于指示面向用户的所述列定义。
在其中一个实施例中,所述表定义包括模块、表名、中文名、缩写和一致性;所述列定义包括列名、中文名、类型、可空和关联表,其中,所述关联表根据所述类型区分关联关系类型。
在其中一个实施例中,所述根据所述元数据和数据库环境信息,生成定义语句包括:
对所述元数据进行规范校验;
在所述规范校验通过的情况下,根据所述元数据和数据库环境信息,生成定义语句。
在其中一个实施例中,所述确定元数据之后,所述方法包括:
将所述元数据与实际数据库中的实际表定义、实际列定义进行比对;
在所述元数据中的表定义与所述实际表定义的比对结果,以及所述元数据中的列定义与所述实际列定义的比对结果均不存在差异的情况下,不生成定义语句。
在其中一个实施例中,所述执行所述定义语句包括:
在所述元数据中的所述表定义中存在数据的情况下,备份所述数据;
删除所述数据,执行所述定义语句。
根据本发明的另一个方面,还提供一种实体联系模型设计装置,所述装置包括定义模块和发布模块:
所述定义模块用于根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据,其中,所述元数据包括表定义和列定义;
所述发布模块用于根据所述元数据和数据库环境信息,生成定义语句,执行所述定义语句,其中,所述定义语句通过与所述数据库环境信息对应的数据定义语言表达。
根据本发明的另一个方面,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实体联系E-R模型设计方法。
根据本发明的另一个方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实体联系E-R模型设计方法。
上述实体联系E-R模型设计方法、装置、计算机设备和存储介质,根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据;根据元数据和数据库环境信息,生成定义语句并且执行定义语句,从而规范了E-R模型设计,并且在多个环境或者异构数据库中实现了设计定义与数据库定义的一致性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本发明一个实施例中实体联系模型设计方法的应用场景图;
图2是根据本发明一个实施例中实体联系模型设计方法的流程图;
图3是根据本发明一个实施例中表信息配置中命名规范校验的示意图;
图4是根据本发明另一个实施例中实体联系模型设计方法的流程图;
图5是根据本发明一个实施例中必要列的示意图;
图6是根据本发明列定义包括数据约束属性的实施例中的实体联系E-R模型设计方法流程图;
图7是根据本发明一个具体实施例中表定义的示意图;
图8是根据本发明一个具体实施例中列定义的示意图;
图9是根据本发明一个具体实施例中实体联系模型的发布流程图;
图10是根据本发明一个具体实施例中的一致性校验示意图;
图11是根据本发明一个具体实施例中的关联表示意图;
图12是根据本发明一个实施例中实体联系模型设计装置的结构示意图;
图13是根据本发明一个实施例中实体联系模型设计计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。本申请提供的实体联系E-R模型设计方法,可以应用于逻辑结构设计阶段。图1是根据本发明一个实施例中实体联系模型设计方法的应用场景图,如图1所示,终端102通过网络与服务器104通过网络进行通信。服务器104根据预设的元数据模型,接收终端102输入的表信息配置和列信息配置并且确定元数据;服务器104根据元数据和数据库环境信息,生成定义语句,并且执行定义语句。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端102和服务器也可以为同一个设备。
在一个实施例中,图2是根据本发明一个实施例中实体联系模型设计方法的流程图,如图2所示,提供了一种实体联系E-R模型设计方法,该方法包括:
步骤S210,根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据。元数据模型是预先定义的表定义以及列定义模板,是要进行抽象的元数据定义,此定义与数据库无关。例如,表定义中包括模块、表名、中文名、缩写和一致性等,列定义则包括列名、中文名、类型和可空等。上述元数据模型可以根据需要设计的数据库中的数据内容,参照历史设计,提供基本的表定义和列定义,即表定义和列定义的基本定义模型。用户可以在该模型的基础上对表定义和列定义进行更改,即进行表信息配置和列信息配置,从而设计更加符合需求的模型,上述配置包括但不限于是增加表、删除表、修改表名、增加列、修改列、修改列名等。可选地,在对表以及列进行配置的过程中,会进行命名规范校验,即表名和列名需要满足预设的命名规则,接收到不满足上述命名规则的表名或者列名的情况下,会触发错误提示,图3是根据本发明一个实施例中表信息配置中命名规范校验的示意图,如图3所示,预设的命名规则指示表名必须以模块名的缩写开头,则在表信息配置中的表名修改未满足该规则的情况下,触发如图3所示的错误提示。
步骤S220,根据元数据和数据库环境信息,生成定义语句。其中,定义语句通过与数据库环境信息对应的数据定义语言表达。将元数据基于数据库环境信息,生成数据库模式定义语言(Data Definition Language,DDL)语句,例如,在数据库环境为PostgreSQL的情况下,生成PostgreSQL的数据库DDL语句信息。
步骤S230,执行定义语句。执行数据库DDL语句,并更新数据库中的元数据定义,内存中的元数据定义到实体数据库环境中。
步骤S210至步骤S230,根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据;根据元数据和数据库环境信息,生成定义语句并且执行定义语句。数据库设计的规范可以基于软件进行约束,降低人工约束带来的错误率,ER模型设计规范的校验可以抽象为通用的规则配置,提高了不同数据库坏境的兼容性,在多个环境或者异构数据库中实现了设计定义与数据库定义的一致性。
在一个实施例中,图4是根据本发明另一个实施例中实体联系模型设计方法的流程图,如图4所示,根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据包括:
步骤S410,根据预设的元数据模型,接收表信息配置;
步骤S420,根据元数据模型加载必要列,接收列信息配置并确定元数据。
在步骤S410至步骤S420中,在根据预设的元数据模型进行模块以及表名等信息录入之后,预设的元数据模型中包括了必要列信息,图5是根据本发明一个实施例中必要列的示意图,如图5所示,上述必要列可以是tenant_id、sys_id、gmt_create等列,通常上述必要列是在元数据模型中为了避免逻辑设计漏洞而必须进行配置的列信息。如上述图5中显示的列,是为了防止列定义缺失,列定义缺失在多租户场景下容易发生数据逻辑隔离漏洞。
在一个实施例中,图6是根据本发明列定义包括数据约束属性的实施例中的实体联系模型设计方法流程图,在列定义包括数据约束属性,数据约束属性包括联合唯一和全局唯一的情况下,根据元数据和数据库环境信息,生成定义语句包括:
步骤S610,根据元数据和数据库环境信息,生成定义语句,定义语句包括与所属数据约束属性对应的索引构建语句。
在步骤S610中,列定义中包括数据约束属性,数据约束属性中,联合唯一标识在多租户的情况下,租户下需要做数据约束,比如租户下用户的工号不可以重复,但是不同租户用户的工号是可以重复的,租户工号的约束在本方案中叫做联合唯一约束。不同租户之间信息也是唯一的,比如各个表的系统ID,就必须是全局唯一。基于元数据定义信息,构建相关数据库约束,生成相应的索引构建语句,上述索引构建语句根据数据约束属性给对应的列分配索引,例如,在表的系统ID为全局唯一的情况下,就通过算法给各个系统ID分配唯一的索引号。本实施例中提供的实施方式进一步提高了实体联系E-R模型设计方法的规范性和准确性。
在一个实施例中,列定义还包括名称指定列,名称指定列用于指示面向用户的列定义。列信息配置中可以指定哪一列是名称列,而上述名称列的名称实际上时针对表的,比如用户表设计指定员工名称列而非账户名列作为名称指定列,从而用户在对该表执行设计、更改或者关联等操作的情况下,尽管表中包括各种信息,用户仍然可以简洁明了地知道该表的用途。上述名称列简化了用户对于表的理解,提高了设计效率。
在一个实施例中,根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据包括:元数据中的列定义包括类型和关联表,根据类型以及关联表确定关系设计。实体联系模型中的联系也称关系,信息世界中反映实体内部或实体之间的关联。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。通常,在实体联系模型中,关系可以分为一对一、一对多和多对多。对于两个实体集A和B,若A中的每一个值在B中至多有一个实体值与之对应,反之亦然,则称实体集A和B具有一对一的联系;对于两个实体集A和B,若A中的每一个值在B中有多个实体值与之对应,反之B中每一个实体值在A中至多有一个实体值与之对应,则称实体集A和B具有一对多的联系;对于两个实体集A和B,若A中每一个实体值在B中有多个实体值与之对应,反之亦然,则称实体集A与实体集B具有多对多联系,因此,关系是实体联系模型中重要的部分。在本实施例中,提供了关联表列定义,在需要进行表关联的情况下,通过列定义中的关联表属性,可以将ER模型设计中的关系设计简化,用户仅需要勾选相应的关联表即可,可选地,列定义中还包括类型属性,该类型是指抽象的列类型而非真是数据库的列类型。根据该列的类型属性以及关联表类型来区分是一对多关系或者多对多关系。例如,在关联表不是无关联也不是自关联的情况下,类型属性为数组则判断为一对多的关系。关联表和类型属性将进一步提高实体联系模型设计的准确度和设计效率。
在一个实施例中,根据元数据和数据库环境信息,生成定义语句包括:对元数据进行规范校验;在规范校验通过的情况下,根据元数据和数据库环境信息,生成定义语句。可选地,上述规范校验包括表定义规范校验和列定义规范校验,表定义规范校验包括模块名、表名的命名规范以及表名的无重复性,列定义规范校验包括列名规范等。上述规范校验可以进一步提高实体联系模型的逻辑性、准确性和设计效率。
在一个实施例中,确定元数据之后,该方法还包括:将元数据与实际数据库中的实际表定义、实际列定义进行比对;在元数据中的表定义与实际表定义的比对结果,以及元数据中的列定义与实际列定义的比对结果均不存在差异的情况下,不生成定义语句。在本实施例中,在确定元数据之后,比较元数据与实际数据库中的表定义、列定义是否存在差异,如果不存在差异,则无需再次执行发布。可选地,在表定义中设置一致性属性,通过该属性对元数据和实际数据库进行一致性比对。本实施例避免了重复发布,提高了实体联系模型设计的效率。
在一个实施例中,执行定义语句包括:在元数据中的表定义中存在数据的情况下,备份数据;再删除数据,执行定义语句。即执行数据校验,如果数据表中已经有数据,则中断操作,防止数据库更新导致数据丢失,备份原有的数据表定义信息,然后删除原有表定义、列定义再执行定义语句。提高了实体联系模型设计的可靠性。
在一个具体的实施例中,实体联系模型设计的方法首先要进行抽象的元数据定义,此定义与数据库环境如oracle、mysql、postgreSQL等无关。
其中,图7是根据本发明一个具体实施例中表定义的示意图,如图7所示,表定义包含但不限于模块、表名、中文名、缩写、一致性等属性信息:
模块:指定表所属的模块,方便进行检索和理解;
表名:数据库表名;
中文名:表的中文解释;
缩写:表名的缩写代号,限定为3个大写字母;
一致性:当表定义和数据库中真实的定义一致时,则为真true,否则为假false。
图8是根据本发明一个具体实施例中列定义的示意图,如图8所示,列定义包含但不限于列名、中文名、类型、关联表、联合唯一、全局唯一、可空、是否名称等属性信息:
列名:数据库列名;
中文名:列的中文解释;
类型:抽象的列类型,非真实数据库的列类型,当前抽象的列类型有BOOL("布尔:BOOLEAN")、INT("整型:INT")、LONG("长整型:LONG")、DECIMAL("浮点:DECIMAL")、STR64("字符串:STR(64)")、STR256("字符串:STR(256)")、STR1024("字符串:STR(1024)")、TEXT("文本:TEXT")、DATE("时间:DATE")、ARRAY_STR("字符串数组:ARRAY_STR")、ARRAY_INT("整型数组:ARRAY_INT")、JSON("JSON")等;
关联表:该字段是ER模型中的外键,需要进行表关联,通过关联表属性,可以将ER模型设计中的关系设计简化,仅仅需要勾选对应的关联表即可,本装置会基于字段类型来区分是一对多关系或者多对多关系,例如,数组类型则为多对多关系,其余则为一对多关系,一对一和一对多等同;
联合唯一:多租户下,租户下需要做数据约束,比如租户下用户的工号不可以重复,但是不同租户用户的工号是可以重复的,租户工号的约束在本装置中叫做联合唯一约束;
全局唯一:不同租户之间信息也是唯一的,比如各个表的系统ID,就必须是全局唯一,基于此ID即可判断出是哪个租户的信息;
可空:类似于数据库中的字段可空设计;
是否名称列:表结构设计时需要指定哪一列是名称列,比如用户表设计指定员工名称是名称列,而非账户名。
然后进行实体联系模型的发布,发布即执行定义语句的过程。图9是根据本发明一个具体实施例中实体联系模型的发布流程图,如图9所示,该发布流程包括:
步骤S902,一致性检验。元数据在数据库中会定义两张系统表,表定义(schema_table)和列定义(schema_column)。校验此定义,和实际数据库(比如PostgreSQL)中的表定义(pg_catalog.pg_tables)、列定义(information_schema.columns)、索引定义(pg_catalog.pg_indexes)是否一致,其中索引定义是基于抽象列定义(schema_column)转换得出,如果一致,则无需重启发布;
步骤S904,表定义规范校验。需要发布,则首先进行表定义的规范校验,包含表名、缩写等等,表定义规范校验包括1.表名、模块名不允许为空;2.缩写、表名不允许重复;
步骤S906,列定义规范校验。其次,进行列定义规范校验,其中增加数据约束校验,即每张表发布之前必须构建好数据约束条件。列定义规范校验包括:1.列名规范;2.必须存在自定义列,即上述必要列;3.表必须存在名称列,即上述指定名称列;4.自关联字段不允许有多个;5.联合唯一必须指定;6.全局唯一必须指定;7.联合唯一或者全局唯一选中的字段必须非空;等。ER模型中关系设计,也会在这里进行规范,主要抽象为关联表数据配置,本装置中强制约束,两表关联必须基于系统ID,装置会基于数据类型,判断是否是一对多或者多对多关系,自关联也在关联表中指定,以SELF关键字标识,ER设计时,自关联只允许一个字段;
步骤S908,数据校验。如果数据表中已经有数据,则中断发布操作,防止数据库更新,导致数据丢失的风险;
步骤S910,数据备份。备份原有的数据表定义信息,可以进行ER模型设计的版本回顾;
步骤S912,删除数据。删除原有表定义、列定义、索引定义信息;
步骤S914,生成DDL语句。基于连接的数据库环境,比如连接的是postgreSQL,则将元数据翻译为postgreSQL对应的DDL语句,执行相关语句,;
步骤S916,构建约束。基于元数据定义信息,构建相关数据库约束,生成相应的索引构建语句并执行;
步骤S918,信息同步。同步内存中最新的的元数据定义到实体数据库环境中;
步骤S920,发布完成。E-R模型设计完成。
在终端102即用户侧,实体联系E-R模型设计方法包括环境连接、加载E-R模型、E-R模型设计、E-R模型发布和代码生成。
环境连接是指选择对应数据库环境进行环境连接;
加载E-R模型是指通过用户侧点击读取DB按钮加载数据库中的元数据信息,并与实际数据库环境中的表定义和列定义进行比较,图10是根据本发明一个具体实施例中的一致性校验示意图,如图10所示,通过表信息校验、列信息校验和索引信息校验。例如,PostgreSQL数据库和系统表中的pg_catalog.pg_tables、information_schema.columns、pg_catalog.pg_indexes等进行比对,如果发现差异,则表一致性则为false,并在右下方展示一致性校验差异,上述一致性校验差异包含不限于列的增删改差异、索引差异等;
E-R模型设计中,首先进行模块、表名等信息录入,可选地,进行命名规范校验,再加载自动生成列如tenant_id、sys_id、gmt_create等防止列定义缺失,其次进行列信息配置,可选地,也进行命名规范校验,再进行关系设计校验,图11是根据本发明一个具体实施例中的关联表示意图,如图11所示,关联表选择SELF则该表为自关联,关联表选择其他表,则会自动判断其是一对多或多对多关系;
ER模型发布,在用户侧点击发布按钮的情况下,将元数据信息基于数据库环境信息生成数据库DDL语句,例如,当环境为PostgreSQL时,则生成PostgreSQL的数据库DDL语句信息,执行数据库DDL语句,并更新数据库中的元数据定义,如果数据库中存在表定义并且其中数据不为空,则中断操作。发布时会对表的设计规范进行校验,如果不通过,则直接中断发布操作,并提示错误。表发布成功后,表的不一致信息会被清空,并且数据库中会存在真实的数据库表;
代码生成是指在ER模型设计完成后,还为应用程序提供快速生成代码功能,主要生成数据库定义的持久化对象(persistant object,PO)信息。
上述具体实施例中的实体联系模型的设计方法,提供了一种适用于多租户场景的ER模型设计方法,实现了一致性保障:设计定义与数据库定义一致性保障,以及表数据的唯一性约束保障;并且通过插件式规范组件来校验ER模型设计是否遵循规范。使得数据库设计的规范可以基于软件进行约束,降低人工约束的风险和难度,多个环境或异构数据库,数据库表结构设计一致性快速校验和同步。ER模型设计规范的校验可以抽象为通用的规则配置,提高灵活性,在同步时,当数据库中有数据时,还可以进行数据备份,并进行增量更新。
应该理解的是,虽然图2-9照中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,图12是根据本发明一个实施例中实体联系模型设计装置的结构示意图,如图12所示,提供了一种实体联系模型设计装置,其特征在于,装置包括定义模块122和发布模块124:
定义模块122用于根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据,其中,元数据包括表定义和列定义;
发布模块124用于根据元数据和数据库环境信息,生成定义语句,执行定义语句,其中,定义语句通过与数据库环境信息对应的数据定义语言表达。
关于实体联系模型设计装置的具体限定可以参见上文中对于实体联系模型设计方法的限定,在此不再赘述。上述实体联系模型设计装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,图13是根据本发明一个实施例中实体联系模型设计计算机设备的结构示意图,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种实体联系模型设计方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
上述实体联系E-R模型设计方法、装置、计算机设备和存储介质,根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据;根据元数据和数据库环境信息,生成定义语句并且执行定义语句,从而规范了E-R模型设计,并且在多个环境或者异构数据库中实现了设计定义与数据库定义的一致性。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实体联系模型设计方法。
上述实体联系E-R模型设计方法、装置、计算机设备和存储介质,根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据;根据元数据和数据库环境信息,生成定义语句并且执行定义语句,从而规范了E-R模型设计,并且在多个环境或者异构数据库中实现了设计定义与数据库定义的一致性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种实体联系E-R模型设计方法,其特征在于,所述方法包括:
根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据,其中,所述元数据包括表定义和列定义;
根据所述元数据和数据库环境信息,生成定义语句,其中,所述定义语句通过与所述数据库环境信息对应的数据定义语言表达;
执行所述定义语句。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据包括:
根据预设的元数据模型,接收表信息配置;
根据所述元数据模型加载必要列,接收列信息配置并确定元数据。
3.根据权利要求1所述的方法,其特征在于,在所述列定义包括数据约束属性,所述数据约束属性包括联合唯一和全局唯一的情况下,所述根据所述元数据和数据库环境信息,生成定义语句包括:
根据所述元数据和数据库环境信息,生成定义语句,所述定义语句包括与所属数据约束属性对应的索引构建语句。
4.根据权利要求1所述的方法,其特征在于,所述列定义还包括名称指定列,所述名称指定列用于指示面向用户的所述列定义。
5.根据权利要求1所述的方法,其特征在于,所述根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据包括:
所述元数据中的列定义包括类型和关联表;
根据所述类型以及所述关联表确定关系设计。
6.根据权利要求1所述的方法,其特征在于,所述根据所述元数据和数据库环境信息,生成定义语句包括:
对所述元数据进行规范校验;
在所述规范校验通过的情况下,根据所述元数据和数据库环境信息,生成定义语句。
7.根据权利要求1所述的方法,其特征在于,所述确定元数据之后,所述方法包括:
将所述元数据与实际数据库中的实际表定义、实际列定义进行比对;
在所述元数据中的表定义与所述实际表定义的比对结果,以及所述元数据中的列定义与所述实际列定义的比对结果均不存在差异的情况下,不生成定义语句。
8.根据权利要求1所述的方法,其特征在于,所述执行所述定义语句包括:
在所述元数据中的所述表定义中存在数据的情况下,备份所述数据;
删除所述数据,执行所述定义语句。
9.一种实体联系模型设计装置,其特征在于,所述装置包括定义模块和发布模块:
所述定义模块用于根据预设的元数据模型,接收表信息配置和列信息配置并且确定元数据,其中,所述元数据包括表定义和列定义;
所述发布模块用于根据所述元数据和数据库环境信息,生成定义语句,执行所述定义语句,其中,所述定义语句通过与所述数据库环境信息对应的数据定义语言表达。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010411284.9A CN111767266A (zh) | 2020-05-15 | 2020-05-15 | 实体联系模型设计方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010411284.9A CN111767266A (zh) | 2020-05-15 | 2020-05-15 | 实体联系模型设计方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767266A true CN111767266A (zh) | 2020-10-13 |
Family
ID=72719215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010411284.9A Pending CN111767266A (zh) | 2020-05-15 | 2020-05-15 | 实体联系模型设计方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767266A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597171A (zh) * | 2020-12-31 | 2021-04-02 | 平安银行股份有限公司 | 表格关系可视化方法、装置、电子设备及存储介质 |
CN113342786A (zh) * | 2021-08-02 | 2021-09-03 | 浩鲸云计算科技股份有限公司 | 一种基于模型管控的在线数据治理管理方法和系统 |
CN113741889A (zh) * | 2021-08-26 | 2021-12-03 | 北京深演智能科技股份有限公司 | 异构数据库智能存取数据的方法及设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859303A (zh) * | 2009-04-07 | 2010-10-13 | 中国移动通信集团湖北有限公司 | 元数据管理方法及管理系统 |
CN103093000A (zh) * | 2013-02-25 | 2013-05-08 | 用友软件股份有限公司 | 数据库查询建模系统和数据库查询建模方法 |
CN103246753A (zh) * | 2013-05-30 | 2013-08-14 | 安徽皖通科技股份有限公司 | 一种根据数据库结构生成实体元数据模型的方法 |
US20150074069A1 (en) * | 2013-09-06 | 2015-03-12 | Sap Ag | Advanced data models containing declarative and programmatic constraints |
CN105808772A (zh) * | 2016-03-28 | 2016-07-27 | 中国建设银行股份有限公司 | 一种数据定义文件生成方法及装置 |
CN110109893A (zh) * | 2018-02-02 | 2019-08-09 | 北京京东尚科信息技术有限公司 | 数据建模和操作的方法和装置 |
CN110188568A (zh) * | 2019-05-27 | 2019-08-30 | 深圳前海微众银行股份有限公司 | 机密信息标识方法、装置、设备与计算机可读存储介质 |
CN110674117A (zh) * | 2019-09-26 | 2020-01-10 | 京东数字科技控股有限公司 | 数据建模方法、装置、计算机可读介质及电子设备 |
CN111125064A (zh) * | 2019-12-24 | 2020-05-08 | 中国建设银行股份有限公司 | 一种生成数据库模式定义语句的方法和装置 |
-
2020
- 2020-05-15 CN CN202010411284.9A patent/CN111767266A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859303A (zh) * | 2009-04-07 | 2010-10-13 | 中国移动通信集团湖北有限公司 | 元数据管理方法及管理系统 |
CN103093000A (zh) * | 2013-02-25 | 2013-05-08 | 用友软件股份有限公司 | 数据库查询建模系统和数据库查询建模方法 |
CN103246753A (zh) * | 2013-05-30 | 2013-08-14 | 安徽皖通科技股份有限公司 | 一种根据数据库结构生成实体元数据模型的方法 |
US20150074069A1 (en) * | 2013-09-06 | 2015-03-12 | Sap Ag | Advanced data models containing declarative and programmatic constraints |
CN105808772A (zh) * | 2016-03-28 | 2016-07-27 | 中国建设银行股份有限公司 | 一种数据定义文件生成方法及装置 |
CN110109893A (zh) * | 2018-02-02 | 2019-08-09 | 北京京东尚科信息技术有限公司 | 数据建模和操作的方法和装置 |
CN110188568A (zh) * | 2019-05-27 | 2019-08-30 | 深圳前海微众银行股份有限公司 | 机密信息标识方法、装置、设备与计算机可读存储介质 |
CN110674117A (zh) * | 2019-09-26 | 2020-01-10 | 京东数字科技控股有限公司 | 数据建模方法、装置、计算机可读介质及电子设备 |
CN111125064A (zh) * | 2019-12-24 | 2020-05-08 | 中国建设银行股份有限公司 | 一种生成数据库模式定义语句的方法和装置 |
Non-Patent Citations (2)
Title |
---|
MANEL FOURATI, ET AL.: "Towards a semantic multi-modalities description of audiovisual documents", 2014 IEEE INTERNATIONAL SYMPOSIUM ON MULTIMEDIA, 31 December 2014 (2014-12-31) * |
邓本江等: "数据库自动设计工具DBADT", 航天工艺, 17 June 1997 (1997-06-17) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597171A (zh) * | 2020-12-31 | 2021-04-02 | 平安银行股份有限公司 | 表格关系可视化方法、装置、电子设备及存储介质 |
CN113342786A (zh) * | 2021-08-02 | 2021-09-03 | 浩鲸云计算科技股份有限公司 | 一种基于模型管控的在线数据治理管理方法和系统 |
CN113741889A (zh) * | 2021-08-26 | 2021-12-03 | 北京深演智能科技股份有限公司 | 异构数据库智能存取数据的方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209650B (zh) | 数据规整迁移方法、装置、计算机设备和存储介质 | |
CN111767266A (zh) | 实体联系模型设计方法、装置、计算机设备和存储介质 | |
US8768902B2 (en) | Unified concurrent changes to data, schema, and application | |
US9110961B2 (en) | Single command data warehouse table update | |
US10296542B2 (en) | Integration database framework | |
US20230161746A1 (en) | Data pipeline branching | |
US20100312592A1 (en) | Confirming enforcement of business rules specified in a data access tier of a multi-tier application | |
Ataei et al. | Variational databases | |
CN113094387A (zh) | 一种数据查询方法、装置、电子设备及机器可读存储介质 | |
EP3732606A1 (en) | Systems and methods for determining database permissions | |
US9026561B2 (en) | Automated report of broken relationships between tables | |
US20040139141A1 (en) | Integration of virtual data within a host operating environment | |
US10838947B2 (en) | Consistency check for foreign key definition | |
CN104111962A (zh) | 具有批量操作的增强型事务高速缓存 | |
US11971909B2 (en) | Data processing system with manipulation of logical dataset groups | |
CN116028466A (zh) | 数据库结构迁移方法、装置、设备、存储介质 | |
US20210263911A1 (en) | Smart repository based on relational metadata | |
CN114356945A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20210397745A1 (en) | Data providing server device and data providing method | |
CN112905601A (zh) | 一种数据库分表的路由方法及装置 | |
CN115617773A (zh) | 数据迁移的方法、装置和系统 | |
US11138174B2 (en) | Electronic database and method for forming same | |
US11507586B2 (en) | Database table annotation processing | |
CN114625769B (zh) | 多数据来源场景下的主数据管理方法、系统、装置和介质 | |
CN112068894A (zh) | 一种配置对象处理方法和装置 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210325 Address after: Room 406-10, building 2, ChuanHua Kechuang building, ningwei street, Xiaoshan District, Hangzhou, Zhejiang 311200 Applicant after: Hangzhou Ruijiang Technology Co.,Ltd. Address before: Room 201-56, Xiaoshan science and Technology City, building 1, ChuanHua Kechuang building, Xiaoshan District, Hangzhou, Zhejiang 311200 Applicant before: Hangzhou CHUANHUA Intelligent Manufacturing Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right |