发明内容
有鉴于此,本发明提出一种数据库修改方法及应用服务器,能够在修改数据库对象之前,可以在没明确所需修改的对象与其他对象的依赖的复杂程度前,进而评估其修改的风险性,最后确定是否对相应的对象进行修改。据此,保证了数据库的安全性,简化了数据库平时的维护流程。
首先,为实现上述目的,本发明提出一种应用服务器,所述应用服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库修改程序,所述数据库修改程序被所述处理器执行时实现如下步骤:
解析数据库,获取所述数据库中每个对象的实现程序;
通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度;
判断目标对象与所述其他对象关联的复杂度是否超过预设值;及
当所述目标对象与所述其他对象关联的复杂度不超过所述预设值时,则控制所述目标对象在所述数据库中处于可修改状态。
可选地,所述数据库修改程序被所述处理器执行时还实现如下步骤:
当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,则针对所述目标对象在所述数据库中的预设位置输出提示信息。
可选地,所述数据库修改程序被所述处理器执行时还实现如下步骤:
当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,则对所述目标对象在所述数据库中被修改时存在的风险进行提示。
可选地,所述控制所述目标对象在所述数据库中处于可修改状态的步骤,具体包括:
设置所述可修改状态为文本输入状态,及
当所述对象处于所述文本输入状态时,所述数据库可接受用户对所述对象的修改。
可选地,所述通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度的步骤,具体包括:
分析实现每个对象所需的函数,并解析所述函数调取的对象;
记录每个对象被函数调取的次数;及
将所述次数确定为相应函数与其他函数关联的复杂度。
此外,为实现上述目的,本发明还提供一种数据库修改方法,该方法应用于应用服务器,所述方法包括:
解析数据库,获取所述数据库中每个对象的实现程序;
通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度;
判断目标对象与所述其他对象关联的复杂度是否超过预设值;及
当所述目标对象与所述其他对象关联的复杂度不超过所述预设值时,则控制所述目标对象在所述数据库中处于可修改状态。
可选地,所述方法还包括:
当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,则针对所述目标对象在所述数据库中的预设位置输出提示信息。
可选地,所述方法还包括:
当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,则对所述目标对象在所述数据库中被修改时存在的风险进行提示。
可选地,所述控制所述目标对象在所述数据库中处于可修改状态的步骤,具体包括:
设置所述可修改状态为文本输入状态,及
当所述对象处于所述文本输入状态时,所述数据库可接受用户对所述对象的修改。
可选地,所述通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度的步骤,具体包括:
分析实现每个对象所需的函数,并解析所述函数调取的对象;
记录每个对象被函数调取的次数;及
将所述次数确定为相应函数与其他函数关联的复杂度。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据库修改程序,所述数据库修改程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据库修改方法的步骤。
相较于现有技术,本发明所提出的应用服务器、数据库修改方法及计算机可读存储介质,首先,解析数据库,获取所述数据库中每个对象的实现程序;其次,通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度;最后,当存在目标对象与所述其他对象关联的复杂度不超过预设值,则控制所述目标对象在所述数据库中处于可修改状态。这样,可以避免对数据库中某些对象做出了盲目的修改,导致整个数据库的崩溃,造成重大的数据损失的弊端,能够在修改数据库对象之前,可以没明确所需修改的对象与其他对象的依赖的复杂程度,进而评估其修改的风险性,最后确定是否对相应的对象进行修改。据此,保证了数据库的安全性,简化了数据库平时的维护流程。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是应用服务器1一可选的硬件架构的示意图。
所述应用服务器1可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该应用服务器1可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
本实施例中,所述应用服务器1可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。
所述应用服务器1通过网络接口13连接网络,获取资讯。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global Systemof Mobilecommunication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi、通话网络等无线或有线网络。
需要指出的是,图1仅示出了具有组件11-13的应用服务器1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述应用服务器1的内部存储单元,例如该应用服务器1的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述应用服务器1的外部存储设备,例如该应用服务器1配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述应用服务器1的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述应用服务器1的操作系统和各类应用软件,例如所述数据库修改程序200的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述应用服务器1的总体操作,例如执行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的数据库修改程序200等。
所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述应用服务器1与其他电子设备之间建立通信连接。
本实施例中,当所述应用服务器1内安装并运行有数据库修改程序200时,当所述数据库修改程序200运行时,所述应用服务器1解析数据库,获取所述数据库中每个对象的实现程序;通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度;判断目标对象与所述其他对象关联的复杂度是否超过预设值;当所述目标对象与所述其他对象关联的复杂度不超过所述预设值时,则控制所述目标对象在所述数据库中处于可修改状态。这样,可以避免对数据库中某些对象做出了盲目的修改,导致整个数据库的崩溃,造成重大的数据损失的弊端,能够在修改数据库对象之前,可以没明确所需修改的对象与其他对象的依赖的复杂程度,进而评估其修改的风险性,最后确定是否对相应的对象进行修改。据此,保证了数据库的安全性,简化了数据库平时的维护流程。
至此,己经详细介绍了本发明各个实施例的相关设备的硬件结构和功能。下面,将基于上述应用环境和相关设备,提出本发明的各个实施例。
首先,本发明提出一种数据库修改程序200。
参阅图2所示,是本发明数据库修改程序200第一实施例的程序模块图。
本实施例中,所述的数据库修改程序200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本发明各实施例的数据库修改操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,数据库修改程序200可以被划分为一个或多个模块。例如,在图2中,所述的数据库修改程序200可以被分割成解析模块201、计算模块202、判断模块203以及控制模块204。其中:
所述解析模块201,用于解析数据库,获取所述数据库中每个对象的实现程序。具体地,所述实现程序包括实现对象的每个函数。本实施例中,所述对象包括视图、存储过程、表中的至少一种。
所述计算模块202,用于通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度。
所述判断模块203,用于判断判断目标对象与所述其他对象关联的复杂度是否超过预设值。
所述控制模块204,用于当所述目标对象与所述其他对象关联的复杂度不超过所述预设值时,则控制所述目标对象在所述数据库中处于可修改状态。
具体地,所述控制模块204,设置所述可修改状态为文本输入状态,且当所述对象处于所述文本输入状态时,所述数据库可接受用户对所述目标对象的修改。
进一步地,所述控制模块204,还用于当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,则针对所述目标对象在所述数据库中的预设位置输出提示信息。
在本实施例中,当目标对象与其他对象的关联程度超过了预设值的时候,说明该对象和其他对象的依赖程度很高,一旦该对象出现了修改,则很大可能会引起其他对象的变化,进而导致整个数据库出现变化,在此种情况下,可以针对该对象在其所在数据库的位置用醒目颜色进行标示(比如红色),或者在数据库的视窗中输出“某某对象与其他对象关联度高,请谨慎修改”的提示语。或者在其他实施例中,针对此类与其他对象的关联程度超过了预设值的对象,所述控制模块204控制数据库对其呈现不可编辑状态,从而主动切断了用户对其修改的可能性,或者对风险程度进行提示,用户根据实际需要评估是否修改。
进一步地,所述控制模块204,还用于当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,则对所述目标对象在所述数据库中被修改时存在的风险进行提示。
具体地,当目标对象与所述其他对象关联的复杂度超过预设值时,所述对象在所述数据库中进行修改时处于高风险状态,或者低风险状态。所述控制模块204对风险程度进行提示,用户根据实际需要评估是否修改。
通过上述程序模块201-204,本发明所提出的数据库修改程序200,首先,解析数据库,获取所述数据库中每个对象的实现程序;其次,通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度;然后,判断目标对象与所述其他对象关联的复杂度是否超过预设值;最后,当所述目标对象与所述其他对象关联的复杂度不超过所述预设值时,则控制所述目标对象在所述数据库中处于可修改状态。这样,可以避免对数据库中某些对象做出了盲目的修改,导致整个数据库的崩溃,造成重大的数据损失的弊端,能够在修改数据库对象之前,可以没明确所需修改的对象与其他对象的依赖的复杂程度,进而评估其修改的风险性,最后确定是否对相应的对象进行修改。据此,保证了数据库的安全性,简化了数据库平时的维护流程。
进一步地,基于本发明数据库修改程序200的上述第一实施例,提出本发明的第二实施例(如图3所示)。本实施例中,所述的数据库修改程序200还包括记录模块205。
本实施例中,所述解析模块201,还用于分析实现每个对象所需的函数,并解析所述函数调取的对象。
所述记录模块205,用于记录每个对象被函数调取的次数,并将所述次数确定为相应函数与其他函数关联的复杂度。
下面以一个具体的示例进行说明:
比如对象是一张表,那么实现这张表的实现程序中包括至少一个函数,通过此类函数的调取,最终对这张表进行了实现。那么在实现表的函数中,调用了1次视图,调取了1次存储过程;同样,在存储过程这一对象的实现过程中,其中相应的函数调取了3次表,2次视图;视图这一对象的实现过程中,相应函数调取了4次表,3次存储过程。那么在上述数据库的实现过程中,存储过程被其他对象调取了4次,表被其他对象调用了7次,视图被其他对象调取了3次。那么可以将上述视图、存储过程、表三个对象分别与其他对象关联的复杂度确定为3、4、7,说明表与其他对象关联度最高,其修改最容易数据库整体的变化。在本实施例中,所述预设值可以根据用户的需要自行设定,也可以取所有对象与其他对象关联的复杂度的平均值。
通过上述程序模块201-205,本发明所提出的数据库修改程序200可以通过每个对象的实现程序计算每个对象与其他对象关联的复杂度。
此外,本发明还提出一种数据库修改方法。
参阅图4所示,是本发明数据库修改方法第一实施例的流程图。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S401,解析数据库,获取所述数据库中每个对象的实现程序。具体地,所述实现程序包括实现对象的每个函数。本实施例中,所述对象包括视图、存储过程、表中的至少一种。
步骤S402,通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度。具体地,所述通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度的具体步骤,将在本发明数据库修改方法的第三实施例(参阅图6)进行详述。
步骤S403,判断目标对象与所述其他对象关联的复杂度是否超过预设值。当所述目标对象与所述其他对象关联的复杂度不超过所述预设值时,执行步骤S404,反之,当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,执行步骤S405。
步骤S404,控制所述目标对象在所述数据库中处于可修改状态。
具体地,所述应用服务器1,设置所述可修改状态为文本输入状态,且当所述对象处于所述文本输入状态时,所述数据库可接受用户对所述目标对象的修改。
步骤S405,针对所述目标对象在所述数据库中的预设位置输出提示信息。
在本实施例中,当目标对象与其他对象的关联程度超过了预设值的时候,说明该对象和其他对象的依赖程度很高,一旦该对象出现了修改,则很大可能会引起其他对象的变化,进而导致整个数据库出现变化,在此种情况下,可以针对该对象在其所在数据库的位置用醒目颜色进行标示(比如红色),或者在数据库的视窗中输出“某某对象与其他对象关联度高,请谨慎修改”的提示语。或者在其他实施例中,针对此类与其他对象的关联程度超过了预设值的对象,所述应用服务器1控制数据库对其呈现不可编辑状态,从而主动切断了用户对其修改的可能性,或者对风险程度进行提示,用户根据实际需要评估是否修改。
通过上述步骤S401-405,本发明所提出的数据库修改方法,首先,解析数据库,获取所述数据库中每个对象的实现程序;其次,通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度;最后,当存在目标对象与所述其他对象关联的复杂度不超过预设值,则控制所述目标对象在所述数据库中处于可修改状态。这样,可以避免对数据库中某些对象做出了盲目的修改,导致整个数据库的崩溃,造成重大的数据损失的弊端,能够在修改数据库对象之前,可以没明确所需修改的对象与其他对象的依赖的复杂程度,进而评估其修改的风险性,最后确定是否对相应的对象进行修改。据此,保证了数据库的安全性,简化了数据库平时的维护流程。
如图5所示,是本发明数据库修改方法的第二实施例的流程图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S501,解析数据库,获取所述数据库中每个对象的实现程序。具体地,所述实现程序包括实现对象的每个函数。本实施例中,所述对象包括视图、存储过程、表中的至少一种。
步骤S502,通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度。
步骤S503,判断判断目标对象与所述其他对象关联的复杂度是否超过预设值。当所述目标对象与所述其他对象关联的复杂度不超过所述预设值时,执行步骤S504,反之,当所述目标对象与所述其他对象关联的复杂度超过所述预设值时,执行步骤S505。
步骤S504,控制所述目标对象在所述数据库中处于可修改状态。
步骤S505,对所述目标对象在所述数据库中被修改时存在的风险进行提示。
具体地,当目标对象与所述其他对象关联的复杂度超过预设值时,所述对象在所述数据库中进行修改时处于高风险状态,或者低风险状态。所述应用服务器1对风险程度进行提示,用户根据实际需要评估是否修改。
通过上述步骤S501-S505,本发明所提出的数据库修改方法,可以没明确所需修改的对象与其他对象的依赖的复杂程度,进而评估其修改的风险性,最后确定是否对相应的对象进行修改。据此,保证了数据库的安全性,简化了数据库平时的维护流程。
如图6所示,是本发明数据库修改方法的第三实施例的流程图。本实施例中,所述通过所述每个对象的实现程序计算所述每个对象与其他对象关联的复杂度的步骤,具体包括:
步骤S601,分析实现每个对象所需的函数,并解析所述函数调取的对象。
步骤S602,记录每个对象被函数调取的次数。
步骤S603,将所述次数确定为相应函数与其他函数关联的复杂度。
下面以一个具体的示例进行说明:
比如对象是一张表,那么实现这张表的实现程序中包括至少一个函数,通过此类函数的调取,最终对这张表进行了实现。那么在实现表的函数中,调用了1次视图,调取了1次存储过程;同样,在存储过程这一对象的实现过程中,其中相应的函数调取了3次表,2次视图;视图这一对象的实现过程中,相应函数调取了4次表,3次存储过程。那么在上述数据库的实现过程中,存储过程被其他对象调取了4次,表被其他对象调用了7次,视图被其他对象调取了3次。那么可以将上述视图、存储过程、表三个对象分别与其他对象关联的复杂度确定为3、4、7,说明表与其他对象关联度最高,其修改最容易数据库整体的变化。在本实施例中,所述预设值可以根据用户的需要自行设定,也可以取所有对象与其他对象关联的复杂度的平均值。
通过上述步骤S601-S603,本发明所提出的数据库修改方法,可以通过每个对象的实现程序计算每个对象与其他对象关联的复杂度。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。