CN102682038A - 一种数据库变更方法以及装置 - Google Patents

一种数据库变更方法以及装置 Download PDF

Info

Publication number
CN102682038A
CN102682038A CN2011100668955A CN201110066895A CN102682038A CN 102682038 A CN102682038 A CN 102682038A CN 2011100668955 A CN2011100668955 A CN 2011100668955A CN 201110066895 A CN201110066895 A CN 201110066895A CN 102682038 A CN102682038 A CN 102682038A
Authority
CN
China
Prior art keywords
database
change
information
sql statement
action type
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
CN2011100668955A
Other languages
English (en)
Inventor
王涛
陈立
张瑞
陈涛
张中靖
陈栋
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN2011100668955A priority Critical patent/CN102682038A/zh
Publication of CN102682038A publication Critical patent/CN102682038A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据库变更方法以及装置,主要技术方案包括:数据库保存用户在登录后选择的数据库变更对象的信息以及对数据库变更对象执行的操作类型的信息;在用户对选择的数据库变更对象执行与选择的操作类型相应的操作后,将与本次变更对应的结构化查询语言SQL语句应用到数据库的开发库;其中,与本次变更对应的SQL语句根据保存的数据库变更对象的信息以及操作类型的信息生成。根据该技术方案,能够提高数据库变更的效率。

Description

一种数据库变更方法以及装置
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库变更方法以及装置。
背景技术
数据库(Database,DB)是按照数据结构来组织、存储和管理数据的仓库。随着信息技术和市场的发展,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统,都在各个方面得到了广泛应用。
数据库提供了对数据的存储功能,并且能够支持用户对所保存的数据的访问功能。实际应用中,用户往往对数据库中保存的数据存在变更的需求,例如,新增数据、删除数据、修改数据等,因此,数据库也能够支持用户对数据库进行变更的需求。
如图1所示,用户对数据库进行变更,主要通过如下步骤实现:
步骤101、数据库开发人员根据数据库变更需求,编写结构化查询语言(Structured Query Language,SQL)语句。
该步骤中,数据库变更需求一般包括数据库的变更对象信息以及对该数据库变更对象执行的操作类型信息。
步骤102、数据库开发人员将编写的SQL语句发送给数据库管理员(Database administrator,DBA)。
步骤103、DBA对接收的SQL语句进行审核,即判断该SQL语句的编写是否准确。
步骤104、DBA对接收的SQL语句审核通过后,根据该SQL语句确定数据库变更需求。
步骤105、DBA登录数据库,根据确定出的数据库变更需求,对数据库执行与该变更需求相应的操作。
步骤106、DBA在完成对数据库的操作后,将数据库开发人员编写的SQL语句应用到该数据库的开发库。
该步骤中,将SQL语句应用到数据库的开发库,即将该SQL语句同步到该开发库,并在该开发库中执行。
至此,对数据库进行变更的流程结束。
根据上述流程,DBA能够根据数据库开发人员编写的变更数据库的SQL语句确定要执行的变更操作,并且通过登录数据库完成对该数据库的相应变更。但在实际应用中,上述过程可能存在如下问题:
一方面,数据库开发人员需要根据数据库变更需求,编写相应的SQL语句,该过程的执行取决于数据库开发人员对SQL语言的掌握程度,如果数据库开发人员对SQL语言不熟练,该编写过程可能需要耗费大量的时间。而且SQL语句对于语句中每个命令的编写都有严格的要求,例如,编写时采用的全角或半角选择错误都可能导致语句无法被执行,因此,该过程很难保证SQL语句的正确性,需要DBA严格审核,并且在审核出错误时需要反复修改。该过程明显地降低了数据库变更的效率。
另一方面,DBA需要对数据库开发人员编写的SQL语句进行审核以及识别,该过程的执行取决于DBA对SQL语言的掌握程度,如果DBA对SQL语言不熟练,审核过程以及识别过程都需要耗费大量的时间。而且SQL语句对于语句中每个命令的编写都有严格的要求,为了满足该要求,DBA通常需要耗费较多时间对数据库开发人员编写的SQL进行审核,以确保SQL语句的准确性。可见,该过程也降低了数据库的变更效率。
综上所述,采用现有技术对数据库变更的效率低。
发明内容
有鉴于此,本申请实施例提供一种数据库变更方法以及装置,以提高数据库变更的效率。
本申请实施例通过如下技术方案实现:
根据本申请实施例的一个方面,提供了一种数据库变更方法,包括:
数据库保存用户在登录后选择的数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息;
在所述用户对所述数据库变更对象执行与所述操作类型相应的操作后,将与本次变更对应的结构化查询语言SQL语句应用到所述数据库的开发库;
其中,与本次变更对应的SQL语句根据保存的所述数据库变更对象的信息以及所述操作类型的信息生成。
根据本申请实施例的另一个方面,还提供了一种数据库变更装置,该装置位于数据库中,包括:
信息存储单元,用于保存用户在登录数据库后选择的数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息;
SQL语句生成单元,用于根据所述信息存储单元保存的所述数据库变更对象的信息以及所述操作类型的信息,生成与本次变更对应的结构化查询语言SQL语句;
SQL语句应用单元,用于在所述用户对所述数据库变更对象执行与所述操作类型相应的操作后,将所述SQL语句生成单元生成的与本次变更对应的SQL语句应用到所述数据库的开发库。
通过本申请实施例提供的上述至少一个技术方案,数据库首先保存用户在登录后选择的数据库变更对象的信息以及对数据库变更对象执行的操作类型的信息,在用户对选择的数据库变更对象执行与选择的操作类型相应的操作后,将与本次变更对应的SQL语句应用到数据库的开发库;其中,与本次变更对应的SQL语句根据保存的数据库变更对象的信息以及操作类型的信息生成。根据该技术方案,用户对数据库执行的变更操作可以直接登录该数据库实现,并且由数据库自动根据用户的变更需求(即数据库变更对象以及操作类型的信息)生成相应的SQL语句,该过程与现有技术相比,无需由数据库开发人员预先根据数据库的变更需求编写SQL语句,也无需DBA审核以及识别SQL语句,从而通过在数据库变更过程实施该技术方案,能够提高数据库变更的效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为现有技术提供的用户对数据库进行变更的流程图;
图2为本申请方法实施例提供的数据库变更的一种实现流程图;
图3为本申请方法实施例提供的数据库变更的又一种实现流程图;
图4为本申请方法实施例提供的数据库变更的测试流程图;
图5为本申请方法实施例提供的数据库的变更、测试以及发布的优选实现流程图;
图6为本申请装置实施例提供的数据库变更装置的一个示意图;
图7为本申请装置实施例提供的数据库变更装置的又一个示意图;
图8为本申请装置实施例提供的数据库变更装置的又一个示意图。
具体实施方式
为了给出提高数据库变更的效率的实现方案,本申请实施例提供了一种数据库变更方法以及装置,该技术方案可以应用于数据库变更的过程,既可以实现为一种方法,也可以实现为一种产品。以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
方法实施例
本申请方法实施例提供的一种数据库变更方法,该方法可以应用于数据库系统中。通过该方法可以提高数据库变更的效率,具体地,该数据库变更方法可以有两种具体实施方式。
具体实施实施一
该具体实施方式一提供了数据库变更的一种实现方法,如图2所示,该方法主要包括如下步骤201至步骤205:
步骤201、数据库系统根据用户登录数据库的请求,在对该用户身份验证通过后允许该用户登录数据库。
该步骤201中,用户可以按照常规的提交用户名以及密码的登录方式登录该数据库,也可以在此基础上提交动态口令的方式登录该数据库,具体方式为现有技术,此处不再详细描述。此处,用户可以为数据库开发人员、使用数据库的普通用户或DBA等。并且,若用户非DBA,则需要预先请求数据库开放相应的对数据库的操作权限。
该步骤201中,若数据库对该用户身份验证不通过,则不允许该用户登录数据库。应当理解,该步骤201中,数据库执行对用户身份验证的过程的目的在于提高数据库的安全性,在具体实现时,也可以允许用户直接登录数据库,而无需执行此步骤。
步骤202、数据库获取用户在登录数据库后提交的数据库变更对象信息以及对该数据库变更对象的操作类型信息。
该步骤202中,数据库变更对象信息可以为该待变更的数据库对象的标识信息,其中,数据库对象的标识可以有多种确定方式,例如,数据库对象的标识可以根据该数据库对象的归属信息确定,也可以根据创建该数据库对象所对应的用户信息确定,或者两者结合确定数据库对象的标识。实际应用中,数据库对象的标识可以灵活确定,此处不再一一列举;对该数据库变更对象的操作类型信息可以为修改、删除、新建或这几种方式的组合。
具体地,该步骤202中,数据库系统会对用户登录数据库后的用户行为进行监测,确定用户在数据库提供的菜单界面上选择的数据库变更对象以及相应的操作类型信息。
步骤203、数据库保存用户在登录后提交的数据库变更对象的信息以及对该数据库变更对象执行的操作类型信息。
该步骤203中,可以将数据库变更对象的信息以及对该数据库变更对象执行的操作类型信息保存为系统日志;或者,可以在系统中建立包括变更对象以及操作类型两个字段的临时列表,将上述信息保存在该列表中。通过保存数据库变更对象的信息及相应的操作类型信息,可以确定用户对数据库执行的操作。具体地,在保存用户选择的数据库变更对象的信息及相应的操作类型信息时,可以通过该用户的用户标识保存的该信息,以确定是哪个用户对数据库执行的操作。
步骤204、数据库在该用户对数据库变更对象执行与操作类型信息相应的操作后,根据保存的数据库变更对象的信息以及操作类型信息生成与本次变更对应的SQL语句。
该步骤204中,对于具备SQL语句解析功能的数据库,可以直接使用该数据库的现有功能,根据保存的相关信息生成SQL语句;对于不具备SQL语句解析功能的数据库,可以为该数据库添加相应的SQL语句解析功能,通过该功能,能够将数据库变更需求(即保存的数据库对象信息以及操作类型信息)生成对应的SQL语句。
步骤205、数据库将与本次变更对应的SQL语句应用到数据库的开发库。
该步骤205中,数据库将与本次变更对应的SQL语句应用到数据库的开发库,主要包括两个过程:即将该SQL语句同步到数据库的开发库的过程,以及在数据库的开发库执行该SQL语句的过程。
至此,数据库的变更流程结束。
为了更好地理解本申请实施例提供的技术方案,以下针对上述步骤203给出一个具体示例,即数据库保存用户在登录后提交的数据库变更对象的信息以及对该数据库变更对象执行的操作类型信息,可以通过如下具体手段实现:
数据库变更对象的类型可以为表或表中的字段,针对该两种类型的数据库对象的存储,可以在数据库系统后台、创建两张临时表,一张临时表用于标识表的变更情况(称为变更表),一张临时表用于标识字段的变更情况(称为变更字段表)。这两张临时表可以进一步设置状态标识,该状态标识用于表示用户对该数据库变更对象执行相应的操作的进度,通过该状态标识对相应变更表或变更字段表的状态进行标识,例如,状态标识为“New”,表示当前表(变更表或变更字段表)正在变更中,即用户正在执行操作;状态标识为“Arch”表示当前表(变更表或变更字段表)已经操作完毕并且归档;状态标识为“Reject”表示当前表(变更表或变更字段表)的操作已经被拒绝。
数据库保存用户在登录后提交的数据库变更对象的信息以及对该数据库变更对象执行的操作类型信息,首先要根据确定的数据库操作对象的类型,确定为该类型的数据库对象创建的临时表,并根据确定的数据库操作对象以及对该数据库变更对象的操作类型信息,填充相应的临时表并保存。
一个具体的应用中,变更表可以包括如下要素:
站点名、方案名、项目名、表名;该四个要素均用于描述发生变更的数据库对象,通过该四个要素可以确定唯一的数据库对象(表)。如果一个数据库对象在2个项目里同时发生了变更,则在该变更表里记录2条分别对应不同项目的记录,该记录可以包括:站点名、方案名、项目名、表名、表空间、项目状态、变更ID以及备注信息等。
一个具体的应用中,变更字段表可以包括如下要素:
站点名、方案名、项目名、表名、字段名;该五个要素均用于描述发生变更的数据库对象,通过该五个要素可以确定唯一的数据库对象(表中的字段)。如果一个字段发生了变化,则变更表和变更字段表会同时会保存记录。如果一个字段被变更多次,则以流水帐的方式进行记录。
以上对数据库如何保存数据库变更对象信息的过程进行了描述,在通过上述方式保存用户选择的数据库变更对象信息的基础上,可以进一步保存变更表或变更字段所标识的数据库变更对象所对应的操作类型信息,该操作类型信息可以通过扩展字段表示。例如:
在字段的变更过程中,可能存在多个操作动作,如插入、修改、删除、重命名等,可以为每种操作类型分配标识,如标识为“New”,标识新加的表字段;标识为“Edit”,表示修改字段;标识为“Delete”,表示删除字段;标识为“Rename”标识重命名字段。
在添加上述标识的过程中,同时会把该标识与状态标识结合,例如将“New”标识为new_del、将edit的标识为edit_del、“Rename”:修改字段名。在保存的数据库对象信息及其操作类型信息归档时,取最后一次状态,例如,用于表示最后一次状态的表包括:站点名、方案名、项目名、表名、字段名、备注、项目状态、变更ID、操作类型、字段类型、字段长度、默认值、是否为空、是否是主键等。
变更表的情况与上述变更字段表的情况基本类似,即存在插入、修改、删除、重命名等操作类型,可以采用上述方式标记该数据库对象的操作类型信息,此处不再一一列举。
具体实施方式二
该具体实施方式二提供了数据库变更的又一种实现方法,如图3所示,该方法主要包括如下步骤:
步骤301、数据库系统根据用户登录数据库的请求,在对该用户身份验证通过后允许该用户登录数据库。
步骤302、数据库获取用户在登录数据库后提交的数据库变更对象信息以及操作类型信息。
步骤303、数据库保存用户在登录后提交的数据库变更对象的信息以及对该数据库变更对象执行的操作类型信息。
上述步骤301至步骤303的具体执行过程与图2对应流程的步骤201至步骤203的相应执行过程一致,此处不再对详细执行过程进行描述。
步骤304、数据库根据保存的数据库变更对象的信息以及操作类型信息生成与本次变更对应的SQL语句。
步骤305、数据库在该用户对数据库变更对象执行与操作类型信息相应的操作后,将与本次变更对应的SQL语句应用到数据库的开发库。
上述步骤301至步骤305的具体执行过程与上述步骤201至骤205的具体执行过程一致,此处不再赘述其具体执行过程。
根据上述实现数据库变更的具体实施方式一以及具体实施方式二,生成与本次变更对应的SQL语句的过程可以在该用户对该数据库变更对象执行与该操作类型信息相应的操作之前执行,也可以在该用户对该数据库变更对象执行与该操作类型信息相应的操作之后执行。
在图2对应流程的步骤205以及图3对应流程的步骤305中,数据库可以在满足相应的条件后(例如,用户对数据库变更对象执行与操作类型信息相应的操作后)主动执行将与本次变更对应的SQL语句应用到数据库的开发库的过程,也可以由用户触发执行该过程。具体地,用户触发执行该过程,即在数据库将与本次变更对应的SQL语句应用到该数据库的开发库之前,还进一步包括如下步骤:
接收用于指示将与本次变更对应的SQL语句应用到所述数据库的开发库的指示信息。
通常情况下,该用于指示将与本次变更对应的SQL语句应用到所述数据库的开发库的指示信息由执行此次数据库变更的用户发送。
通过本申请实施例提供的上述至少一个具体实施方式,数据库首先保存用户在登录后提交的数据库变更对象的信息以及对数据库变更对象执行的操作类型信息,在用户对数据库变更对象执行与操作类型信息相应的操作后,将与本次变更对应的SQL语句应用到数据库的开发库。根据该技术方案,用户对数据库执行的变更操作可以直接登录该数据库实现,并且由数据库自动根据用户的变更需求(即数据库变更对象以及操作类型信息)生成相应的SQL语句,该过程与现有技术相比,无需由数据库开发人员预先根据数据库的变更需求编写SQL语句,也无需DBA审核以及识别SQL语句,从而能够提高数据库变更的效率。
通过图2、图3以及对应的流程对本申请实施例提供的数据库的变更方法所涉及的主要流程进行了说明。实际应用中,在对数据库进行变更后,为了保证变更对数据库的正常运行不造成影响。需要进一步对此次变更进行测试。
具体地,在通过图2对应的流程或图3对应的流程完成对数据库的变更后,即在数据库将与本次变更对应的SQL语句应用到该数据库的开发库后,如图4所示,还进一步执行如下测试流程:
步骤401、将与本次变更对应的SQL语句同步到该数据库的测试库。
该步骤401中,数据库可以将每次变更对应的SQL语句分多次同步到数据库,也可以将多次变更对应的SQL语句一次同步到数据库。
步骤402、测试库对接收的SQL语句进行测试。
该步骤402中,测试库对接收的SQL语句进行测试,即在测试环境中执行该SQL语句,具体测试过程为现有技术,此处不详细描述。
至此,对数据库变更对应的SQL语句测试的流程结束。
根据本申请实施例提供的上述数据库变更以及测试的实施例,由于数据库能够保存用户在登录后提交的数据库变更对象的信息以及对该数据库变更对象执行的操作类型信息,从而在测试时,可以根据保存的上述信息,对根据保存的信息生成的SQL语句进行相应的测试。而现有技术由于数据库未保存上述信息,是由数据库测试人员根据DBA的指示完成相应的测试,在数据库变更比较频繁的情况下,可能存在DBA忘记需要测试哪些SQL语句的问题,而本申请通过上述方式克服了该问题,能够保证对每一条SQL语句进行测试。
在图4对应流程的步骤401中,数据库可以在满足相应的条件后(例如,数据库将与本次变更对应的SQL语句应用到该数据库的开发库后)主动执行将与本次变更对应的SQL语句同步到该数据库的测试库的过程,也可以由用户触发执行该过程。具体地,用户触发执行该过程,即在数据库将与本次变更对应的SQL语句同步到该数据库的测试库之前,还进一步包括如下步骤:
接收用于指示将与本次变更对应的SQL语句同步到该数据库的测试库进行测试的指示信息。
通常情况下,该用于指示将与本次变更对应的SQL语句同步到该数据库的测试库进行测试的指示信息由执行此次数据库变更的用户发送,也可以由专门的测试人员发送,例如,数据库测试人员或DBA等。
通过图4以及对应的流程,在对数据库变更对应的SQL语句完成测试后,如果测试通过,还需要进一步执行数据库变更的发布流程,即在确定测试结果为通过时,还执行如下步骤:
将与本次变更对应的SQL语句发布到该数据库变更对象所在的应用环境。
实际应用中,数据库可以将每次变更对应的SQL语句分多次发布到该数据库变更对象所在的应用环境,也可以将多次变更对应的SQL语句一次发布到该数据库变更对象所在的应用环境。
根据本申请实施例提供的上述数据库变更、测试以及发布的实施例,由于数据库能够保存用户在登录后提交的数据库变更对象的信息以及对该数据库变更对象执行的操作类型信息,从而在数据库变更发布时,可以根据保存的上述信息,对根据保存的信息生成的SQL语句进行发布。而现有技术由于数据库未保存上述信息,是DBA通过操作数据库完成上述的发布过程,由于DBA需要处理大量的数据库变更,很难记录每个数据库变更内容,可能存在真正发布数据库变更的时候,出现遗漏的问题,而本申请通过上述方式克服了该问题,能够保证对每一条通过测试的SQL语句进行发布。
为了更好地理解本申请实施例所提供的上述技术方案,以下对本申请实施例在具体应用时所涉及的数据库变更、测试以及发布阶段进行详细说明。其中,数据库变更的操作主要由数据库开发人员发起、数据库变更测试的操作主要由数据库测试人员发起、数据库变更发布的流程主要由DBA发起。应当理解,此处仅为具体实现时的一种举例,实际应用中,该三个过程可以由同一用户发起,此处不再详细举例。
如图5所示,该数据库的变更、测试以及发布的优选实现流程,主要包括如下阶段以及步骤:
数据库变更的开发阶段,主要包括如下步骤501至步骤504:
步骤501、数据库开发人员登录数据库后,选择Site(站点)、Schema(结构名)。
其中,Site表示该数据库对象的归属信息,例如,归属于哪个站点,该站点用于标识对该数据库具有所属权的对象,例如,某部门或某单位等;Schema表示该数据库对应在注册时使用的用户信息
步骤502、开发人员选择项目,如果数据库中存在要变更的项目,则直接选择,如果数据库中没有要变更的项目,则新建该项目。
其中,项目为可选项,用于表示要变更的数据类型。
上述步骤501以及步骤502中,通过选择Site(站点)、Schema(结构名)以及项目信息,可以唯一地确定数据库变更对象,即确定要对哪个数据库中的哪些数据类型执行变更。
步骤503、完成上述步骤后,开发人员可以进一步选择对所选择的数据库变更对象的操作类型,并对该数据库变更对象执行相应的操作。
该步骤503中,选择的操作类型可以为新建表、修改表等。
在上述步骤501、步骤502以及步骤503的执行过程中,数据库需要记录用户选择的用于表示数据库变更对象的Site、Schema以及项目信息,还需要记录操作类型信息。
在执行完成该步骤503中,可以选择性地向DBA发送邮件通知,以告知DBA本次对数据库的变更内容,例如,数据库变更对象信息以及相应的操作类型信息。
步骤504、获取数据库保存的信息,应用到数据库的开发库。
该步骤504中,可以在数据库开发相应的菜单选项,例如,开发“自助执行到开发库”的选项,通过点击该选项,数据库能够完成将本次变更对应的SQL语句应用到数据库的开发库的过程。即用户在执行完成选择的操作类型(如修改表、新建表)后,调用保存的数据库变更对象信息以及操作类型信息,通过点击“自助执行到开发库”这个选项,完成将本次变更对应的SQL语句应用到开发库的过程。该步骤的主要目的是让开发人员提交的数据库变更内容应用到开发库上,在点击“自助执行到开发库”后,发起应用请求,系统会根据用户的变更内容自动解析得到相应的SQL语句,并将该SQL语句执行到相应的开发库。
完成上述步骤504后,进入数据库变更的测试阶段。
数据库变更的测试阶段,主要包括如下步骤505:
步骤505、测试人员登录数据库,调用数据库保存的用于表示数据库变更对象的site、schema以及项目信息,以及操作类型信息,将调用的信息发送到该数据库的测试库进行测试。
该步骤505中,可以在数据库开发相应的菜单选项,例如,开发“自助执行到测试库”的选项,通过点击该选项,数据库能够完成将本次变更对应的SQL语句同步到数据库的测试库进行测试的过程。即用户在执行完成选择的操作类型(如修改表、新建表)后,调用保存的数据库变更对象信息以及操作类型信息,通过点击“自助执行到测试库”这个选项,完成本次变更对应的SQL语句同步到测试库进行测试的过程。该步骤的主要目的是让测试人员提交的数据库变更内容在测试库进行测试,在点击“自助执行到测试库”后,发起测试请求,系统会根据用户的变更内容自动解析得到相应的SQL语句,并将该SQL语句执行到相应的测试库。
若上述步骤505测试通过,进入数据库变更发布阶段。
数据库变更的发布阶段,主要包括如下步骤506:
步骤506、DBA登录数据库,调用数据库保存的用于表示数据库变更对象的site、schema以及项目信息,以及操作类型信息,将根据调用的信息生成的SQL语句执行到应用环境。
该步骤506中,将根据调用的信息生成的SQL语句执行到应用环境,即在数据库变更对象所在的应用环境执行根据调用的信息生成的SQL语句。该步骤506中,可以在数据库开发相应的菜单选项,例如,开发“生产项目SQL”的选项,通过点击该选项,能够完成在数据库变更对象所在的应用环境执行根据调用的信息生成的SQL语句的过程。
若成功执行到应用环境,则归档此变更,通过归档此变更表示本次数据库变更的发布已经结束。在系统后台,自动把该本次变更内容标识为历史变更内容,且一切变更中的数据从临时表迁移到正式表中去。如果由于种种原因未成功执行到应用环境,则可以选择回滚此变更,回滚变更是指本次变更的所有操作全部作废。在系统里把该数据库变更内容全部删除。
以上流程中,数据库开发人员、测试人员以及DBA可以对应一个用户,也可以对应多个用户。
图5对应的流程的一个具体应用实例如下:
假设存在DBA-甲、开发人员-乙,测试人员-丙三个角色,最近起了一个名为“WTO”的项目,该项目经过调研分析,需要对杭州数据库的Scott帐号进行新建表操作。则相应的数据库变更、测试以及发布流程如下:
乙登录数据库,针对Site,Schema,项目做了如下选择:杭州数据库,Scott,“WTO”。
乙在选择确定所要变更的Site、Scchema以及项目后,进入“新建表”操作,乙按照表单格式填写了相应信息,确认无误后保存。
乙在确认所有的变更都已经操作完成后,调用记录的变更内容(包括数据库变更对象以及操作类型),点击“自助执行到开发库”选项,系统自动把本次变更对应的SQL语句执行到了数据库的开发库。
乙在确定提交的变更内容都已经实施到数据库的开发库后,乙可以进行后续的开发工作。
丙接到乙或DBA的通知,需要测试“WTO”项目,该通知中包括待测试的数据库变更对象信息。
丙登录数据库,调用记录的变更内容(包括数据库变更对象以及操作类型),点击“自助执行到测试库”选项,系统自动把本次变更对应的SQL语句执行到了数据库的测试库。
丙在确认提交的数据库变更内容都已经实施到数据库的测试库后,丙可以进行后续的测试工作。
甲接到丙在测试通过后发送的通知,需要发布“WTO”项目,该通知中包括待发布的数据库变更对象信息。。
甲登录数据库,调用记录的变更内容(包括数据库变更对象以及操作类型),点击“生产项目SQL”选项,系统就会将本次变更对应的SQL语句执行到数据库变更对象所在的生产环境(或应用环境)。
在成功将本次变更对应的SQL语句执行到数据库变更对象所在的生产环境后,点击“归档项目”,表示该项目已经发布上线,相关操作也已经归并到正式表里。
至此,流程结束。
根据本申请提供的上述实施例,数据库能够保存用户选择的数据库变更对象信息以及操作类型信息,从而保证每次数据库变更的属性都是唯一的,便于后续对该数据库变更操作进行测试以及发布。
本申请实施例支持用户完成数据库变更操作后,将变更内容汇总通过邮件发送给DBA的功能,以使DBA知晓数据库的变更情况,以便及时对数据库进行管理与控制。
装置实施例
本申请装置实施例提供的一种数据库变更装置,通过该装置可以提高数据库变更的效率。
如图6所示,该装置可以位于数据库中,并且该数据库变更装置可以进一步被划分为如下单元:
信息存储单元601、SQL语句生成单元602以及SQL语句应用单元603;
其中:
信息存储单元601,用于保存用户在登录数据库后选择的数据库变更对象的信息以及对数据库变更对象执行的操作类型的信息;
SQL语句生成单元602,用于根据信息存储单元601保存的数据库变更对象的信息以及操作类型的信息,生成与本次变更对应的结构化查询语言SQL语句;
SQL语句应用单元603,用于在用户对数据库变更对象执行与操作类型相应的操作后,将SQL语句生成单元602生成的与本次变更对应的SQL语句应用到数据库的开发库。
本申请装置实施例提供的一个优选实施方式中,图6所示装置包括的SQL语句应用单元603,具体用于:
在接收到用于指示将与本次变更对应的SQL语句应用到数据库的开发库的指示信息后,将与本次变更对应的SQL语句应用到数据库的开发库。
本申请装置实施例提供的一个优选实施方式中,图6所示装置包括的SQL语句生成单元602,具体用于:
在用户对数据库变更对象执行与操作类型相应的操作之前,根据保存的数据库变更对象的信息以及操作类型的信息生成与本次变更对应的SQL语句;或
在用户对数据库变更对象执行与操作类型相应的操作之后,根据保存的数据库变更对象的信息以及操作类型的信息生成与本次变更对应的SQL语句。
如图7所示,本申请装置实施例提供的一个优选实施方式中,图6所示装置还可以进一步包括:
SQL语句测试单元604,用于在SQL语句应用单元603将与本次变更对应的SQL语句应用到数据库的开发库后,将与本次变更对应的SQL语句同步到数据库的测试库进行测试。
本申请装置实施例提供的一个优选实施方式中,图7所示装置SQL语句测试单元604,具体用于:
在接收到用于指示将与本次变更对应的SQL语句同步到数据库的测试库进行测试的指示信息后,将与本次变更对应的SQL语句同步到数据库的测试库进行测试。
如图8所示,本申请装置实施例提供的一个优选实施方式中,图7所示装置还可以进一步包括:
SQL语句发布单元605,用于在SQL语句测试单元604将与本次变更对应的SQL语句同步到数据库的测试库进行测试并且在确定测试结果为通过时,将与本次变更对应的SQL语句发布到数据库变更对象所在的应用环境。
本申请装置实施例提供的一个优选实施方式中,图6所示装置包括的信息存储单元601,具体用于:
确定用户选择的数据库操作对象以及对该数据库变更对象的操作类型信息;
根据确定的所述数据库操作对象的类型,确定针对所述类型的数据库对象创建的临时表;
根据确定的所述数据库操作对象以及对所述数据库变更对象的操作类型信息,填充所述临时表并保存。
本申请装置实施例提供的一个优选实施方式中,图6所示装置包括的信息存储单元601,还用于:
通过所述用户的用户标识对保存的所述数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息进行标识;或/和
根据所述用户对所述数据库变更对象执行与所述操作类型相应的操作的进度,通过设定的状态标识对保存的所述数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息进行标识。
本领域技术人员应该能够理解,上述数据库变更装置包括的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要该数据库变更装置具有上述功能,都应该在本申请的保护范围之内。并且,上述数据库变更装置所实现的功能与上述方法实施例部分数据库所执行的步骤一一对应,具体实现细节已在上述方法实施例中描述,此处不再赘述。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种数据库变更方法,其特征在于,包括:
数据库保存用户在登录后选择的数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息;
在所述用户对所述数据库变更对象执行与所述操作类型相应的操作后,将与本次变更对应的结构化查询语言SQL语句应用到所述数据库的开发库;
其中,与本次变更对应的SQL语句由所述数据库根据保存的所述数据库变更对象的信息以及所述操作类型的信息生成。
2.如权利要求1所述的方法,其特征在于,将与本次变更对应的SQL语句应用到所述数据库的开发库之前,还包括:
接收用于指示将与本次变更对应的SQL语句应用到所述数据库的开发库的指示信息。
3.如权利要求1所述的方法,其特征在于,根据保存的所述数据库变更对象的信息以及所述操作类型的信息生成与本次变更对应的SQL语句的方式,包括:
在所述用户对所述数据库变更对象执行与所述操作类型相应的操作之前,根据保存的所述数据库变更对象的信息以及所述操作类型的信息生成与本次变更对应的SQL语句;或
在所述用户对所述数据库变更对象执行与所述操作类型相应的操作之后,根据保存的所述数据库变更对象的信息以及所述操作类型的信息生成与本次变更对应的SQL语句。
4.如权利要求1所述的方法,其特征在于,将与本次变更对应的SQL语句应用到所述数据库的开发库后,还包括:
将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试。
5.如权利要求4所述的方法,其特征在于,将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试之前,还包括:
接收用于指示将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试的指示信息。
6.如权利要求4所述的方法,其特征在于,将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试后,还包括:
在确定测试结果为通过时,将所述与本次变更对应的SQL语句发布到所述数据库变更对象所在的应用环境。
7.如权利要求1所述的方法,其特征在于,数据库保存用户在登录后选择的数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息,包括:
确定用户选择的数据库操作对象以及对该数据库变更对象的操作类型信息;
根据确定的所述数据库操作对象的类型,确定针对所述类型的数据库对象创建的临时表;
根据确定的所述数据库操作对象以及对所述数据库变更对象的操作类型信息,填充所述临时表并保存。
8.如权利要求7所述的方法,其特征在于,数据库保存用户在登录后选择的数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息,还包括:
通过所述用户的用户标识对保存的所述数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息进行标识;或/和
根据所述用户对所述数据库变更对象执行与所述操作类型相应的操作的进度,通过设定的状态标识对保存的所述数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息进行标识。
9.一种数据库变更装置,位于数据库中,其特征在于,包括:
信息存储单元,用于保存用户在登录数据库后选择的数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息;
SQL语句生成单元,用于根据所述信息存储单元保存的所述数据库变更对象的信息以及所述操作类型的信息,生成与本次变更对应的结构化查询语言SQL语句;
SQL语句应用单元,用于在所述用户对所述数据库变更对象执行与所述操作类型相应的操作后,将所述SQL语句生成单元生成的与本次变更对应的SQL语句应用到所述数据库的开发库。
10.如权利要求9所述的装置,其特征在于,所述SQL语句应用单元,具体用于:
在接收到用于指示将与本次变更对应的SQL语句应用到所述数据库的开发库的指示信息后,将与本次变更对应的SQL语句应用到所述数据库的开发库。
11.如权利要求9所述的装置,其特征在于,所述SQL语句生成单元,具体用于:
在所述用户对所述数据库变更对象执行与所述操作类型相应的操作之前,根据保存的所述数据库变更对象的信息以及所述操作类型的信息生成与本次变更对应的SQL语句;或
在所述用户对所述数据库变更对象执行与所述操作类型相应的操作之后,根据保存的所述数据库变更对象的信息以及所述操作类型的信息生成与本次变更对应的SQL语句。
12.如权利要求9所述的装置,其特征在于,还包括:
SQL语句测试单元,用于在所述SQL语句应用单元将与本次变更对应的SQL语句应用到所述数据库的开发库后,将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试。
13.如权利要求12所述的装置,其特征在于,所述SQL语句测试单元,具体用于:
在接收到用于指示将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试的指示信息后,将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试。
14.如权利要求12所述的装置,其特征在于,还包括:
SQL语句发布单元,用于在所述SQL语句测试单元将与本次变更对应的SQL语句同步到所述数据库的测试库进行测试并且在确定测试结果为通过时,将所述与本次变更对应的SQL语句发布到所述数据库变更对象所在的应用环境。
15.如权利要求9所述的装置,其特征在于,所述信息存储单元,具体用于:
确定用户选择的数据库操作对象以及对该数据库变更对象的操作类型信息;
根据确定的所述数据库操作对象的类型,确定针对所述类型的数据库对象创建的临时表;
根据确定的所述数据库操作对象以及对所述数据库变更对象的操作类型信息,填充所述临时表并保存。
16.如权利要求15所述的装置,其特征在于,所述信息存储单元,还用于:
通过所述用户的用户标识对保存的所述数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息进行标识;或/和
根据所述用户对所述数据库变更对象执行与所述操作类型相应的操作的进度,通过设定的状态标识对保存的所述数据库变更对象的信息以及对所述数据库变更对象执行的操作类型的信息进行标识。
CN2011100668955A 2011-03-18 2011-03-18 一种数据库变更方法以及装置 Pending CN102682038A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100668955A CN102682038A (zh) 2011-03-18 2011-03-18 一种数据库变更方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100668955A CN102682038A (zh) 2011-03-18 2011-03-18 一种数据库变更方法以及装置

Publications (1)

Publication Number Publication Date
CN102682038A true CN102682038A (zh) 2012-09-19

Family

ID=46813984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100668955A Pending CN102682038A (zh) 2011-03-18 2011-03-18 一种数据库变更方法以及装置

Country Status (1)

Country Link
CN (1) CN102682038A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677751A (zh) * 2015-12-29 2016-06-15 北京奇艺世纪科技有限公司 关系型数据库的调度方法及系统
CN108415991A (zh) * 2018-02-12 2018-08-17 广州市贝聊信息科技有限公司 一种sql审核方法与系统
CN111625552A (zh) * 2020-05-20 2020-09-04 北京百度网讯科技有限公司 数据收集方法、装置、设备和可读存储介质
CN112883050A (zh) * 2021-02-25 2021-06-01 中国工商银行股份有限公司 一种数据库的数据变更方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126680A (ja) * 2002-09-30 2004-04-22 Fujitsu Ltd Sql隠蔽型データベースアクセス方法及びコンピュータプログラム
CN101004683A (zh) * 2007-01-31 2007-07-25 华为技术有限公司 数据库访问方法和装置
US7401085B2 (en) * 2004-04-14 2008-07-15 Blackrock, Inc. System and method for controlling the release of updates to a database configuration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126680A (ja) * 2002-09-30 2004-04-22 Fujitsu Ltd Sql隠蔽型データベースアクセス方法及びコンピュータプログラム
US7401085B2 (en) * 2004-04-14 2008-07-15 Blackrock, Inc. System and method for controlling the release of updates to a database configuration
CN101004683A (zh) * 2007-01-31 2007-07-25 华为技术有限公司 数据库访问方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈能技: "《软件测试技术大全:测试基础、测试工具、项目实践(第二版)》", 31 December 2008, 人民邮电出版社 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677751A (zh) * 2015-12-29 2016-06-15 北京奇艺世纪科技有限公司 关系型数据库的调度方法及系统
CN105677751B (zh) * 2015-12-29 2020-11-13 北京奇艺世纪科技有限公司 关系型数据库的调度方法及系统
CN108415991A (zh) * 2018-02-12 2018-08-17 广州市贝聊信息科技有限公司 一种sql审核方法与系统
CN111625552A (zh) * 2020-05-20 2020-09-04 北京百度网讯科技有限公司 数据收集方法、装置、设备和可读存储介质
CN111625552B (zh) * 2020-05-20 2024-01-02 北京百度网讯科技有限公司 数据收集方法、装置、设备和可读存储介质
CN112883050A (zh) * 2021-02-25 2021-06-01 中国工商银行股份有限公司 一种数据库的数据变更方法及装置
CN112883050B (zh) * 2021-02-25 2024-03-08 中国工商银行股份有限公司 一种数据库的数据变更方法及装置

