一种数据库处理方法、装置和用于数据库处理的装置
文献发布时间:2023-06-19 10:38:35
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库处理方法、装置和用于数据库处理的装置。
背景技术
目前出于数据安全的考虑,提出了多方安全计算技术,参与多方安全计算的计算节点基于各自持有的私有数据,能够计算出关于公共函数的结果。其中,所述公共函数可以实现多种计算功能,如加、减、乘、除等等。
在多方安全计算的过程中,对数据库执行的操作也是基于密文的操作。相对于基于明文执行的数据库操作,基于密文执行的数据库操作存在效率较低的问题,尤其是对于数据量达到GB(Gigabyte,十亿字节)以上的数据库执行较为复杂的操作。例如,对数据库执行基于密文的分组操作,其执行速度为基于明文的分组操作执行速度的几十分之一。因此,如何提高基于密文的数据库操作效率是亟待解决的问题。
发明内容
本发明实施例提供一种数据库处理方法、装置和用于数据库处理的装置,可以提高基于密文的数据库操作效率。
为了解决上述问题,本发明实施例公开了一种数据库处理方法,所述方法包括:
对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
另一方面,本发明实施例公开了一种数据库处理装置,所述装置包括:
预处理模块,用于对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
结果获取模块,用于在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
隐私操作模块,用于对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
再一方面,本发明实施例公开了一种用于数据库处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据库处理方法。
本发明实施例包括以下优点:
本发明实施例在对基于密文的数据库执行操作之前,对数据库中的关联数据进行预处理,得到预处理结果;这样,在接收到针对所述关联数据的第一隐私操作时,可以获取所述预处理结果,并且对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。在本发明实施例中,所述数据库可以为基于密文的数据库,也即所述关联数据包括密文数据。由此,本发明实施例对数据库中的关联数据进行预处理,得到预处理结果,可以减少在执行第一隐私操作时需要对关联数据中的密文数据执行的相关操作,直接对所述预处理结果执行所述第一隐私操作即可,进而可以节省数据库的操作时间,提高操作效率。此外,本发明实施例对关联数据执行的预处理操作为基于密文的操作,在预处理过程中不会暴露数据的明文,可以保证数据的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据库处理方法实施例的步骤流程图;
图2是本发明的一种数据库处理装置实施例的结构框图;
图3是本发明的一种用于数据库处理的装置800的框图;及
图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种数据库处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101、对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
步骤102、在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
步骤103、对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
为了解决基于密文执行的数据库操作存在效率较低的问题,本发明实施例在对基于密文的数据库执行操作之前,对数据库中的关联数据进行预处理,得到预处理结果。其中,所述关联数据可以指数据库中任意具有关联关系的数据,所述关联关系可以为不同数据表之间的关联关系,也可以为同一个数据表中不同字段之间的关联关系。例如,所述关联数据可以包括数据库中具有关联关系的至少两个数据表,或者,所述关联数据可以包括一个数据表中具有关联关系的至少两个字段等。
需要说明的是,本发明实施例的数据库中保存的可以是密文数据,也即所述关联数据可以包括密文数据。因此,本发明实施例对数据库中的关联数据进行预处理的操作,可以为基于密文的操作。在预处理过程中不会暴露数据的明文,可以保证数据的安全性。
在本发明实施例中,所述密文数据可以是对明文数据进行分散处理所得到。所述分散处理用于对数据进行加密并分散存储,以降低将所有密文数据存储在同一个计算节点中导致数据被泄露的风险。
在本发明的一种可选实施例中,所述分散处理具体可以包括:对所述明文数据进行分片处理得到至少两个密文分片,以及将所述至少两个密文分片分散存储在至少两个存储节点。
本发明实施例可以利用加密算法对明文数据进行分片处理得到至少两个密文分片。例如,对于明文数据x,可以利用加密算法对明文数据x进行分片处理,得到两个密文分片x1和x2,只有同时获取x1和x2,才可以解密得到明文数据x,本发明实施例将密文分片x1和x2存储在不同的存储节点中,可以降低密文分片x1和x2同时被泄露的风险,进而可以降低明文数据x被泄露的风险。其中,所述存储节点可以为任意具有数据存储功能的设备。
其中,所述预处理指根据关联数据之间的关联关系,对关联数据执行基于密文的相关操作。例如,对于具有关联关系的至少两个数据表,所述预处理可以为对该至少两个数据表执行合并操作。又如,对于一个数据表中具有关联关系的至少两个字段,所述预处理可以为根据该至少两个字段,对数据表中的数据记录执行分组操作。可以理解,上述列举的预处理操作仅作为本发明实施例的一种应用示例,本发明实施例对所述预处理操作的具体类型不加以限制。
在对数据库中的关联数据进行预处理,得到预处理结果之后,如果接收到针对所述关联数据的第一隐私操作,则可以直接获取所述预处理结果;进而可以对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。例如,数据库中包含具有关联关系的表1和表2,则可以对表1和表2执行预处理操作,如对表1和表2进行合并,得到合并后的预处理结果。这样,在接收到针对表1和表2的关联关系执行的第一隐私操作时,可以直接获取表1和表2合并后的预处理结果,并且对该预处理结果执行第一隐私操作。由此,在执行第一隐私操作的过程中,无需再对表1和表2执行合并操作,可以有效节省数据库的操作时间,提高操作效率。
在本发明的一种可选实施例中,所述对数据库中的关联数据进行预处理之前,所述方法还可以包括如下步骤:
根据所述数据库中数据表的预置信息,确定所述数据库中的关联数据;其中,所述预置信息为建立数据表时,根据数据之间的关联关系所设置。
本发明实施例在数据库中建立数据表的过程中,可以通过在数据表中增加预置信息,用于表示数据之间的关联关系,根据数据库中数据表的预置信息,可以确定所述数据库中的关联数据。例如,在数据库中可以执行如下创建表1的操作,创建表1:
create table1(colm1 INT,colm2 INT,…)(key=colm1…);
其中,table1为表1的名称,表1中包含colm1、colm2等字段,每个字段对应表1中的一列,key=colm1表示字段colm1为表1的主键。在创建表2时,假设表2与表1具有关联关系,例如表2和表1中包含相同的字段名,则可以在创建表2时,在表2中增加预置信息,用于表示表2与表1具有关联关系。假设执行如下创建表2的操作:
create table2(colm1 INT,colm2 INT,…)(key=colm2,foreign_key=table1.colm1,…)
其中,table2为表2的名称,表2中包含colm1、colm2等字段,每个字段对应表2中的一列,key=colm2表示字段colm2为表2的主键。foreign_key为预置信息,用于表示表2与其他表具有关联关系。其中,foreign_key=table1.colm1,说明表2与表1中的字段colm1具有关联关系,具体地,表2中包含与字段colm1名称相同的字段。例如,表1中字段colm1的名称为“部门编号”,表2中字段colm2的名称为“部门编号”,则表1和表2包含具有关联关系的字段,因此,表1和表2之间具有关联关系。
在创建表2时,可以在表2中增加用于表示表2与表1具有关联关系的预置信息。当然,在创建表1时,也可以在表1中增加用于表示表1与表2具有关联关系的预置信息。根据表1或者表2中的预置信息,即可得知表1和表2为数据库中的关联数据。
可以理解的是,上述示例中,表1与表2之间的关联关系指的是表1和表2包含相同的字段名,该关联关系仅作为本发明实施例的一种应用示例。在实际应用中,表1和表2还可以包含其它类型的关联关系。此外,一个表也可以与其它多个表具有关联关系,例如,表2可以同时与表1、表3、表4多个表具有关联关系,则在创建表2时可以执行如下操作:
create table2(colm1 INT,colm2 INT,…)(key=colm2,foreign_key=table1.colm1,foreign_key=table3.colm1,foreign_key=table4.colm1,…)。
在本发明的一种可选实施例中,所述关联数据包括至少两个第一数据表,所述至少两个第一数据表包含具有关联关系的第一字段;所述对数据库中的关联数据进行预处理,得到预处理结果,具体可以包括如下步骤:
根据所述第一字段,对所述至少两个第一数据表执行合并操作,得到合并后的数据表。
为便于描述,在本发明实施例中,将具有关联关系的数据表称为第一数据表(如上述表1和表2),将至少两个第一数据表中具有关联关系的字段称为第一字段(如上述表1和表2中的字段“部门编号”)。在本发明的一种应用示例中,表1和表2可以分别如下:
表1
表2
在本发明的一种可选实施例中,所述第一隐私操作至少可以包括如下任意一种:基于密文数据的查询操作、写入操作、更新操作、修改操作、删除操作。
以查询操作为例,如果想要查询员工编号为“001”的员工所在部门的部门负责人,则首先需要根据员工编号“001”,在表1中查找到该员工编号“001”对应的部门编号,如“d005”;然后再根据该部门编号“d005”,在表2中进行查询,查找得到该部门编号“d005”对应的部门负责人为“赵六”。可以看出,上述查询过程需要结合表1和表2,共执行两次查询操作,而表1和表2中的数据如果为密文数据,基于密文的查询操作需要花费更多的时间,导致查询效率较低。
本发明实施例在对数据库执行操作之前,可以对数据库中的关联数据进行预处理,例如可以对表1和表2进行预处理。在上述示例中,表1和表2包含相同的第一字段“部门编号”。因此,可以根据该第一字段,对表1和
表2执行合并操作,得到合并后的数据表,如合并后得到表3。所述表3即为对表1和表2进行预处理得到的预处理结果,可以保存表3。
表3
由此,如果想要查询员工编号为“001”的员工所在部门的部门负责人,只需要获取已保存的预处理结果(表3),根据员工编号“001”,即可在表3中直接查询得到该员工编号“001”所在部门的部门负责人为“赵六”。可以看出,通过本发明实施例的数据库处理方法,可以减少数据库的操作步骤,提高数据库的操作效率。
本发明实施例除了可以对具有关联关系的数据表进行预处理,还可以对数据表中具有关联关系的数据进行预处理。在本发明的一种可选实施例中,所述关联数据具体可以包括第二数据表,所述第二数据表中包含至少一个第二字段;所述对数据库中的关联数据进行预处理,得到预处理结果,具体可以包括如下步骤:
步骤S11、对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果;
步骤S12、根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果。
为便于描述,在本发明实施例中,将包含具有关联关系的字段的数据表称为第二数据表,将第二数据表中具有关联关系的字段称为第二字段。在所述第二数据表中可以包括至少一个第二字段。
具体地,可以对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果。其中,待比较数值可以为第二数据表中除第二字段之外其它字段对应的数值,或者,还可以为自定义的数值。例如,对于第二数据表(假设为表5),想要获取在colm1字段和colm3字段的数值相等的所有数据,则可以对表5中的每行数据记录在colm1字段对应的数值和在colm3字段对应的数值进行隐私比较,得到隐私比较结果,根据该隐私比较结果,可以得知表5中的每行数据在colm1字段对应的数值和在colm3字段对应的数值是否相等。
根据所述隐私比较结果,可以对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果。其中,所述第二隐私操作可以包括分组操作、统计操作等。
在本发明的一种可选实施例中,所述根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果,具体可以包括如下步骤:
根据所述隐私比较结果,对所述第二数据表中的数据记录进行分组,得到分组结果;和/或
根据所述隐私比较结果,对所述第二数据表中的数据记录进行统计,得到统计结果。
在具体应用中,经常会涉及到对数据表执行聚合操作。执行聚合操作通常首先需要对数据表中的数据记录按照某个比较条件进行分组,再对分组结果执行求和(sum)、计数(count)、求最大值(max)和求最小值(min)等聚合函数计算。
以所述第二数据表为表1为例,假设需要统计每个部门的员工人数,则需要对表1执行聚合操作。具体地,首先需要对表1中的每行数据记录在第二字段(部门编号)对应的数值进行隐私比较,得到隐私比较结果。根据隐私比较结果,对表1中第二字段(部门编号)对应的数据记录进行分组,得到分组结果。具体地,可以将隐私比较结果相等的数据记录划分为一组,进而可以将表1按照部门编号划分为不同的分组,使得每一个分组中的数据记录具有相同的部门编号。在对表1按照部门编号进行分组之后,对每个分组执行计数操作,可以得到每个部门的员工人数。
可以看出,上述聚合操作需要先对数据表执行分组操作,再执行聚合函数计算,在密文数据的情况下,会导致执行聚合操作的效率较低。
本发明实施例可以在执行聚合操作之前,对数据表进行预处理,具体地,对第二数据表中第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果,根据所述隐私比较结果,对所述第二数据表中的数据记录进行分组,得到分组结果,将所述分组结果作为预处理结果进行保存。
在本发明的一种应用示例中,假设通过如下创建表5的操作,在数据库中创建表5:
create table5(colm1 INT,colm2 INT,…)(key=colm2,agg_on=colm1,colm3…),其中,“agg_on=colm1,colm3”表示colm1和colm3两个字段具有关联关系,可以根据colm1和colm3两个字段对表5中的数据记录进行预处理。
具体地,可以对表5中的每行数据记录在colm1字段对应的数值与在colm3字段对应的数值进行隐私比较,得到隐私比较结果。根据隐私比较结果,把colm1字段对应的数值和colm3字段对应的数值相等的数据划分为一组,得到分组结果。例如将表5中的第1行、第3行、以及第5行数据记录划分到第一组,将第2行、第4行、以及第6行数据记录划分到第二组。得到的分组结果可以作为预处理结果进行保存。如果后续接收到的第一隐私操作(如聚合操作)需要使用上述分组结果,例如需要对第一分组中的数据执行求和操作,则可以直接根据分组结果执行求和操作,而不用再对表5执行分组操作,可以提高数据库的操作效率。
可选地,本发明实施例还可以将聚合操作结果作为预处理结果进行保存。这样,在后续接收到第一隐私操作(如聚合操作)的情况下,可以直接查询预处理结果,得到该聚合操作对应的聚合操作结果,可以进一步提高数据库的操作效率。
可选地,本发明实施例还可以根据所述隐私比较结果,对所述第二数据表中的数据记录进行统计,得到统计结果,并且将所述统计结果作为预处理结果进行保存。
例如,假设第二数据表为表1,并且表1中还包括“员工年龄”的字段,则可以统计表1中年龄在30岁以下的员工人数。具体地,可以将表1中的每行数据记录在第二字段(员工年龄)对应的数值与待比较数值(30)进行隐私比较,得到隐私比较结果。根据该隐私比较结果,可以对表1中的数据记录进行统计,得到统计结果。例如,可以根据该隐私比较结果,获取表1中所有员工年龄小于30的数据记录,并且对这些数据记录进行统计,得到统计结果,即年龄在30岁以下的员工人数。当然,还可以统计年龄在30岁到40岁之间、年龄在40岁上的员工人数等,将这些统计结果可以作为预处理结果进行保存。
这样,在后续接收到与上述统计操作相匹配的第一隐私操作时,可以直接查询预处理结果,得到对应的统计结果,可以进一步提高数据库的操作效率。
在本发明的一种可选实施例中,所述对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果,具体可以包括如下步骤:
步骤S21、对所述第二数据表中所述第二字段对应的数值与所述待比较数值,执行减法计算,得到减法计算结果;
步骤S22、对所述减法计算结果执行位提取计算,得到位提取计算结果;
步骤S23、根据所述位提取计算结果,确定所述第二数据表中所述第二字段对应的数值与所述待比较数值的隐私比较结果。
在本发明实施例中,数据记录是由各个字段对应的密文数据组成,因此,隐私比较指参与比较的数据均以密文数据的形式存在,不用解密成明文数据。
可选地,本发明实施例可以利用隐私计算引擎来计算任务管理平台所生成的计算任务,隐私计算引擎通过预设数量的计算节点对所述计算任务进行协同计算,所述计算任务用于对输入数据进行数据处理,所述计算任务包括但不限于:加、减、乘、除等数字计算处理,以及与、或、非等逻辑计算等。所述输入数据可以为从各存储节点获取的密文分片。
所述任务管理平台用于生成计算任务,并将所述计算任务转换成多方计算指令。所述多方计算指令包括:为采用多方计算的方式执行计算任务而指示隐私计算引擎中预设数量的计算节点进行本地计算的指令,计算节点之间执行数据交互的指令,获取输入数据的指令,生成随机数的指令等。所述多方计算指令还可以包含指示计算节点执行本地计算和数据交互的计算角色的指令。所述多方计算指令可以由计算机程序语言来描述,或者由机器语言来描述。
在本发明实施例中,两个输入数据A1和A3的比较计算任务可以被转换成(A1-A3)的减法计算任务以及提取二进制表示(A1-A3)的计算结果中最高位值的位提取计算任务。因此,将当前数据记录与已遍历数据记录在目标字段对应的第二维度上进行隐私比较,可以转换为对所述当前数据记录与所述已遍历数据记录在目标字段对应的第二维度上执行减法计算的减法计算任务,以及对所述减法计算结果的位提取计算任务。
隐私计算引擎按照基于两个输入数据减法计算任务和位提取计算任务而设置的多方计算指令,令所述预设数量的计算节点执行本地计算和数据交互,得到各自持有的比特值。可选地,所述预设数量可以为四个。
例如,隐私计算引擎依据多方计算指令,利用部分计算节点执行减法计算,并得到各自持有的减法计算结果,再将各自持有的减法计算结果作为位提取计算任务的输入数据,利用一次(k=1)比特位置换的数据交互执行最高位提取,得到位提取的计算结果。该位提取的计算结果可作为A1和A3的隐私比较结果。
其中,位提取计算过程具体可以如下:隐私计算引擎的四个计算节点利用k轮次1比特置换数据的数据交互得到各自持有的计算结果,其中,所述计算结果用于提取输入数据X中二进制位;k为对应所述计算任务中输入数据X的待提取的二进制位数。在此,四个计算节点通过本地进行位计算生成包含有可抵消1比特随机数的中间数据(1比特),并通过k轮次的中间数据的数据交互得到计算结果。
综上,本发明实施例在对基于密文的数据库执行操作之前,对数据库中的关联数据进行预处理,得到预处理结果;这样,在接收到针对所述关联数据的第一隐私操作时,可以获取所述预处理结果,并且对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。在本发明实施例中,所述数据库可以为基于密文的数据库,也即所述关联数据包括密文数据。由此,本发明实施例对数据库中的关联数据进行预处理,得到预处理结果,可以减少在执行第一隐私操作时需要对关联数据中的密文数据执行的相关操作,直接对所述预处理结果执行所述第一隐私操作即可,进而可以节省数据库的操作时间,提高操作效率。此外,本发明实施例对关联数据执行的预处理操作为基于密文的操作,在预处理过程中不会暴露数据的明文,可以保证数据的安全性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图2,示出了本发明的一种数据库处理装置实施例的结构框图,所述装置具体可以包括:
预处理模块201,用于对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
结果获取模块202,用于在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
隐私操作模块203,用于对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
可选地,所述装置还可以包括:
数据确定模块,用于根据所述数据库中数据表的预置信息,确定所述数据库中的关联数据;其中,所述预置信息为建立数据表时,根据数据之间的关联关系所设置。
可选地,所述关联数据包括至少两个第一数据表,所述至少两个第一数据表包含具有关联关系的第一字段;
所述预处理模块,包括:
第一处理子模块,用于根据所述第一字段,对所述至少两个第一数据表执行合并操作,得到合并后的数据表。
可选地,所述关联数据包括第二数据表,所述第二数据表中包含至少一个第二字段;
所述预处理模块,包括:
隐私比较子模块,用于对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果;
第二处理子模块,用于根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果。
可选地,所述隐私比较子模块,包括:
减法操作单元,用于对所述第二数据表中所述第二字段对应的数值与所述待比较数值,执行减法计算,得到减法计算结果;
位提取单元,用于对所述减法计算结果执行位提取计算,得到位提取计算结果;
结果确定单元,用于根据所述位提取计算结果,确定所述第二数据表中所述第二字段对应的数值与所述待比较数值的隐私比较结果。
可选地,所述第二处理子模块,包括:
第一处理单元,用于根据所述隐私比较结果,对所述第二数据表中的数据记录进行分组,得到分组结果;和/或
第二处理单元,用于根据所述隐私比较结果,对所述第二数据表中的数据记录进行统计,得到统计结果。
可选地,所述第一隐私操作至少包括如下任意一种:基于密文数据的查询操作、写入操作、更新操作、修改操作、删除操作。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于数据库处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
图3是根据一示例性实施例示出的一种用于数据库处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图3,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图4是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据库处理方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种数据库处理方法,所述方法包括:对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
本发明实施例公开了A1、一种数据库处理方法,包括:
对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
A2、根据A1所述的方法,所述对数据库中的关联数据进行预处理之前,所述方法还包括:
根据所述数据库中数据表的预置信息,确定所述数据库中的关联数据;其中,所述预置信息为建立数据表时,根据数据之间的关联关系所设置。
A3、根据A1所述的方法,所述关联数据包括至少两个第一数据表,所述至少两个第一数据表包含具有关联关系的第一字段;
所述对数据库中的关联数据进行预处理,得到预处理结果,包括:
根据所述第一字段,对所述至少两个第一数据表执行合并操作,得到合并后的数据表。
A4、根据A1所述的方法,所述关联数据包括第二数据表,所述第二数据表中包含至少一个第二字段;
所述对数据库中的关联数据进行预处理,得到预处理结果,包括:
对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果;
根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果。
A5、根据A4所述的方法,所述对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果,包括:
对所述第二数据表中所述第二字段对应的数值与所述待比较数值,执行减法计算,得到减法计算结果;
对所述减法计算结果执行位提取计算,得到位提取计算结果;
根据所述位提取计算结果,确定所述第二数据表中所述第二字段对应的数值与所述待比较数值的隐私比较结果。
A6、根据A4所述的方法,所述根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果,包括:
根据所述隐私比较结果,对所述第二数据表中的数据记录进行分组,得到分组结果;和/或
根据所述隐私比较结果,对所述第二数据表中的数据记录进行统计,得到统计结果。
A7、根据A1至A6任一所述的方法,所述第一隐私操作至少包括如下任意一种:基于密文数据的查询操作、写入操作、更新操作、修改操作、删除操作。
本发明实施例公开了B8、一种数据库处理装置,包括:
预处理模块,用于对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
结果获取模块,用于在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
隐私操作模块,用于对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
B9、根据B8所述的装置,所述装置还包括:
数据确定模块,用于根据所述数据库中数据表的预置信息,确定所述数据库中的关联数据;其中,所述预置信息为建立数据表时,根据数据之间的关联关系所设置。
B10、根据B8所述的装置,所述关联数据包括至少两个第一数据表,所述至少两个第一数据表包含具有关联关系的第一字段;
所述预处理模块,包括:
第一处理子模块,用于根据所述第一字段,对所述至少两个第一数据表执行合并操作,得到合并后的数据表。
B11、根据B8所述的装置,所述关联数据包括第二数据表,所述第二数据表中包含至少一个第二字段;
所述预处理模块,包括:
隐私比较子模块,用于对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果;
第二处理子模块,用于根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果。
B12、根据B11所述的装置,所述隐私比较子模块,包括:
减法操作单元,用于对所述第二数据表中所述第二字段对应的数值与所述待比较数值,执行减法计算,得到减法计算结果;
位提取单元,用于对所述减法计算结果执行位提取计算,得到位提取计算结果;
结果确定单元,用于根据所述位提取计算结果,确定所述第二数据表中所述第二字段对应的数值与所述待比较数值的隐私比较结果。
B13、根据B11所述的装置,所述第二处理子模块,包括:
第一处理单元,用于根据所述隐私比较结果,对所述第二数据表中的数据记录进行分组,得到分组结果;和/或
第二处理单元,用于根据所述隐私比较结果,对所述第二数据表中的数据记录进行统计,得到统计结果。
B14、根据B8至B13任一所述的装置,所述第一隐私操作至少包括如下任意一种:基于密文数据的查询操作、写入操作、更新操作、修改操作、删除操作。
本发明实施例公开了C15、一种用于数据库处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对数据库中的关联数据进行预处理,得到预处理结果;其中,所述关联数据包括密文数据;
在接收到针对所述关联数据的第一隐私操作时,获取所述预处理结果;
对所述预处理结果执行所述第一隐私操作,得到第一隐私操作结果。
C16、根据C15所述的装置,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据所述数据库中数据表的预置信息,确定所述数据库中的关联数据;其中,所述预置信息为建立数据表时,根据数据之间的关联关系所设置。
C17、根据C15所述的装置,所述关联数据包括至少两个第一数据表,所述至少两个第一数据表包含具有关联关系的第一字段;
所述对数据库中的关联数据进行预处理,得到预处理结果,包括:
根据所述第一字段,对所述至少两个第一数据表执行合并操作,得到合并后的数据表。
C18、根据C15所述的装置,所述关联数据包括第二数据表,所述第二数据表中包含至少一个第二字段;
所述对数据库中的关联数据进行预处理,得到预处理结果,包括:
对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果;
根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果。
C19、根据C18所述的装置,所述对所述第二数据表中所述第二字段对应的数值与待比较数值进行隐私比较,得到隐私比较结果,包括:
对所述第二数据表中所述第二字段对应的数值与所述待比较数值,执行减法计算,得到减法计算结果;
对所述减法计算结果执行位提取计算,得到位提取计算结果;
根据所述位提取计算结果,确定所述第二数据表中所述第二字段对应的数值与所述待比较数值的隐私比较结果。
C20、根据C18所述的装置,所述根据所述隐私比较结果,对所述第二数据表中的数据记录执行第二隐私操作,得到第二隐私操作结果,包括:
根据所述隐私比较结果,对所述第二数据表中的数据记录进行分组,得到分组结果;和/或
根据所述隐私比较结果,对所述第二数据表中的数据记录进行统计,得到统计结果。
C21、根据C15至C20任一所述的装置,所述第一隐私操作至少包括如下任意一种:基于密文数据的查询操作、写入操作、更新操作、修改操作、删除操作。
本发明实施例公开了D22、一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如A1至A7中一个或多个所述的数据库处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种数据库处理方法、一种数据库处理装置和一种用于数据库处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 一种数据库处理方法、装置和用于数据库处理的装置
- 一种数据库错误处理方法、装置及数据库集群访问系统