一种关系型数据库的操作方法、装置及电子设备与流程

xiaoxiao9月前  57

本技术涉及计算机,可用于金融领域,特别涉及一种关系型数据库的操作方法、装置及电子设备。
背景技术
::1、关系型数据库(relational database):是一种数据存储和管理的方式,通过将数据组织成表格的形式,使用sql(结构化查询语言)的标准语言来描述和操作数据。2、目前,大型关系型数据库本身比较容易成为软件系统的瓶颈,单机存储容量、连接数、处理能力都有限。当单机表的数据量达到1000万或100g以后,由于查询维度较多,即使添加主从库,优化索引,做很多操作时性能仍然下降严重。因此,大部分大型关系型数据都做了分库分表操作。在做了此操作后,软件系统中某些复杂交易所涉及的数据中的表数据,可能存在于多个库的多个表中。软件测试领域的测试人员在对这个交易进行测试时,为保证交易逻辑正确性,需要追踪整个交易链路的数据,查找出该交易所涉及的所有库的所有表数据,进行一一核对。同时,在交易完成后,由于所使用的数据可能会被其他人同时使用,导致数据无法使用,在后续回归测试时,需要对数据进行恢复。3、一、目前关系型数据库数据查找方法包括以下两个:4、1.连接上数据库后,直接用sql语句查询5、(1)单个表查询,例如对表名为"customers"的表查询所有列6、select*from customers7、(2)同一库中多表联合查询,例如查询一个名为"orders"的表中的所有订单,包括订单的详细信息和顾客信息,顾客信息存在于"customers"表8、select orders.order_id,orders.order_date,orders.order_total,9、customers.customer_name,customers.customer_email10、from orders11、join customers on orders.customer_id=customers.customer_id;12、(3)多个库中跨库多表联合查询,例如,有一个名为"taobao_cfp"的库,库里有个名为"customers"的表,有另一个名为"taobao_ca"的库,库里有个名为"orders"的表,两个表之间通过"id"字段进行关联。13、use taobao_cfp;14、select customers.id from customers。15、手工记录查找出来的值,然后继续使用sql语句进行查找16、use taobao_ca;17、select*from orders where id=customers.id18、2.数据库可视化工具查询19、以目前主流的数据库图形化查询工具mysql workbench。20、(1)单个表查询21、①打开mysql workbench,并连接到mysql服务器。22、②在object explorer(对象导航器)视图中,展开树状结构,找到你要查询的表。点击相应的表名,即可进入该表的详细信息页面。23、③在详细信息页面,查看到表的基本信息(如表名、字段名、数据类型、约束条件等)。24、④在详细信息页面,通过搜索框或筛选条件来查询表中的数据。例如,你可以根据表名、字段名或约束条件来过滤数据。25、(2)同一库中多表联合查询26、①打开mysql workbench,并连接到mysql数据库。27、②选择要查询的表,单击“数据”菜单下的“查询”选项,在“查询”对话框中,选择“联合查询”选项卡。28、③选择要联合查询的表,并单击“添加”按钮。29、④在“表”列表框中,选择要联合查询的表,并单击“确定”按钮。30、⑤在“字段”列表框中,选择要联合查询的字段,并单击“确定”按钮。31、⑥在“值”列表框中,选择要联合查询的值,并单击“确定”按钮。32、⑦在“操作”列表框中,选择要执行的操作,如“相加”、“相乘”等,并单击“确定”。33、(3)多个库中跨库多表联合查询34、①创建一个中间表:35、为了进行跨库联合查询,首先需要创建一个中间表。这个中间表包含两个字段,分别来自两个数据库。假设有两个数据库:db1和db2,中间表名为cross_table。36、create table cross_table(37、id1 int,38、name1 string,39、);40、②插入数据:41、接下来,分别向两个数据库中插入数据。42、insert into db1.cross_table(id1,name1)values(1,'张三');43、insert into db1.cross_table(id1,name1)values(2,'李四');44、③创建索引:45、为了快速执行跨库联合查询,需要在中间表中创建一个索引。46、create index idx_cross_table_id on cross_table(id1,name1);47、④查询数据:48、使用sql语句查询中间表中的数据了。49、select*from cross_table;50、执行这个查询,mysql workbench将返回来自db1.table1和db2.table2数据库的id1和name1字段的数据。51、二、目前数据追踪技术如下52、以主流mysql workbench为例,数据追踪需以下步骤:53、1.打开mysql workbench,并连接到mysql数据库。54、2.在导航栏中选择“数据追踪”,然后选择“启用数据追踪”。55、3.数据追踪会立即开始收集数据,并在界面上显示出来。56、4.数据追踪工具可以显示数据库的性能指标、问题排查信息、备份和恢复情况等。57、5.在数据库中进行一些测试操作,如插入、查询、备份等操作,数据追踪工具会记录这些操作并显示在界面上。58、三、目前数据恢复技术如下59、以主流的mysql workbench为例,数据恢复需以下步骤:60、1.选择要备份数据的mysql实例。61、2.点击“backup”按钮,选择“sql backup file”。62、3.在“sql backup file”窗口中,选择您要备份的sql文件并点击“open”。63、4.在弹出的窗口中,选择“backup time”选项卡,并点击“...”按钮。64、5.在“选择备份时间”窗口中,选择您要备份数据的时间。65、6.点击“backup”按钮,开始备份数据库,在备份文件所在目录下,您可以看到一个名为“.sql66、根据上述描述可以发现如下问题:67、一、对于直接通过sql语句查询数据的技术来说,现在技术存在以下缺点:68、1.专业性强:测试人员需要熟练掌握sql语句,包括简单查询和联合查询等sql语句,一些测试人员如果对sql语句掌握不够熟练,则无法快速查找出数据。69、2.跨库查询流程复杂:跨库查询时,需要手工记录上一个数据库数据,然后再去另一个库里找对应数据,并且需要切换所使用的数据库,流程比较繁琐,如果跨多个库查询,则耗时较大。70、二、对于使用数据库可视化工具查询数据,现有技术存在以下缺点:71、1.易用性差:测试人员需要完成较多操作才能对一个表进行查询,操作比较复杂。72、2.跨库查询操作过程专业性强:跨库查询时需要创建中间表,操作过程比较专业化,对测试人员专业性要求较高,如果需要跨库对多个表查询时,则查询难度大,且容易出错。技术实现思路1、本说明书提供一种关系型数据库的操作方法、装置及电子设备,以解决现有方案对于测试人员的专业性依赖较强,或操作流程较为复杂、易用性差、测试效率低的问题。2、为解决上述技术问题,本说明书第一方面提供一种关系型数据库的操作方法,所述方法包括:获取目标交易标识;查找与所述目标交易标识对应的目标有序链表,所述目标有序链表中包括交易执行过程中依次处理的数据表字段的标识、各数据表字段的顺序信息,以及第一个数据表的主键和主键取值;根据所述目标有序链表自动生成sql查询语句的集合;调用所述集合中的sql查询语句查询数据,所述查询结果用于确定交易测试结果。3、在一些实施例中,根据所述目标有序链表自动生成sql查询语句的集合,包括针对所述目标有序链表中的各表生成用于执行如下操作的sql查询语句:确定当前数据表的目标外键,所述目标外键是当前数据表的下一数据表的主键;根据当前数据表的主键、主键取值查找所述目标外键的取值。4、在一些实施例中,通过以下方式构建有序链表:获取关系型数据库中各个库信息、各个表信息;获取交易的链路配置请求;响应于所述链路配置请求,呈现关系型数据库中各个库信息、各个表信息;获取为数据库的每次处理而选取的数据库分库的标识、数据表的标识、字段的标识,并生成对应的链表节点,一次处理对应的链表节点中包括为所述处理而选取的数据库分库的标识、数据表的标识、字段的标识;根据各次处理的顺序确定各链表节点的顺序,并根据所述顺序处理串联链表节点而得到有序链表;将有序链表的标识与交易的标识对应存储。5、在一些实施例中,通过以下方式构建有序链表:获取交易的链路配置请求;响应于所述链路配置请求,在交易执行过程中通过数据库审计工具依次记录处理的数据分库的标识、数据表的标识、字段的标识;将各条记录分别生成对应的链表节点,一个记录对应的链表节点中包括所述记录中数据库分库的标识、数据表的标识、字段的标识;根据各条记录的顺序确定各链表节点的顺序,并根据所述顺序处理串联链表节点而得到有序链表;将有序链表的标识与交易的标识对应存储。6、在一些实施例中,所述方法还包括:为各有序链表分别设置状态链表,所述状态链表用于存储测试操作的标识、所述测试操作后有序链表中各个数据库字段的取值。7、在一些实施例中,所述方法还包括:获取数据追踪请求;响应于所述数据追踪请求,获取目标交易的标识;在所述目标交易执行完毕的情况下,查找与所述目标交易标识对应的目标有序链表;根据所述目标有序链表自动生成sql查询语句的集合;调用所述集合中的sql查询语句查询数据;根据所述查询结果生成新的状态链表节点,所述新的状态链表节点中包括测试操作的标识、测试操作后有序链表中各个数据库字段的取值;将新的状态链表节点按照时间顺序设置于状态链表的端部。8、在一些实施例中,所述方法还包括:获取数据恢复请求;响应于所述数据恢复请求,获取待恢复的目标交易标识;确定目标交易标识对应的状态链表中的目标测试操作的标识;根据目标测试操作的标识、状态链表确定所述目标测试操作之前有序链表中各个数据库字段的取值;自动生成sql更新语句,所述sql更新语句用于根据所述目标测试操作之前有序链表中各个数据库字段的取值更新相关数据表;根据更新后的数据表生成新的状态链表节点,并将新的状态链表节点按照时间顺序设置于状态链表的端部。9、本说明书第二方面提供一种关系型数据库的操作装置,所述装置包括:第一获取单元,用于获取目标交易标识;第一查找单元,用于查找与所述目标交易标识对应的目标有序链表,所述目标有序链表中包括交易执行过程中依次处理的数据表字段的标识、各数据表字段的顺序信息,以及第一个数据表的主键和主键取值;第一生成单元,用于根据所述目标有序链表自动生成sql查询语句的集合;第一调用单元,用于调用所述集合中的sql查询语句查询数据,所述查询结果用于确定交易测试结果。10、在一些实施例中,根据所述目标有序链表自动生成sql查询语句的集合,包括针对所述目标有序链表中的各表生成用于执行如下操作的sql查询语句:确定当前数据表的目标外键,所述目标外键是当前数据表的下一数据表的主键;根据当前数据表的主键、主键取值查找所述目标外键的取值。11、在一些实施例中,所述装置还包括:第二获取单元,用于获取关系型数据库中各个库信息、各个表信息;第三获取单元,用于获取交易的链路配置请求;呈现单元,用于响应于所述链路配置请求,呈现关系型数据库中各个库信息、各个表信息;第四获取单元,用于获取为数据库的每次处理而选取的数据库分库的标识、数据表的标识、字段的标识,并生成对应的链表节点,一次处理对应的链表节点中包括为所述处理而选取的数据库分库的标识、数据表的标识、字段的标识;第一确定单元,用于根据各次处理的顺序确定各链表节点的顺序,并根据所述顺序处理串联链表节点而得到有序链表;存储单元,用于将有序链表的标识与交易的标识对应存储。12、在一些实施例中,通过以下方式构建有序链表:第五获取单元,用于获取交易的链路配置请求;记录单元,用于响应于所述链路配置请求,在交易执行过程中通过数据库审计工具依次记录处理的数据分库的标识、数据表的标识、字段的标识;第二生成单元,用于将各条记录分别生成对应的链表节点,一个记录对应的链表节点中包括所述记录中数据库分库的标识、数据表的标识、字段的标识;第二确定单元,用于根据各条记录的顺序确定各链表节点的顺序,并根据所述顺序处理串联链表节点而得到有序链表;存储单元,用于将有序链表的标识与交易的标识对应存储。13、在一些实施例中,所述装置还包括:第一设置单元,用于为各有序链表分别设置状态链表,所述状态链表用于存储测试操作的标识、所述测试操作后有序链表中各个数据库字段的取值。14、在一些实施例中,所述装置还包括:第六获取单元,用于获取数据追踪请求;第七获取单元,用于响应于所述数据追踪请求,获取目标交易的标识;第二查找单元,用于在所述目标交易执行完毕的情况下,查找与所述目标交易标识对应的目标有序链表;第三生成单元,用于根据所述目标有序链表自动生成sql查询语句的集合;第二调用单元,用于调用所述集合中的sql查询语句查询数据;第四生成单元,用于根据所述查询结果生成新的状态链表节点,所述新的状态链表节点中包括测试操作的标识、测试操作后有序链表中各个数据库字段的取值;第二设置单元,用于将新的状态链表节点按照时间顺序设置于状态链表的端部。15、在一些实施例中,所述装置还包括:第八获取单元,用于获取数据恢复请求;第九获取单元,用于响应于所述数据恢复请求,获取待恢复的目标交易标识;第三确定单元,用于确定目标交易标识对应的状态链表中的目标测试操作的标识;第四确定单元,用于根据目标测试操作的标识、状态链表确定所述目标测试操作之前有序链表中各个数据库字段的取值;第五生成单元,用于自动生成sql更新语句,所述sql更新语句用于根据所述目标测试操作之前有序链表中各个数据库字段的取值更新相关数据表;第六生成单元,用于根据更新后的数据表生成新的状态链表节点,并将新的状态链表节点按照时间顺序设置于状态链表的端部。16、本说明书第三方面提供一种电子设备,包括:存储器和处理器,所述处理器和所述存储器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而实现第一方面任一项所述的关系型数据库的操作方法。17、本说明书第四方面提供一种计算机存储介质,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面任一项所述的关系型数据库的操作方法。18、本说明书第五方面提供一种计算机程序产品,包含有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的关系型数据库的操作方法。19、本说明书提供的关系型数据库的操作方法、装置及电子设备,预先为交易生成有序链表,在对目标交易进行测试时,根据目标交易标识查找到目标交易对应的目标有序链表,然后根据目标有序链表自动生成sql查询语句的集合,调用集合中的各个sql查询语句就可以查询到交易所涉及的数据库中数据。本方案无需编写测试人员逐个编写测试语句,从而能够降低对测试人员专业性的依赖;也无需测试人员在图形化界面中进行多步点击操作,大大减少测试人员所需执行的操作,提高测试人员的测试效率。当前第1页12当前第1页12
技术特征:

