CN113806325A - 数据库设计方法、装置及相关设备 - Google Patents
数据库设计方法、装置及相关设备 Download PDFInfo
- Publication number
- CN113806325A CN113806325A CN202010544344.4A CN202010544344A CN113806325A CN 113806325 A CN113806325 A CN 113806325A CN 202010544344 A CN202010544344 A CN 202010544344A CN 113806325 A CN113806325 A CN 113806325A
- Authority
- CN
- China
- Prior art keywords
- database
- script
- user
- interface
- version
- 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
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
-
- 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
-
- 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/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据库设计方法,该方法应用于数据库设计系统,该方法包括:数据库设计系统向用户提供第一界面,该第一界面包括原数据库版本的设计视图;接收用户通过第一界面对原数据库版本的设计视图的修改,并根据用户对设计视图的修改,生成用于原数据库版本与修改后的数据库版本之间转换的变更脚本。通过对比原数据库版本的设计视图与修改后的数据库版本的设计视图,能够获取数据库被修改前后的差异信息,并根据差异信息生成包括升级脚本和回滚脚本的变更脚本,丰富了数据库设计系统能够生成的脚本的类型,便于用户对数据库的管理,提高工作效率。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库设计方法、装置及相关设备。
背景技术
在项目的开发或者迭代过程中,经常需要根据需求修改数据库,例如增加或者删除数据库中的数据,进而产生一个新的数据库版本。用户通过现有的数据库设计系统对数据库的设计视图进行修改后,数据库设计系统生成的是修改后的数据库的全量脚本,全量脚本是包括修改后的数据库的全部数据信息的脚本,在后续对数据库开发或者迭代的过程中,仅根据全量脚本对数据库进行开发和迭代,会给用户带来诸多不便。
发明内容
本申请实施例公开了一种数据库设计方法、装置及相关设备,能够在数据库被设计更改后自动生成数据库变更脚本,便于用户对数据库进行开发和管理。
第一方面,本申请实施例提供一种数据库设计方法,该方法应用于数据库设计系统,包括:
数据库设计系统向用户提供第一界面,该第一界面包括原数据库版本的设计视图;
接收所述用户通过所述第一界面对所述设计视图的修改;
根据所述修改,生成数据库变更脚本,所述数据库变更脚本用于控制所述原数据库版本与修改后的数据库版本之间的转换。
通过上述方法生成的数据库变更脚本,丰富了数据库设计系统能够生成的脚本的类型,便于用户对数据库的管理,提高工作效率。
在一种具体的实现方式中,数据库变更脚本包括升级脚本和回滚脚本,所述升级脚本用于运行以实现将原数据库版本转换成修改后的数据库版本;所述回滚脚本用于运行以实现将所述修改后的数据库版本转换成所述原数据库版本。
数据库设计系统能够自动生成升级脚本和回滚脚本等变更脚本,能够降低数据库设计系统对原数据库版本与修改后的数据库版本之间转换时需要处理的数据量,提高工作效率。
在一种具体的实现方式中,数据库设计系统运行在云数据中心,所述用户为在所述云数据中心购买数据库云服务的用户。
通过云服务的方式向用户提供数据库设计云服务,提高了数据库设计使用的灵活度,能够提升用户体验。
在一种具体的实现方式中,上述方法还包括:数据库设计系统向用户提供第二界面,第二界面包括上述变更脚本;数据库设计系统接收用户通过第二界面对变更脚本的修改,得到修改后的变更脚本。
数据库设计系统给用户提供编辑修改数据库设计系统自动生成的变更脚本,用户能够根据需要直接对变更脚本进行修改,能够提高用户的工作效率,提升用户体验。
在一种具体的实现方式中,在根据所述修改,生成数据库变更脚本之前,所述方法还包括:数据库设计系统向所述用户提供第三界面,第三界面包括数据库类型选项;数据库设计系统接收用户通过数据库类型选项输入的目标数据库类型;根据所述修改,生成数据库变更脚本,包括:数据库设计系统根据所述修改,生成目标数据库类型对应的数据库变更脚本。
数据库设计系统能够根据项目需求,自动生成用户指定的数据库的变更脚本,能够提高用户的工作效率,提升用户体验。
在一种具体的实现方式中,上述方法还包括:数据库设计系统向用户提供第四界面,第四界面包括配置信息,该配置信息包括脚本名称、脚本保存路径、脚本保存方式或脚本模式中的任意一项或多项;数据库设计系统接收用户通过第四界面对配置信息的设置;根据上述修改,生成数据库变更脚本,包括:数据库设计系统根据配置信息生成和保存数据库变更脚本。
数据库设计系统能够由用户自主脚本名称、脚本保存路径以及脚本保存方式等,用户可以根据项目需要等需求,自由配置上述信息,能够提高提升用户体验。
在一种具体的实现方式中,根据修改,生成数据库变更脚本,包括:数据库设计系统获取原数据库版本的设计视图和修改后的数据库版本的设计视图;根据原数据库版本的设计视图和修改后的数据库版本的设计视图的差异信息,生成数据库变更脚本。
第二方面,本申请实施例提供一种数据库设计装置,该装置应用于数据库设计系统,该装置包括:
显示模块,用于向用户提供第一界面,所述第一界面包括原数据库版本的设计视图;
接收模块,用于接收所述用户通过所述第一界面对所述设计视图的修改;
处理模块,用于根据所述修改,生成数据库变更脚本,所述数据库变更脚本用于控制所述原数据库版本与修改后的数据库版本之间的转换。
在一种具体的实现方式中,所述数据库变更脚本包括升级脚本和回滚脚本,所述升级脚本用于运行以实现将原数据库版本转换成修改后的数据库版本;所述回滚脚本用于运行以实现将所述修改后的数据库版本转换成所述原数据库版本。
在一种具体的实现方式中,所述数据库设计系统运行在云数据中心,所述用户为所述云数据中心购买数据库云服务的用户。
在一种具体的实现方式中,所述显示模块,还用于向用户提供第二界面,所述第二界面包括所述变更脚本;
所述接收模块,还用于接收所述用户通过所述第二界面对所述变更脚本的修改,得到修改后的变更脚本。
在一种具体的实现方式中,所述显示模块,还用于向所述用户提供第三界面,所述第三界面包括数据库类型选项;所述接收模块,还用于接收所述用户通过所述数据库类型选项输入的目标数据库类型;所述处理模块具体用于:根据所述修改,生成所述目标数据库类型对应的数据库变更脚本。
在一种具体的实现方式中,所述显示模块,还用于向所述用户提供第四界面,所述第四界面包括配置信息,所述配置信息包括脚本名称、脚本保存路径、脚本保存方式或脚本模式中的任意一项或多项;
所述接收模块,还用于接收所述用户通过所述第四界面对所述配置信息的设置;
所述处理模块具体用于:根据所述配置信息生成和保存所述数据库变更脚本。
在一种具体的实现方式中,所述处理模块具体用于:获取所述原数据库版本的设计视图和修改后的数据库版本的设计视图;根据所述原数据库版本的设计视图和所述修改后的数据库版本的设计视图的差异信息,生成所述数据库变更脚本。
第三方面,本申请实施例提供一种计算设备,该计算设备包括处理器和存储器;存储器中存储有计算机程序;处理器执行计算机程序时,计算设备执行前述第一方面或第一方面任一具体实现方式中的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在网络设备上运行时执行前述第一方面或第一方面任一具体实现方式中的方法。
第五方面,本申请提供了一种计算机程序产品,计算机程序产品包括计算机指令,在被计算设备执行时,计算设备执行前述第一方面或第一方面任一具体实现方式中的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面任一具体实现方式中的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种本地设计工具的部署示意图;
图1b是本申请实施例提供的一种云化设计工具的部署示意图;
图2是本申请实施例提供的一种数据库设计方法的流程示意图;
图3是本申请实施例提供的一种数据库的设计视图的示意图;
图4是本申请实施例提供的一种差异详情界面的示意图;
图5是本申请实施例提供的一种第三界面的示意图;
图6是本申请实施例提供的一种第四界面的示意图;
图7是本申请实施例提供一种数据库设计装置的示意图;
图8是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
数据库(database,DB)是按照数据结构来组织、存储和管理数据的仓库,是一个存储在计算机内的有组织的、可共享的大量数据的集合。
结构化查询语言(structured query language,SQL)是一种数据库产品与程序设计语言,用于存取数据,查询、更新和管理关系型数据库。
表是一种结构化的文件,用于存储特定类型的数据,例如员工信息、产品目录等。数据库中的数据通常以表的形式存储,每个表都有一个唯一的标识,例如表名。一个表包括一个或者多个列(column),每列是表中的一个字段,每列中存储着表中某部分的信息。例如表名为雇员(employee)的表中,一个列存储雇员编号,另一列存储雇员所在的城市。
脚本是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。数据库脚本是用于创建数据库、修改数据库中数据以及查询数据库中数据等操作的语句的集合。全量脚本是包括数据库中所有数据的信息的脚本。在服务器执行全量脚本时,能够在服务器中创建新的数据库。
数据库设计系统是一种可视化的数据库设计与管理的工具,用于建立、使用和维护数据库,用户可以在数据库设计系统中创建包括图表以及图表之间关联关系的数据库的设计视图,数据库设计系统能够根据设计视图生成数据库的全量脚本。服务器通过运行全量脚本生成数据库。用户在需要修改数据库中的数据时,可以通过在数据库设计系统中修改设计视图,实现对数据库中的数据进行修改。在用户对设计视图修改完成之后,数据库设计系统可以根据修改后的设计视图生成新的全量脚本。
在项目开发过程中,经常会需要根据用户需求和软件需求设计或修改数据库,例如需要在已有版本的数据库的某一个数据表中增加或者删除一列数据,进而产生一个新的数据库版本。当前对数据库进行修改时,用户需要通过数据库设计系统的可视化界面对原数据库版本的设计视图进行修改,得到修改后的数据库版本的设计视图。数据库设计系统能够根据修改后的数据库版本的设计视图自动生成修改后的数据库对应的全量脚本,该全量脚本被服务器运行时,能够在服务器中创建一个新的数据库版本,新的数据库版本中除被用户修改的数据之外,其他数据与原数据库版本中的数据相同。如果全量脚本在测试环境下测试成功,可以将全量脚本上传至服务器,以使服务器执行全量脚本生成新的数据表,产生新的数据库版本,新的数据库版本可以被使用。
当前数据库设计系统根据可视化的数据库设计,自动生成的脚本通常是全量脚本,如果需要获得数据库的在变更过程中的变更脚本(例如升级脚本和回滚(rollback)脚本等),需要人工编写。当需要根据升级脚本对数据库进行升级,或者需要将数据库恢复到上一个版本时,需要人工编写升级脚本或者回滚脚本。通过人工编写升级脚本或者回滚脚本的方式效率低下且容易出错。
为了解决上述问题,本申请实施例提供一种数据库设计系统以及数据库设计方法。通过在本申请实施例提供的数据库设计系统中执行本申请实施例提供的数据库设计方法,可以自动生成变更脚本。该方法能够在用户对原数据库版本的设计视图进行修改后,通过对比原数据库版本的设计视图与修改后的数据库版本的设计视图,确定数据库中被修改的内容,进而根据SQL语法以及基于模板的代码生成器自动生成升级脚本、回滚脚本和全量脚本等多种类型的脚本。
本申请实施例中的数据库设计系统是用于提供数据库开发环境的应用程序。数据库设计系统至少包括一个组件,组件是指对数据和方法的简单封装。在一些编程语言体系中,组件也可以称为部件、控件等等。基于组件的作用,可以将数据库设计系统包括的组件分为前端组件和后端组件两种类型。
前端组件是指实现和用户交互的组件,例如客户端,具体用于接收用户输入的数据,显示用户请求的界面与数据等等。后端组件是指对数据进行处理的组件,具体用于按照设定的逻辑对接收到的数据进行处理,或者从数据库中获取数据进行处理等等。本申请实施例中,数据库设计系统可以包括图形用户界面、集成代码编辑器、编译器和调试器等工具中的至少一种。数据库设计系统前端组件可以包括与图形用户界面相关的组件,数据库设计系统后端组件可以包括与编译器、调试器等相关的组件。
基于部署方式不同,数据库设计系统可以分为本地设计工具和云化设计工具。本地设计工具的前端组件和后端组件均部署在本地。其中,本地也称作本地设备。本地设备包括处于用户直接控制之下的用户设备(例如笔记本电脑等用户终端),或者与上述用户设备地理上接近的设备(例如本地计算机集群)。云化设计工具则至少有一部分组件(例如后端组件)部署在云端。本申请实施例中的云端是与本地相对应的一端,即本地用户通过网络远程访问的资源端。
如图1a所示,图1a是本申请实施例提供的一种本地设计工具的部署示意图。上述前端组件可以运行在各种终端设备上,例如:手机、笔记本电脑、平板电脑或者个人台式电脑等等。上述后端组件可以运行在计算机集群(包括至少一个计算设备)上。
如图1b所示,图1b是本申请实施例提供的一种云化设计工具的部署示意图。数据库设计系统部署在云平台中。云平台中部署有云服务提供商提供的大量基础资源。例如云平台1中部署有计算资源、存储资源和网络资源等,且该计算资源可以是大量的计算设备(例如服务器)。数据库设计系统能够利用该云平台中部署的基础资源实现本申请实施例提供的数据库设计方法。例如,云平台响应于用户触发的数据库设计系统实例创建操作,在云服务提供商提供的资源上创建数据库设计系统实例。
应理解,数据库设计系统可以是一个硬件系统或者一个部署在硬件设备和/或虚拟机上的软件系统,数据库设计系统还可以通过硬件和软件结合实现。当数据库设计系统为硬件系统时,其可以是计算设备的集合。当数据库设计系统为软件系统时,数据库设计系统可以独立地部署在云平台中的服务器或虚拟机上,或者,数据库设计系统可以分布式地部署在云平台中的多台服务器上,或者,数据库设计系统可以分布式地部署在云平台中的多台虚拟机上,再或者,数据库设计系统可以分布式地部署在云平台中的服务器和虚拟机上。
如图1b所示,数据库设计系统能够由云服务提供商在云平台抽象成一种数据库设计的云服务提供给用户。用户在云平台购买数据库设计云服务后,云平台能够利用部署在云平台的数据库设计系统向用户提供数据库设计云服务。例如,云平台可以向购买云服务的用户提供图形用户界面,在用户的用户设备上显示该图形用户界面,用户在该图形用户界面中进行数据库设计。其中,购买数据库设计云服务的方式可以包括:先预充值再根据最终资源的实际使用情况进行结算,或者,按使用云服务的时间或者按照购买的云服务的功能或资源结算。
需要说明的是,在本申请实施例中,云平台可以是中心云的云平台、边缘云的云平台或包括中心云和边缘云的云平台,本申请实施例对其不做具体限定。并且,当云平台为包括中心云和边缘云的云平台时,该数据库设计系统可以部分部署在边缘云的云平台中,部分部署在中心云的云平台中。
如图2所示,图2是本申请实施例提供的一种数据库设计方法的流程示意图,如图2所示,该数据库设计方法包括步骤S201至S203。
S201、向用户提供第一界面。
本申请实施例中,用户(例如开发人员)需要对数据库进行修改时,可以通过数据库设计系统的提供的第一界面,调出数据库设计系统的第一界面,该第一界面包括原数据库版本(即被修改前的数据库)的设计视图,用户可以通过第一界面对数据库的设计视图进行修改,达到修改数据库的目的。其中,设计视图包括至少一个实体(entity)的图表以及不同实体之间的关联关系。每个实体的图表对应数据库中的一个表。每个实体的图表包括实体的名称(name)、实体的代码(code)和实体的属性(attribute)等信息,不同实体之间的关联关系包括关联关系的名称(name)、关联关系的代码(code)和基数(cardinalities)关系等。基数关系包括一对一(one-one)、一对多(one-many)、多对一(one-many)和多对多(many-many)等。实体的属性包括属性的名称(name)和属性的代码(code),属性的代码对应数据库的字段名称,属性的名称是对应的属性的代码的中文描述。示例性的,如图3所示,图3为一种数据库的设计视图的示意图,图3中示出了学生、课程和班级这三个实体的图表和这三个实体之间的关联关系。可以理解,数据库的设计视图还可以包括更多实体的图表以及更多实体之间的关联关系,本申请实施例不再详细介绍。
S202、接收用户通过第一界面对原数据库版本的设计视图的修改。
用户在调出上述第一界面之后,根据需求对原数据库版本的设计视图(原设计视图)进行修改,得到修改后的新设计视图。数据库设计系统根据修改后的设计视图能够得到修改后的数据库版本。例如用户需要在原数据库版本的基础上新创建一个表,则用户在原数据库版本对应的原设计视图中创建一个新实体的图表,配置新实体的名称、代码和属性等信息,并在新设计视图中绘制新实体与原设计视图中一个或者多个实体之间的关联关系;或者用户需要在原数据库版本的表a中插入新的字段或者删除原有的字段,则用户需要在表a对应的实体的图表中,对该图表中属性的代码进行增加或者删除操作。
本申请实施例中,用户在对原数据库版本的设计视图进行修改之后,可以在数据库设计系统提供的差异详情界面查看原数据库版本与修改后的数据库版本之间的差异。
示例性的,如图4所示,图4是本申请实施例提供的一种差异详情界面的示意图。用户对原设计视图进行修改之后,数据库设计系统的差异详情界面中会显示用户对设计视图的修改。如图4中所示,差异详情界面中显示用户在原数据库版本中表名为“employee”的表中插入一列(column),插入的一列字段名称为“name”。同时,用户将表名为“employee_777”的表名更改为“employee_new”。
S203、根据所述修改,生成数据库变更脚本。
其中,数据库变更脚本用于控制原数据库版本与修改后的数据库版本之间的转换。用户在对原设计视图进行修改之后,数据库设计系统能够获取新设计视图与原设计视图之间的差异信息。其中,该差异信息包括增加的表的名称、删除的表的名称、被修改的表的名称、被修改的表中插入或者删除的目标字段的字段名称、目标字段的数据类型、目标字段在目标表中的位置或目标字段的注释信息中的任意一种或多种。数据库设计系统能够根据差异信息、SQL语法以及基于模板的代码生成器,生成数据库全量脚本以及数据库变更脚本,数据库变更脚本包括升级脚本以及回滚脚本中的任意一种或者多种。
其中,升级脚本包括原设计视图中修改、增加或删除的数据的信息。在部署原数据库版本的服务器执行升级脚本时,能够修改、增加或者删除数据库中的数据,将原数据库版本转换成修改后的数据库版本。回滚脚本用于将修改后的数据库版本转换成原数据库版本,在用户需要将修改后的数据库版本转换成原数据库版本时,服务器能够通过执行回滚脚本,将数据库中的数据恢复到被修改之前。
由于本申请实施例中的数据库设计系统对于数据库设计视图对应的数据结构采用增量存储的方式,在用户对原数据库版本的设计视图进行修改后,后台增量式地在原数据库版本的数据结构的基础上存储了修改的数据结构内容。由此,数据库设计系统可以根据增量存储的修改的数据结构生成相对于原数据库版本而言的升级脚本,数据设计系统还可以根据增量存储的修改的数据结构生成相对于修改后的数据库版本而言的回滚脚本。
示例性的,以上述图4中的用户对原数据库版本的修改为例,在用户执行上述图4中的修改之后,数据库设计系统根据原设计视图与新设计视图之间的差异信息,自动生成升级脚本与回滚脚本,下面提供了一种数据库设计系统中自动生成的脚本的示例。
上述脚本指示在表“EMPLOYEE”中不存在字段名称为“NAME”的列时,在表“EMPLOYEE”中插入字段名称为“NAME”、数据类型为“VARCHAR(32)”的列,字段名称为“NAME”的列位于字段名称为“PRIVILEGE_ID”的列之后,且与字段名称为“PRIVILEGE_ID”的列相邻。同时,在数据库中存在表名为“EMPLOYEES777”的表时,将该表重命名为“EMPLOYEES_NEW”。
在一种具体的实现方式中,数据库设计系统在生成上述全量脚本、升级脚本和回滚脚本之后,数据库设计系统能够向用户提供第二界面,该第二界面包括上述全量脚本、升级脚本和回滚脚本,用户能够通过第二界面对自动生成的脚本进行编辑,例如对sql语句进行注释,编辑后的脚本与编辑之前的脚本之间不同的sql语句能够被突出显示,例如用户修改的位置的指令与原脚本的显示颜色不同。
在一种具体的实现方式中,数据库设计系统在根据上述差异信息生成全量脚本和变更脚本之前,能够向用户提供第三界面,该第三界面包括数据库类型选项,用户可以通过数据库类型选项选择生成不同类型数据库对应的脚本。如图5中所示,图5是本申请实施例提供的一种第三界面的示意图,用户可以通过触发数据库类型选项,选择需要生成的数据库脚本的类型。可以理解,用户可以选择生成一种数据库类型的脚本,也可以选择同时生成多种数据库类型的脚本。例如,用户能够选择生成mysql类型的数据库对应的脚本,也可以选择生成oracle类型的数据库对应的脚本,还可以选择生上述两种数据库类型的脚本申请实施例不做具体限定。
在一种具体的实现方式中,数据库设计系统在根据上述差异信息生成全量脚本和变更脚本之前,能够向用户提供第四界面,该第四界面包括配置信息,配置信息包括脚本名称、脚本保存路径、脚本保存方式或脚本模式中的任意一项或多项。用户可以通过第四界面对生成的脚本的脚本名称、脚本保存路径、脚本保存方式以及脚本模式等脚本信息进行配置。其中,脚本保存方式是指新生成的脚本是采用追加方式保存还是采用覆盖方式保存,追加方式是指新生成的脚本不替换原有脚本,覆盖方式是指新生成的脚本替换原有的脚本。例如,在生成新的回滚脚本之前,已经存在原数据库版本的一个回滚脚本,如果选择追加方式的脚本保存方式,则在生成新的回滚脚本时,将保留原数据库版本的回滚脚本和新生成的回滚脚本,如果选择覆盖方式的脚本保存方式,则在生成新的回滚脚本之后,将原数据库版本的回滚脚本删除,保存新的回滚脚本。脚本模式包括普通模式和冪等模式,冪等模式的脚本执行多次的结果与执行一次的结果相同,普通模式的脚本在被执行多次时,每次生成的数据库可能出现不一致。
如图6所示,图6是本申请实施例提供的一种第四界面的示意图。用户能够通过如图6所示的界面上显示的配置选项配置脚本信息。图6中用户能够分别选择全量脚本、升级脚本以及回滚脚本的保存路径与升级方式,并编辑各个脚本的脚本名称。安全SQL选项用于选择生成普通模式的脚本还是冪等模式的脚本,当用户勾选安全SQL时,表示选择生成冪等模式的脚本,当用户不勾选安全SQL时,表示选择生成普通模式的脚本。
需要说明的是,上述第四界面可以包括如图6所示的配置选项中的更多的或者更少的配置选项,例如,配置界面可以只包括脚本名称、脚本保存路径、脚本保存方式以及脚本模式等配置选项中的部分选项。另外,数据库设计系统可以提供上述各个配置选项的默认选项,用户可以选择修改第四界面上的部分或者全部配置选项,在用户选择修改配置界面上的部分配置选项时,其他配置选项均采用默认配置。例如,用户可以手动编辑脚本名称,并选择安全SQL模式,对脚本保存路径以及脚本保存方式不进行修改。
本申请提供了一种数据库设计装置,该数据库设计装置可以部署在云数据中心中。如图7所示,该数据库设计装置700可以包括:
显示模块710,用于向用户提供第一界面,该第一界面包括原数据库版本的设计视图;
接收模块720,用于接收用户通过上述第一界面对设计视图的修改;
处理模块730,用于根据上述修改,生成数据库变更脚本,所述数据库变更脚本用于控制所述原数据库版本与修改后的数据库版本之间的转换。
可选地,上述数据库变更脚本包括升级脚本和回滚脚本,其中,升级脚本用于运行以实现将原数据库版本转换成修改后的数据库版本;回滚脚本用于运行以实现将修改后的数据库版本转换成所述原数据库版本。
可选地,数据库设计系统运行在云数据中心,用户为所述云数据中心购买数据库云服务的用户。
可选地,显示模块710,还用于向用户提供第二界面,该第二界面包括所述变更脚本;接收模块720,还用于接收用户通过第二界面对变更脚本的修改,得到修改后的变更脚本。
可选地,显示模块710,还用于向用户提供第三界面,该第三界面包括数据库类型选项;接收模块720,还用于接收用户通过数据库类型选项输入的目标数据库类型;处理模块730,具体用于根据所述修改,生成所述目标数据库类型对应的数据库变更脚本。
可选地,显示模块710,还用于向用户提供第四界面,该第四界面包括配置信息,配置信息包括脚本名称、脚本保存路径、脚本保存方式或脚本模式中的任意一项或多项;接收模块720,还用于接收用户通过所述第四界面对配置信息的设置;处理模块730具体用于根据所述配置信息生成和保存所述数据库变更脚本。
可选地,所述处理模块730具体用于:获取所述原数据库版本的设计视图和修改后的数据库版本的设计视图;根据所述原数据库版本的设计视图和所述修改后的数据库版本的设计视图的差异信息,生成所述数据库变更脚本。
上述单元之间互相可以通过通信通路进行数据传输,应理解,装置700包括的各模块可以为软件模块、也可以为硬件模块、或部分为软件模块部分为硬件模块。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的时延保证系统、时延保证装置和各个模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
由于本申请实施例提供的数据库设计系统中的各个模块可以分布式地部署在同一环境或不同环境中的多个计算机上,因此,本申请实施例还提供一种计算设备,在一些情况下,该计算设备可以为一个计算机系统,包括一个或多个计算机800。示例性地,如图8所示,每个计算机800包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
存储器801可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802和通信接口803用于执行本申请实施例提供的数据库设计方法。存储器801中还可以包括操作系统等其他运行进程所需的软件模块和数据等。且操作系统可以为LINUXTM,UNIXTM,WINDOWSTM等。
处理器802可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路。
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的数据库设计系统的部分或全部功能可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802还可以是通用处理器、数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本申请实施例的数据库设计系统的部分功能。
通信接口803使用例如但不限于收发器一类的收发模块,来实现计算机800与其他设备或通信网络之间的通信。
总线804可包括在计算机800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
上述每个计算机800间通过通信网络建立通信通路。每个计算机800用于数据库设计系统的部分功能。任一计算机800可以为云数据中心中的计算机(例如:服务器),或边缘数据中心中的计算机。
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。提供数据库设计云服务的计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行这些计算机程序指令时,全部或部分地产生按照本申请实施例图2所述的流程或功能。
所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质存储有提供数据库设计云服务的计算机程序指令。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以为非瞬态的可读存储介质,当计算机可读存储介质中的指令被计算机执行时,该计算机用于执行本申请提供的数据库设计方法。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,在被计算设备执行时,该计算设备执行本申请实施例提供的数据库设计方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“一个或多个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种数据库设计方法,其特征在于,所述方法应用于数据库设计系统,包括:
向用户提供第一界面,所述第一界面包括原数据库版本的设计视图;
接收所述用户通过所述第一界面对所述设计视图的修改;
根据所述修改,生成数据库变更脚本,所述数据库变更脚本用于控制所述原数据库版本与修改后的数据库版本之间的转换。
2.根据权利要求1所述的方法,其特征在于,所述数据库变更脚本包括升级脚本和回滚脚本,所述升级脚本用于运行以实现将原数据库版本转换成修改后的数据库版本;所述回滚脚本用于运行以实现将所述修改后的数据库版本转换成所述原数据库版本。
3.根据权利要求1或2所述的方法,其特征在于,所述数据库设计系统运行在云数据中心,所述用户为在所述云数据中心购买数据库云服务的用户。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
向用户提供第二界面,所述第二界面包括所述变更脚本;
接收所述用户通过所述第二界面对所述变更脚本的修改,得到修改后的变更脚本。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在根据所述修改,生成数据库变更脚本之前,所述方法还包括:
向所述用户提供第三界面,所述第三界面包括数据库类型选项;
接收所述用户通过所述数据库类型选项输入的目标数据库类型;
所述根据所述修改,生成数据库变更脚本,包括:
根据所述修改,生成所述目标数据库类型对应的数据库变更脚本。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
向所述用户提供第四界面,所述第四界面包括配置信息,所述配置信息包括脚本名称、脚本保存路径、脚本保存方式或脚本模式中的任意一项或多项;
接收所述用户通过所述第四界面对所述配置信息的设置;
所述根据所述修改,生成数据库变更脚本,包括:
根据所述配置信息生成和保存所述数据库变更脚本。
7.根据权利要求1至6中任一项所述的方法,其特征在于,根据所述修改,生成数据库变更脚本,包括:
获取所述原数据库版本的设计视图和修改后的数据库版本的设计视图;
根据所述原数据库版本的设计视图和所述修改后的数据库版本的设计视图的差异信息,生成所述数据库变更脚本。
8.一种数据库设计装置,其特征在于,所述装置应用于数据库设计系统,包括:
显示模块,用于向用户提供第一界面,所述第一界面包括原数据库版本的设计视图;
接收模块,用于接收所述用户通过所述第一界面对所述设计视图的修改;
处理模块,用于根据所述修改,生成数据库变更脚本,所述数据库变更脚本用于控制所述原数据库版本与修改后的数据库版本之间的转换。
9.根据权利要求8所述的装置,其特征在于,所述数据库变更脚本包括升级脚本和回滚脚本,所述升级脚本用于运行以实现将原数据库版本转换成修改后的数据库版本;所述回滚脚本用于运行以实现将所述修改后的数据库版本转换成所述原数据库版本。
10.根据权利要求8或9所述的装置,其特征在于,所述数据库设计系统运行在云数据中心,所述用户为所述云数据中心购买数据库云服务的用户。
11.根据权利要求8至10中任一项所述的装置,其特征在于,
所述显示模块,还用于向用户提供第二界面,所述第二界面包括所述变更脚本;
所述接收模块,还用于接收所述用户通过所述第二界面对所述变更脚本的修改,得到修改后的变更脚本。
12.根据权利要求8至11中任一项所述的装置,其特征在于,
所述显示模块,还用于向所述用户提供第三界面,所述第三界面包括数据库类型选项;
所述接收模块,还用于接收所述用户通过所述数据库类型选项输入的目标数据库类型;
所述处理模块具体用于:
根据所述修改,生成所述目标数据库类型对应的数据库变更脚本。
13.根据权利要求8至12中任一项所述的装置,其特征在于,
所述显示模块,还用于向所述用户提供第四界面,所述第四界面包括配置信息,所述配置信息包括脚本名称、脚本保存路径、脚本保存方式或脚本模式中的任意一项或多项;
所述接收模块,还用于接收所述用户通过所述第四界面对所述配置信息的设置;
所述处理模块具体用于:
根据所述配置信息生成和保存所述数据库变更脚本。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述处理模块具体用于:
获取所述原数据库版本的设计视图和修改后的数据库版本的设计视图;
根据所述原数据库版本的设计视图和所述修改后的数据库版本的设计视图的差异信息,生成所述数据库变更脚本。
15.一种计算设备,其特征在于,包括处理器和存储器,所述存储器用于存储指令,所述处理器用于执行所述指令,当所述处理器执行所述指令时,执行如权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在网络设备上运行时执行如权利要求1至7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010544344.4A CN113806325A (zh) | 2020-06-15 | 2020-06-15 | 数据库设计方法、装置及相关设备 |
PCT/CN2021/095696 WO2021254104A1 (zh) | 2020-06-15 | 2021-05-25 | 数据库设计方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010544344.4A CN113806325A (zh) | 2020-06-15 | 2020-06-15 | 数据库设计方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806325A true CN113806325A (zh) | 2021-12-17 |
Family
ID=78944138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010544344.4A Pending CN113806325A (zh) | 2020-06-15 | 2020-06-15 | 数据库设计方法、装置及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113806325A (zh) |
WO (1) | WO2021254104A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965735B (zh) * | 2015-06-18 | 2018-10-19 | 北京京东尚科信息技术有限公司 | 用于生成升级sql脚本的装置 |
US10467202B2 (en) * | 2017-07-21 | 2019-11-05 | Bank Of America Corporation | System for multi-release and parallel development of a database |
CN109325046A (zh) * | 2018-10-25 | 2019-02-12 | 深圳壹账通智能科技有限公司 | 数据库脚本生成方法、装置、介质及电子设备 |
CN110633284B (zh) * | 2019-09-19 | 2022-04-29 | 中国工商银行股份有限公司 | 数据库中表的变更方法及装置 |
CN110825413A (zh) * | 2019-11-04 | 2020-02-21 | 江苏金智教育信息股份有限公司 | 一种数据库升级方法和装置以及应用部署升级方法和装置 |
-
2020
- 2020-06-15 CN CN202010544344.4A patent/CN113806325A/zh active Pending
-
2021
- 2021-05-25 WO PCT/CN2021/095696 patent/WO2021254104A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021254104A1 (zh) | 2021-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
WO2020119485A1 (zh) | 一种页面显示方法、装置、设备及存储介质 | |
US10481884B2 (en) | Systems and methods for dynamically replacing code objects for code pushdown | |
US7917888B2 (en) | System and method for building multi-modal and multi-channel applications | |
WO2021184725A1 (zh) | 用户界面测试方法、装置、存储介质及计算机设备 | |
US11429365B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
US20240045850A1 (en) | Systems and methods for database orientation transformation | |
CN113076096B (zh) | 一种桌面应用程序开发方法、装置、设备及存储介质 | |
US10331423B1 (en) | Utilizing cross platform streamable user interfaces to reduce software deployment frequency caused by user interface improvements | |
US10445675B2 (en) | Confirming enforcement of business rules specified in a data access tier of a multi-tier application | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
CN109614088B (zh) | 表单组件生成方法及装置 | |
WO2023035563A1 (zh) | 小程序跨应用迁移方法、设备、终端、系统及存储介质 | |
CN111506300A (zh) | 一种小程序生成方法、装置、设备及存储介质 | |
WO2023051125A1 (zh) | 结构化数据的版本管理方法、装置及相关设备 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
CN114153473A (zh) | 模块集成方法、装置、存储介质及电子设备 | |
US20210124752A1 (en) | System for Data Collection, Aggregation, Storage, Verification and Analytics with User Interface | |
CN113656005A (zh) | 应用组件库构建方法、应用组件配置方法及相关装置 | |
CN111984300A (zh) | 代码复制方法及装置、电子设备和计算机可读存储介质 | |
CN113806325A (zh) | 数据库设计方法、装置及相关设备 | |
CN112394920B (zh) | 一种应用软件开发方法、平台和电子设备 | |
CN113806327A (zh) | 一种数据库设计方法、装置及相关设备 | |
WO2023279752A1 (zh) | 数据库模型的版本管理方法、装置及相关设备 | |
US11888937B2 (en) | Domain specific provider contracts for core data services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |