首页> 中国专利> 一种基于自然语言的数据库审计结果翻译方法及系统

一种基于自然语言的数据库审计结果翻译方法及系统

摘要

本发明提供了一种基于自然语言的数据库审计结果翻译方法,包括:识别一数据库审计结果中的结构化查询语言指令以获得其语法信息;解析该SQL指令的语法信息以获得该SQL指令的操作信息;根据用户翻译信息翻译该SQL指令的操作信息;根据系统翻译信息以及翻译后的操作信息对SQL指令进行自然语言翻译。本发明还提供一种数据库审计结果翻译系统,包括用户定义翻译信息模块,系统定义翻译信息模块,以及至少一翻译模块。本发明可以在数据库审计时自动地将审计结果翻译成自然语言,使操作人员方便、简单地获得并清楚了解数据库审计结果。

著录项

  • 公开/公告号CN103886021A

    专利类型发明专利

  • 公开/公告日2014-06-25

    原文格式PDF

  • 申请/专利权人 上海上讯信息技术股份有限公司;

    申请/专利号CN201410062348.3

  • 发明设计人 曾洪宁;

    申请日2014-02-24

  • 分类号G06F17/30;G06F9/45;

  • 代理机构上海百一领御专利代理事务所(普通合伙);

  • 代理人马育麟

  • 地址 201203 上海市浦东新区张江高科技园区郭守敬路498号8幢20300室

  • 入库时间 2024-02-20 00:20:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-02

    授权

    授权

  • 2015-07-29

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140224

    实质审查的生效

  • 2014-06-25

    公开

    公开

说明书

技术领域

本发明涉及一种数据库审计方法及系统,尤其涉及一种基于 自然语言的数据库审计结果翻译方法及系统。

背景技术

目前,随着结构化查询语言(STRUCTURED QUERY  LANGUAGE,SQL)数据库的广泛应用,数据库审计(Database  Audit)系统在满足用户降低数据库管理风险、实现数据库操作记 录监控的基础上,更进一步要求提供更友好、简单的查询界面, 使得非专业人员能对相应的SQL数据库进行数据库审计,并理解 其数据库审计结果,从而更简单、准确地掌控数据库。

目前的数据库审计方法都是将相应的审计结果通过SQL语句 形式直接显示。举例而言,当审计SQL语句如“select AAA from  table1”及其查询反馈结果为“1000”条时,现有的数据库审计系 统通常直接显示如下表1-1所示的SQL语句及其审计结果:

表1-1

SQL语句 结果 select AAA from table1 1000

此类显示内容通常只有专业的数据库技术人员才能理解其含 义,一般的非技术人员在不了解SQL语句的语法信息时,可能无 法通过该结果理解审计结果的真实情况。而非专业的数据库管理 技术人员因无法理解该语句对应的自然语言的意义,对相应的审 计结果无法具有准确的认识,而忽略相应的管理风险及可能存在 的安全隐患,并因此大大降低了数据库审计的安全意义。

因此,有必要提供一种能够基于自然语言的数据库审计结果 翻译方法及系统,可通过将数据库审计结果翻译成自然语言,使 得非专业的技术人员也可进行数据库审计交互,可方便地浏览数 据库审计结果并清楚地了解其意义。

发明内容

有鉴于此,本发明所要解决的技术问题是提供一种方法,以 能提供将数据库审计结果中的结构化查询语言(STRUCTURED  QUERY LANGUAGE,SQL)语句等专业术语翻译成非技术人员可 以理解的自然语言,使得非专业技术人员能简单、方便的浏览数 据库审计系统的审计结果,并清楚地了解其含义。

依据本发明的一个方面,提供了一种基于自然语言的数据库 审计结果翻译方法,包括以下步骤:

识别数据库审计结果中的SQL指令以获得其语法信息;

解析该SQL指令的语法信息以获得该SQL指令的操作信息;

根据用户翻译信息翻译该SQL指令的操作信息;以及

根据系统翻译信息以及翻译后的SQL指令的操作信息,对 SQL指令进行自然语言翻译。

在其中的一实施例中,该数据库审计结果翻译方法还进一步 包括以下步骤:设定至少一表名称翻译表;设定至少一表字段名 称翻译表;以及将表名称翻译表与表字段名称翻译表通过至少一 特定字段关联,以获得所述用户翻译信息。较佳地,该至少一特 定字段为表属性字段。

在其中的一实施例中,该系统翻译信息包括系统翻译词汇语 句表。

在其中的一实施例中,根据用户翻译信息翻译该SQL指令的 操作信息的步骤进一步包括:根据表名称翻译表及表字段名称翻 译表翻译SQL指令的操作信息,以获得翻译后的表信息。

在其中的一实施例中,根据系统翻译信息以及翻译后的该 SQL指令的操作信息对SQL指令进行自然语言翻译的步骤进一步 包括:根据翻译后的表信息及翻译词汇语句表对SQL指令进行自 然语言翻译。

在其中的一实施例中,该数据库审计结果翻译方法还进一步 包括步骤:输入原始数据库审计结构;输出以自然语言表述的该 数据库审计结果。

依据本发明的另一个方面,提供一种基于自然语言的数据库 审计结果翻译系统,包括:

用户定义翻译信息模块,用于设定用户翻译信息;

系统定义翻译信息模块,用于设定的系统翻译信息;以及

至少一翻译模块,所述翻译模块用于根据所设定的用户翻译 信息及设定的系统翻译信息对数据库审计结果进行识别、解析及 自然语言翻译。

在其中的一实施例中,该翻译模块包括一解析模块,用于识 别数据库审计结果中的SQL指令以获得其语法信息;解析该SQL 指令的语法信息以获得该SQL指令的操作信息;根据设定的用户 翻译信息翻译该SQL指令的操作信息;以及根据设定的系统翻译 信息以及翻译后的该SQL指令的操作信息对SQL指令进行自然语 言翻译。

在其中的一实施例中,用户翻译信息包括至少一表名称翻译 表以及至少一表字段名称翻译表,系统翻译信息包括至少一翻译 词汇语句表。

通过上述实施例,本发明能够根据用户需求在进行SQL审计 时自动地将以SQL术语表述的数据库审计结果翻译成自然语言, 使操作人员方便、简单地获得并清楚了解数据库审计结果。

附图说明

读者在参照附图阅读了本发明的具体实施方式以后,将会更 清楚地了解本发明的各个方面。其中,

图1示出本发明的基于自然语言的数据库审计结果翻译系统 模块示意图;

图2示出本发明一实施例中的基于自然语言的数据库审计结 果翻译系统模块示意图;

图3示出本发明的基于自然语言的数据库审计结果翻译方法 流程示意图;

图4示出图3中的基于自然语言的数据库审计结果翻译方法 流程示意图的示意性流程示意图;以及

图5是本发明又一实施例的应用效果示意图。

具体实施方式

为了使本申请所揭示的技术内容更加详尽与完备,可参照附 图以及本发明的下述各种具体实施例,附图中相同的标记代表相 同或相似的组件。然而,本领域的普通技术人员应当理解,下文 中所提供的实施例并非用来限制本发明所涵盖的范围。此外,附 图仅仅用于示意性地加以说明,并未依照其原尺寸进行绘制。

下面参照附图,对本发明各个方面的具体实施方式作进一步 的详细描述。

请配合参阅图1,所示为本发明基于自然语言的数据库审计 结果翻译系统模块示意图。在本发明的实施例中,数据库审计基 于结构化查询语言(Structured Query Language,SQL)指令进行。应 当指出的是,在基于其他查询语言指令进行的数据库审计中,本 发明的审计结果翻译系统亦可使用,而不限于本发明列举的情形。

在本实施例中,所述的数据库审计结果翻译系统包括用户定 义翻译信息模块1,用于设定用户翻译信息;系统定义翻译信息模 块2,用于设定的系统翻译信息,以及翻译模块3,所述翻译模块 3用于根据所述设定的用户翻译信息及设定的系统翻译信息对数 据库审计结果进行识别、解析及自然语言翻译。本领域的技术人 员应当理解,在其他的一些实施例中,用户定义翻译信息模块和 系统定义翻译信息模块并不是必要的,直接将用户翻译信息和系 统翻译信息存放在存储器或数据库中。

用户定义翻译信息模块1进一步可设置为可以进行定义、修 改、存储及删除的用户配置翻译表,并存储于相应的计算机硬件 存储或操作软件系统中,可通过物理硬件设置及软件系统实现。 在本实施例中,所设定的用户翻译信息至少包括用于翻译SQL语 句中的操作对象表及其字段名称的翻译表。在本发明的其他实施 方式中,所设定的用户翻译信息可以包括SQL语句中其它操作条 件和/或操作对象名称、内容的翻译表。应当指出的是,本发明所 指的用户翻译信息并不局限于本实施例中所列举的内容,其中用 户配置翻译表可以依据数据库审计的实际需求予以自行定义。

系统定义翻译信息模块2进一步可设置为可进行定义、修改、 存储及删除的翻译词汇语句表,所述翻译词汇语句表包括翻译语 句词汇数据,举例而言,可以包括如:从“”中进行记录查询, 查询结果包含“、”的信息,查询条件为“”的“”记录,共查 询到“”条记录等内容。应当指出的是,本发明所指的系统定义 翻译信息并不局限于本实施例中所列举的内容,其中系统定义的 翻译词汇语句表可依据数据库审计的实际需求予以自行定义。

翻译模块3进一步设置为根据用户定义翻译信息模块1中的 用户配置翻译表及系统定义翻译信息模块2中的翻译词汇语句表 对数据库审计结果的SQL指令进行识别、解析及自然语言翻译。

在本实施例中,翻译模块3还用于识别数据库审计结果中的 结构化查询语言(Structured Query Language,SQL)指令以获得其语 法信息,其中,SQL指令的语法信息包括但不限于如“select”、 “delete”、“update”以及“create”等操作指令信息。在本发明 的其他实施方式中,SQL指令的语法信息可以依据实际数据库审 查需求进行识别与定义,在此不再赘述。

翻译模块3进一步解析该SQL指令的语法信息以获得该SQL 指令的操作信息,例如:对select语句分析其查询的表名称、字段 名称,查询条件,查询结果数(该值需对数据库服务器的回应包进 行分析,得到返回的结果集数量)等关键信息;对delete语句分析 该条语句删除的表名称,删除条信息;对update语句分析出该条 语句操作的表名称、更新字段名称、更新条件等信息。同样的, 也可以以相同的方式,对识别出的其他SQL语句进行解析,以便 获得包括但不限于SQL语句的操作对象、操作条件等操作信息。

翻译模块3还根据所述的设定的用户翻译信息翻译该SQL指 令的操作信息,在本实施例中,翻译模块3根据用户配置的翻译 信息对解析出的操作信息进行替换翻译,从而获得翻译之后的操 作对象和/或操作条件信息。前述操作对象可以是SQL指令指向操 作的表名称信息、表字段名称信息等。

翻译模块3进一步根据前述翻译后的操作信息及设定的系统 翻译信息对SQL指令进行自然语言翻译。在本实施例中,翻译模 块3根据设定的系统翻译词汇语句表对已经依据用户配置的翻译 信息解析出的表名称信息、表字段名称信息等内容进行自然语言 翻译及组织,并最终形成以自然语言表述的翻译结果。举例而言, 当翻译模块3识别到一个SQL指令如“select name,price from  Table-fruit where price<50”的SQL语句,并审计到该条SQL指 令的查询返回结果包含1000条记录时,则根据翻译词汇语句表定 义的翻译语句词汇数据对SQL指令进行自然语言翻译为:“从‘果表’中进行记录查询,查询结果包含‘水果表’的‘水果名称、水果价格’字段,查询条件为‘水果价格小于50’,一共查询到 ‘1000’条记录。”

由上述可知,通过本发明的数据库审计结果翻译系统,在实 际使用中,可以准确地将本发明使用程序自动控制翻译流程,将 查询语句“select”、更新语句“update”、删除语句“delete”、增加 语句、“create”等等SQL语句显示的数据库审计结果根据具体数 据库自动进行准确的翻译,使数据库审计的输出结果最终可以向 普通用户展现。

请进一步参阅图2,所示为本发明一实施例中的基于自然语言 的数据库审计结果翻译系统模块示意图。在本实施例中,数据库 审计基于SQL指令进行。应当指出的是,在基于其他查询语言指 令进行的数据库审计中,本发明的审计结果翻译系统亦可使用, 而不限于本发明列举的情形。

在本实施例中,所述的数据库审计结果翻译系统包括用户定 义翻译信息模块1,用于设定用户翻译信息;系统定义翻译信息模 块2,用于设定的系统翻译信息,以及翻译模块3,用于识别数据 库审计结果中的SQL指令以获得其语法信息;解析该SQL指令的 语法信息以获得该SQL指令的操作信息;根据设定的用户翻译信 息翻译该SQL指令的操作信息;以及根据翻译后的操作信息及设 定的系统翻译信息对SQL指令进行自然语言翻译。

其中,用户定义翻译信息模块1进一步可设置为可以进行定 义、修改、存储及删除的用户配置翻译表,并存储于相应的计算 机硬件存储或操作软件系统中,可通过物理硬件设置及软件系统 实现。在本实施例中,所设定的用户翻译信息至少包括用于翻译 SQL语句中的操作对象表的名称翻译表11及其字段名称翻译表 12。在本发明的其他实施方式中,所设定的用户翻译信息可以包 括SQL语句中其它操作条件和/或操作对象名称、内容的翻译表。 应当指出的是,本发明所指的用户翻译信息并不局限于本实施例 中所列举的内容,其中用户配置翻译表可以依据数据库审计的实 际需求予以自行定义。

在本实施例中,所述表名称翻译表11至少应定义操作表的原 始表名,亦即以SQL指令语句显示的表名称;以及翻译后的表名 称,亦即以自然语言显示的表名称;同时,所述表名称翻译表11 最好应包括存储一个特殊字段,用于标明该操作对象表的属性, 在本实施例中,将该操作对象表的属性及其赋值(Table-Id)作为 所述特殊字段予以定义,在本发明的其他实施方式中,可以依据 实际需要将操作对象表的其他属性作为特殊字段予以定义、存储, 在此不再赘述。以前述“水果表”为例,请参阅下表2-1表名称翻 译表,其中表属性为特殊字段,赋值为1,原始表名为“Table-fruit” 与SQL指令语句中的操作对象表一致,用户定义的翻译表名为“水 果表”。应当指出的是,在本发明的其他实施方式中,各个字段的 实际赋值数据类型可以根据实际情况选择。

表2-1表名称翻译表

Table_Id 原始表名 翻译表名 1 Table_fruit 水果表

表字段名称翻译表12至少应定义操作表的属性(Table-Id)及 其赋值、该表的字段属性(Field_Id)及其赋值、原始字段即SQL 指令语句中的操作内容和/或操作条件等、以及用户设置的翻译字 段。请参阅下表2-2表字段名称翻译表,其中表属性(Table-Id) 为特殊字段,赋值为1。字段属性是在同一个表中依据原始字段分 类定义,如根据原始字段“name”将其字段属性赋值为1,根据原 始字段“price”将其字段属性赋值为2。同样的,根据原始字段 name将翻译字段定义为具有该表属性的“水果名称”,根据原始字 段price将翻译字段定义为具有该表属性的“水果价格”。应当指 出的是,在本发明的其他实施方式中,各个字段的实际赋值数据 类型可以根据实际情况选择。

表2-2字段名称翻译表

Field_Id Table_Id 原始字段 翻译字段 1 1 name 水果名称 2 1 price 水果价格

在本实施例中,表12通过特殊字段即表属性(Table-Id)进行 关联,请同时参阅表2-1及表2-2,表2-1所示的表名称翻译表11 与表2-2所示的表字段名称翻译表12通过对表属性(Table-Id)及 其相同的赋值1相关联,从而在匹配、搜索或索引时可以准确的 定义到SQL指令操作信息指向的对象和/或条件等信息。

系统定义翻译信息模块2进一步可设置为可以进行定义、修 改、存储及删除的翻译词汇语句表21,所述翻译词汇语句表包括 翻译语句词汇数据,举例而言,可以包括如:从“”中进行记录 查询,查询结果包含“、”的信息,查询条件为“”的“”记录, 共查询到“”条记录等内容。请进一步参阅表2-3翻译词汇语句表, 其中所示的字段赋值定义应与表2-1及表2-2相一致,即该系统翻 译词汇语句表的字段赋值应与前述Table-Id、Field-Id一致,并应 与其语句词汇字段Id相关联。应当指出的是,在本发明的其他实 施方式中,翻译词汇语句表21各个字段的实际赋值数据类型可以 根据实际情况选择。

表2-3翻译词汇语句表

语句词汇 从“” 中进行记录查询,查询结果包含“” 信息,查询条件为: “”的 “”记录, 共查询到 “”条记录 字段 查询条件 小于

应当指出的是,本发明所指的系统定义翻译信息并不局限于 本实施例中所列举的内容,其中系统定义的翻译词汇语句表可以 依据数据库审计的实际需求予以自行定义。

翻译模块3进一步设置为用于根据用户定义翻译信息模块1 中的用户配置翻译表及系统定义翻译信息模块2中的翻译词汇语 句表对数据库审计结果的SQL指令进行自然语言翻译。

在本实施例中,翻译模块3进一步包括一输入模块30、解析 模块31以及输出模块32。在本实施例中,输入模块30可与所述 用户定义翻译信息模块1以及所述系统定义翻译信息模块2连接, 以接收所述用户翻译信息及系统翻译信息;输入模块30还用于接 收一原始数据库审计结果。在本实施例中,所述原始数据库审计 结果包括以前述表1-1形式显示的数据库审计结果。

解析模块31与所述输入模块30连接,用于识别所述原始数 据库审计结果中的SQL指令以获得其语法信息,其中SQL指令的 语法信息包括但不限于如“select”、“delete”、“update”以及 “create”等操作指令信息。在本发明的其他实施方式中,SQL指 令的语法信息可以依据实际数据库审查需求进行识别与定义,在 此不再赘述。

解析模块31进一步解析该SQL指令的语法信息以获得该SQL 指令的操作信息,例如:对select语句分析其查询的表名称、字段 名称,查询条件,查询结果数(该值需要对数据库服务器的回应包 进行分析,得到返回的结果集数量)等关键信息;对delete语句分 析该条语句删除的表名称,删除条信息;对update语句分析出该 条语句操作的表名称、更新字段名称、更新条件等信息。同样的, 也可以以相同的方式,对识别出的其他SQL语句进行解析,以便 获得包括但不限于SQL语句的操作对象、操作条件等操作信息。

解析模块31还根据所述的设定的用户翻译信息翻译该SQL指 令的操作信息,在本实施例中,解析模块31根据用户配置的翻译 信息对解析出的操作信息进行替换翻译,从而获得翻译之后的操 作对象和/或操作条件信息。前述操作对象可以是SQL指令指向操 作的表名称信息、表字段名称信息等。请结合参阅表2-1及表2-2, 举例而言,当解析模块31解析到一个SQL指令如“select name, price from Table-fruit where price<50”的操作对象为“Table-fruit” 表时,根据该表的属性赋值1指向并显示翻译后的表2-1所示的表 名称“水果表”。而表2-2通过特定字段表的属性赋值1关联到表 2-2,从而进一步根据name的字段属性赋值1将其翻译为“水果名称”,根据price的字段属性赋值2将其翻译为“水果价格”。

解析模块31进一步根据前述翻译后的操作信息及设定的系统 翻译信息对SQL指令进行自然语言翻译。在本实施例中,解析模 块31根据设定的系统翻译词汇语句表对已经依据用户配置的翻译 信息解析出的表名称信息、表字段名称信息等内容进行自然语言 翻译及组织,并最终形成以自然语言表述的翻译结果。举例而言, 解析模块31前述SQL指令的查询返回结果包含1000条记录时, 则根据翻译词汇语句表定义的翻译语句词汇数据对SQL指令进行 自然语言翻译为:“从‘水果表’中进行记录查询,查询结果包 含‘水果表’的‘水果名称、水果价格’字段,查询条件为‘果价格小于50’,一共查询到‘1000’条记录。”

输出模块32与解析模块31连接,用于将解析模块31翻译后 的以自然语言表述的数据库审计结果输出至相应的显示或交互界 面,以使数据库审计操作人员或管理员可以方便的获得该自然语 言形式的数据库审计结果。

由上述可知,通过本发明的数据库审计结果翻译系统,在实 际使用中可以准确地将本发明使用程序自动控制翻译流程,将查 询语句“select”、更新语句“update”、删除语句“delete”、增加语 句、“create”等等SQL语句显示的数据库审计结果根据具体数据 库自动进行准确的翻译,使数据库审计的输出结果最终可以向普 通用户展现。

请参阅图3,所示为本发明的基于自然语言的数据库审计结果 翻译方法流程示意图。本发明的实施例中,数据库审计基于SQL 指令进行。应当指出的是,在基于其他查询语言指令进行的数据 库审计中,本发明的数据库审计结果翻译方法亦可使用,而不限 于本发明列举的情形。

在步骤100,设定用户翻译信息。其中,用户翻译信息可设置 为可以进行定义、修改、存储及删除的用户配置翻译表,并存储 于相应的计算机硬件存储或操作软件系统中,可通过物理硬件设 置及软件系统实现。在本实施例中,所设定的用户翻译信息至少 包括用于翻译SQL语句中的操作对象表及其字段名称的翻译表。 在本发明的其他实施方式中,所设定的用户翻译信息可以包括 SQL语句中其它操作条件和/或操作对象名称、内容的翻译表。应 当指出的是,本发明所指的用户翻译信息并不局限于本实施例中 所列举的内容,其中用户配置翻译表可以依据数据库审计的实际 需求予以自行定义。

在步骤200,设定系统翻译信息。在本实施例中,所述系统翻 译信息进一步可设置为可以进行定义、修改、存储及删除的翻译 词汇语句表,所述翻译词汇语句表包括翻译语句词汇数据,举例 而言,可以包括如:从“”中进行记录查询,查询结果包含“、” 的信息,查询条件为“”的“”记录,共查询到“”条记录等内 容。应当指出的是,本发明所指的系统定义翻译信息并不局限于 本实施例中所列举的内容,其中系统定义的翻译词汇语句表可以 依据数据库审计的实际需求予以自行定义。应当指出的是,步骤 100与步骤200之间并无指定的先后顺序,即步骤100及步骤200 之分别实现间并不以相互完成为要件。在其他的一些实施例中, 用户翻译信息和系统翻译信息直接存放于存储器或数据库,因而 亦可不必执行步骤100和200。

在步骤400,识别一数据库审计结果中的SQL指令以获得其 语法信息。其中所述SQL指令的语法信息包括但不限于如“select”、 “delete”、“update”以及“create”等操作指令信息。在本发明 的其他实施方式中,SQL指令的语法信息可以依据实际数据库审 查需求进行识别与定义,在此不再赘述。

在步骤500,解析该SQL指令的语法信息以获得该SQL指令 的操作信息。就本实施例而言,例如:对select语句分析其查询的 表名称、字段名称,查询条件,查询结果数(该值需要对数据库服 务器的回应包进行分析,得到返回的结果集数量)等关键信息;对 delete语句分析该条语句删除的表名称,删除条信息;对update 语句分析出该条语句操作的表名称、更新字段名称、更新条件等 信息。同样的,也可以以相同的方式,对识别出的其他SQL语句 进行解析,以便获得包括但不限于SQL语句的操作对象、操作条 件等操作信息。

在步骤600,根据设定的用户翻译信息翻译该SQL指令的操 作信息。在本实施例中,根据用户配置的翻译信息对解析出的操 作信息进行替换翻译,从而获得翻译之后的操作对象和/或操作条 件信息。前述操作对象可以是SQL指令指向操作的表名称信息、 表字段名称信息等。

在步骤700,根据翻译后的操作信息及设定的系统翻译信息对 SQL指令进行自然语言翻译。在本实施例中,根据设定的系统翻 译词汇语句表对已经依据用户配置的翻译信息解析出的表名称信 息、表字段名称信息等内容进行自然语言翻译及组织,并最终形 成以自然语言表述的翻译结果。举例而言,当识别到一个SQL指 令如“select name,price from Table-fruit where price<50”的SQL 语句,并审计到该条SQL指令的查询返回结果包含1000条记录时, 则根据翻译词汇语句表定义的翻译语句词汇数据对SQL指令进行 自然语言翻译为:“从‘水果表’中进行记录查询,查询结果包 含‘水果表’的‘水果名称、水果价格’字段,查询条件为‘果价格小于50’,一共查询到‘1000’条记录。”

由上述可知,通过本发明的数据库审计结果翻译方法,在实 际使用中可以准确地将本发明使用程序自动控制翻译流程,将查 询语句“select”、更新语句“update”、删除语句“delete”、增加语 句、“create”等等SQL语句显示的数据库审计结果根据具体数据 库自动进行准确的翻译,使数据库审计的输出结果最终可以向普 通用户展现。

请进一步参阅图4,所示为图3所示的基于自然语言的数据库 审计结果翻译方法流程示意图的优选流程示意图。本发明的实施 例中,所述的数据库审计基于SQL指令进行。应当指出的是,在 基于其他查询语言指令进行的数据库审计中,本发明的数据库审 计结果翻译方法亦可使用,而不限于本发明列举的情形。

请结合参阅图3,为描述方便起见,对图4与图3相同的流程 不再赘述。在本实施例中,步骤100设定用户翻译信息步骤至少 进一步包括设定用于翻译SQL语句中的操作对象表的名称翻译表 的步骤1002设定及其字段名称翻译表的步骤1004,以及将表名称 翻译表与表字段名称翻译表通过特定字段关联的步骤1006。在本 发明的其他实施方式中,设定用户翻译信息的步骤还可以包括设 定SQL语句中其它操作条件和/或操作对象名称、内容的翻译表的 步骤。应当指出的是,本发明所指的设定用户翻译信息并不局限 于本实施例中所列举的内容,而可以依据数据库审计的实际需求 予以自行定义。

在步骤1002,设定表名称翻译表。在该实施例中,所述设定 表名称翻译表1002至少应包括定义操作表的原始表名,亦即以 SQL指令语句显示的表名称;以及翻译后的表名称,亦即以自然 语言显示的表名称的步骤。同样,所述表名称翻译表最好应设定 为包括存储一个特殊字段,用于标明该操作对象表的属性,在本 实施例中,将该操作对象表的属性及其赋值(Table-Id)作为所述 特殊字段予以定义,在本发明的其他实施方式中,可以依据实际 需要将操作对象表的其他属性作为特殊字段予以定义、存储,在 此不再赘述。以前述“水果表”为例,请参阅前表2-1表名称翻译 表,其中表属性为特殊字段,赋值为1,原始表名为“Table-fruit” 与SQL指令语句中的操作对象表一致,用户定义的翻译表名为“水 果表”。应当指出的是,在本发明的其他实施方式中,各个字段的 实际赋值数据类型可以根据实际情况选择。

在步骤1004,设定表字段名称翻译表。在本优选实施例中, 所述设定表字段名称翻译表至少应定义操作表的属性(Table-Id) 及其赋值、该表的字段属性(Field_Id)及其赋值、原始字段即SQL 指令语句中的操作内容和/或操作条件等、以及用户设置的翻译字 段等内容。请配合参阅前述表2-2表字段名称翻译表,其中表属性 (Table-Id)为特殊字段,赋值为1。字段属性是在同一个表中依 据原始字段分类定义,如根据原始字段“name”将其字段属性赋 值为1,根据原始字段“price”将其字段属性赋值为2。同样的, 根据原始字段name将翻译字段定义为具有该表属性的“水果名 称”,根据原始字段price将翻译字段定义为具有该表属性的“水 果价格”。应当指出的是,在本发明的其他实施方式中,各个字段 的实际赋值数据类型可以根据实际情况选择。

在步骤1006,将表名称翻译表与表字段名称翻译表通过特定 字段关联。在本优选实施例中,将所述表名称翻译表与表字段名 称翻译表通过特殊字段即表属性(Table-Id)进行关联。请同时参 阅表2-1及表2-2,将表2-1所示的表名称翻译表11与表2-2所示 的表字段名称翻译表12通过对表属性(Table-Id)及其相同的赋值 1进行关联,从而在匹配、搜索或索引时可以准确的定义到SQL 指令操作信息指向的对象和/或条件等信息。

步骤200设定系统翻译信息进一步包括步骤2002,即由系统 通过特定字段设定翻译词汇语句表。在本优选实施例中,所述系 统可以进行定义、修改、存储及删除的翻译词汇语句表。所述翻 译词汇语句表包括翻译语句词汇数据,举例而言,可以包括如: 从“”中进行记录查询,查询结果包含“、”的信息,查询条件为 “”的“”记录,共查询到“”条记录等内容。请进一步参阅表 2-3翻译词汇语句表,其中所示的字段赋值定义应与表2-1及表2-2 相一致,即该系统翻译词汇语句表的字段赋值应与前述Table-Id、 Field-Id一致,并应与其语句词汇字段Id相关联。应当指出的是, 在本发明的其他实施方式中,翻译词汇语句表21各个字段的实际 赋值数据类型可以根据实际情况选择。应当指出的是,本发明所 指的系统定义翻译信息并不局限于本实施例中所列举的内容,其 中系统定义的翻译词汇语句表可以依据数据库审计的实际需求予 以自行定义。

在步骤300,输入一原始数据库审计结果。在本优选实施例中, 所述数据库审计结果为原始数据库审计结果,即以SQL指令语句 显示的数据库审计结果。在本实施例中,所述原始数据库审计结 果包括以前述表1-1形式显示的数据库审计结果。

本实施例中步骤400识别数据库审计结果中的SQL指令以获 得SQL指令的语法信息之步骤与图3相同,在此不再详细表述。

步骤500解析该SQL指令的语法信息以获得SQL指令的操作 信息

步骤600根据设定的用户翻译信息翻译该操作信息进一步包 括步骤6002,即根据表名称翻译表及表字段名称翻译表翻译SQL 指令操作信息,获得翻译后的表信息。在本优选实施例中,根据 前述用户配置的翻译信息对解析出的操作信息进行替换翻译,从 而获得翻译之后的操作对象和/或操作条件信息。前述操作对象可 以是SQL指令指向操作的表名称信息、表字段名称信息等。请结 合参阅表2-1及表2-2,举例而言,当解析到一个SQL指令如“select  name,price from Table-fruit where price<50”的操作对象为 “Table-fruit”表时,根据该表的属性赋值1指向并显示翻译后的 表2-1所示的表名称“水果表”。而因为表2-2已通过特定字段表 的属性赋值1关联到表2-2,从而进一步根据name的字段属性赋 值1将其翻译为“水果名称”,根据price的字段属性赋值2将其 翻译为“水果价格”,从而获得翻译后的表信息。

在步骤700,根据翻译后的操作信息及设定的系统翻译信息对 SQL指令进行自然语言翻译进一步包括步骤7002,即根据翻译后 的表信息及翻译词汇语句表对SQL指令进行自然语言翻译。在本 优选实施例中,根据设定的系统翻译词汇语句表对已经依据用户 配置的翻译信息解析出的表名称信息、表字段名称信息等内容进 行自然语言翻译及组织,并最终形成以自然语言表述的翻译结果。 举例而言,前述SQL指令的查询返回结果包含1000条记录时,则 根据翻译词汇语句表定义的翻译语句词汇数据对SQL指令进行自 然语言翻译为:“从‘水果表’中进行记录查询,查询结果包含 ‘水果表’的‘水果名称、水果价格’字段,查询条件为‘水果价格小于50’,一共查询到‘1000’条记录。”

在步骤800,输出自然语言表述的数据库审计结果。即通过显 示界面或者交互界面显示前述以自然语言表述的数据库审计结果 “从‘水果表’中进行记录查询,查询结果包含‘水果表’的‘果名称、水果价格’字段,查询条件为‘水果价格小于50’,一 共查询到‘1000’条记录。”从而,数据库审计操作人员或管理 员可以方便的获得该自然语言表述的数据库审计结果。

请结合参阅图5,所示为本发明优选实施例的应用效果示意 图。该图清晰的显示了通过交互或显示界面显示的以自然语言表 述的数据库审计结果。这种显示结果简单、明晰,并使得非数据 库专业管理、技术人员也能及时的了解相应的数据库审计结果。

上文中,参照附图描述了本发明的具体实施方式。但是,本 领域中的普通技术人员能够理解,在不偏离本发明的精神和范围 的情况下,还可以对本发明的具体实施方式作各种变更和替换。 这些变更和替换都落在本发明权利要求书所限定的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号