Similar Documents

Publication Publication Date Title
US20200218693A1 (en) Data storage system for analysis of data across heterogeneous information management systems
US8150674B2 (en) Automated testing platform for event driven systems
US11163731B1 (en) Autobuild log anomaly detection methods and systems
US8291387B2 (en) Method and system for testing a software application interfacing with multiple external software applications in a simulated test environment
JP6325246B2 (ja) インメモリデータベース処理のためのシステムおよび方法
US9436734B2 (en) Relative performance prediction of a replacement database management system (DBMS)
KR101213798B1 (ko) 복합 데이터 액세스
US9886369B2 (en) Dynamic data fabrication for database applications
US8935207B2 (en) Inspecting replicated data
US10956406B2 (en) Propagated deletion of database records and derived data
CN102682038A (zh) 一种数据库变更方法以及装置
US20090070743A1 (en) System and method for analyzing software applications
CN106062738B (zh) 管理作业状态
CN104123104B (zh) 日志控制系统及方法
CN107577802A (zh) 一种数据库管理方法及装置
US20110264487A1 (en) Embedding Planning Components In Transactional Applications
CN114116664B (zh) 数据库建表语句处理方法、装置、计算机设备和存储介质
US20090313259A1 (en) Container handlers for sharing and unsharing
US20060277222A1 (en) Persistent data file translation settings
WO2022178089A1 (en) Managing custom workflows for domain objects defined within microservices
WO2021234019A1 (en) Database management methods and associated apparatus
Mankala SAP HANA Cookbook
JP2011138416A (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
US10198289B2 (en) Relating user action flows by storing relationships between threads and objects
JP2017091027A (ja) システム開発支援システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1170039

Country of ref document: HK

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120919

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1170039

Country of ref document: HK