1.一种关系型数据库的操作方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,根据所述目标有序链表自动生成sql查询语句的集合,包括针对所述目标有序链表中的各表生成用于执行如下操作的sql查询语句:

3.根据权利要求1所述的方法,其特征在于,通过以下方式构建有序链表:

4.根据权利要求3所述的方法,其特征在于,通过以下方式构建有序链表:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求5所述的方法,其特征在于,所述方法还包括:

8.一种关系型数据库的操作装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令被处理器执行时实现权利要求1至7任一项所述的关系型数据库的操作方法。

11.一种计算机程序产品,其特征在于,包含有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的关系型数据库的操作方法。


技术总结
本说明书提供一种关系型数据库的操作方法、装置及电子设备,其中方法包括:获取目标交易标识;查找与所述目标交易标识对应的目标有序链表,所述目标有序链表中包括交易执行过程中依次处理的数据表字段的标识、各数据表字段的顺序信息,以及第一个数据表的主键和主键取值;根据所述目标有序链表自动生成SQL查询语句的集合;调用所述集合中的SQL查询语句查询数据,所述查询结果用于确定交易测试结果。本方案无需编写测试人员逐个编写测试语句,从而能够降低对测试人员专业性的依赖;也无需测试人员在图形化界面中进行多步点击操作,大大减少测试人员所需执行的操作,提高测试人员的测试效率。

技术研发人员:李朝,訾新宇,张娜娜
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)