数据库自然语言接口技术研究在教学中的应用

2012-08-15 00:54:40钱雅萍集宁师范学院内蒙古乌兰察布012000
湖北科技学院学报 2012年8期
关键词:语句工资语义

钱雅萍(集宁师范学院,内蒙古乌兰察布012000)

数据库自然语言接口技术研究在教学中的应用

钱雅萍
(集宁师范学院,内蒙古乌兰察布012000)

数据库结构化查询系统,也称Structured Query Language(SQL)是一种数据库查询和程序设计语言,也是目前使用最广泛的数据库语言。本文从数据库结构化查询系统的现状和教学问题出发,提出了中文SQL理念,建立中文SQL语言库,并结合具体例子,阐明实现SQL的三个步骤和两个模块,从而改进SQL的学习。

数据库自然语言接口技术;中文SQL语言库;查询语言学习

一、关系数据库SQL语言学习的现状

数据库自然语言接口是自然语言理解与数据库技术结合的产物。作为AI中的自然语言理解的智能接口,近年来受到重视,具有很高的理论价值与广泛的应用前景。数据库结构化查询系统是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,是目前使用最为广泛的数据库语言。SQL语言具有简单和高度结构化的特点,但是在实际的教学中,学生一上课就懂,一上机就无从下手,理论和实践的不同步,造成学习兴趣降低,导致实验的智力支持和监控机制的缺失。

大多学生英语综合水平较低,造成阅读水平的受限,英文翻译能力较差。目前院校教学所使用的数据库管理工具,如SQL、SERVER、ORACLE,尽管都有中文版,但是与其他软件开发工具一样,编写SQL语句虽然是中文菜单,但程序的编写仍然是英文的,不利于学生学习。

SQL学习中,很容易出现不能理清逻辑状况:阅读能力不足,不能理解别人书写的SQL语句;书写能力不足,自己不能组织SQL语句。出现这种情况的原因如下:SQL语言与编程语言的逻辑组织方式不同,学习时,特别是初学时受到编程语言的影响而不易掌握;书写SQL语句时,随意性较大,没有形成SQL语句编码风格,表述无逻辑性;教材例题没有与实际挂钩,学生对SQL的语句用途不理解。

二、SQL语言学习理念

易语言是由我国软件人员自主开发,拥有知识产权,采用全中文编程的软件开发系统。易语言与其他编程软件相比,最大的特点就是编程彻底中文化,编写的代码都是中文。这种编程语言有独到的优势,可以采用汉语进行编程。在教学过程中,根据学生特点,基于实体联系图(Entity Relationship,简称ER模式)和受限汉语的关系数据库汉语查询语言的计算模型(Restrictive Chinese Query Language,简称RCHIQL)进行研究,探讨其在SQL语言学习中的应用。

数据库自然语言界面(Natural Language Interface to a Database,简称NLIDB)允许用户用自然语言对数据库内容提出各种操作要求,然后系统自动将其转换为数据库的操作语言,从而在数据库中找到正确信息,提供给用户。该系统的特点是:采用数据库技术、计算语言学和人工智能等多学科结合的思路,其模型建立在受限汉语集合上,利用汉语自动分词技术,受限汉语文法是根据数据库汉语查询句中常用的词法与语法而建立的一系列的语法、语义规则,采用数据库E-R模型与其指称的数据库模型语意及背景知识结合的技术;输入的汉语查询句型符合中国人的思维习惯和表达方式;在技术上采用栈结构形式,从汉语句型到SQL中间的语言形式都采用类关系代数形式的语义查询树,形式上更加灵活,便于自动转换;提出了用关联按路径的方法实现SQL的转换,避免了多层嵌套搜索。

数据库中文自然语言界面有重大的理论意义和实用价值。汉语有区别于英语的自身独特性,机器处理相对难度较大;加上以往的研究方法不重视数据库技术在中文查询语言理解的作用,造成了数据库中文自然语言界面的研究一直进展缓慢。中文自然语言处理系统常用的处理方式是:分词组合、语法分析、语义分析、语境分析等。每个步骤都要独立完成,在自然语言处理时相对困难,但是处理程序语言还是可以胜任的。

举例来说,给出如下的数据库表:职工Emp(职工号EmpNO,姓名EName,任职日期HireDate,职务Job,工资Sal,部门号DeptNo)部门Dept(部门号DeptNo,部门名称Dname,经理号Mgr)。

如果要对工资普遍偏低(低于1000块)的部门进行加薪,加薪人数为10人以上,将符合条件的职工信息按照工资升序打印出来,打印信息主要有部门名称、职工号、职工姓名、任职日期、职务、工资等,作为加薪附件。这就要求关系数据库汉语查询语言的计算模型(RCHIQL)理解人类语言,但是这是不可能的,因为汉语句子的语序非常灵活,因此对其进行语法分析,就目前技术来看是不现实的。但是根据实体联系图(ER模式)和受限汉语的关系数据库汉语查询语言的计算模型(RCHIQL)相结合,就能很好帮助机器理解查询语句。二者结合,结果如下:

查询表(职工,部门):部门名称,职工号,姓名,任职日期,职务,工资;条件为职工.部门号=部门.部门号和工资<1000和(查询表(职工):记录数;条件为职工.部门号=部门.部门号和工资<1000)>10;按工资升序排序。

三、SQL语言学习方法

首先学会分析自然语言。数据库的自然语言查询在词汇、句型、语义、语用等方面有其自身特点和规律。在数据库自然语言界面(NLIDB)中自然语言受限问题有三个方面:受限方式;受限程度;如何让用户理解这种受限。受限方式主要表现在词汇受限、句型受限、语义受限、语用受限等。对受限进行分析的目的在于为后面的语言分析寻找一些规律和依据,使复杂的语言分析有据可依。自然查询语言处理中,最重要的是分清查询目标和条件,及目标和条件的组成规律。

编写SQL语句的步骤如下:了解需求的逻辑;把逻辑分成若干部分;组成SQL语句。基于自然语言的查询分析从所要引用的查询对象开始,首先明确查询目标对象,也就是查询对象和查询结果的列(当查询对象有多个的时候,要注意看看是否有关联,如果有关联,则产生建议的关联条件),如果有条件限制,就根据限制条件组合查询条件,达到限制目标行的目的。然后把目标行和目标列进行组合,就是结果集。根据实际需求,将结果集进行相应的排序或分组。通过这种思路,简化词汇、句型、语义、语用等方面的规律的分析,对过程按一定的规律受限(当然要注意受限程度。受限程度过弱,系统实现难度大,系统可用性降低;受限程度过强,系统语言的使用范围过窄,容易出现范围失陪的情况)。

在数据库设计过程中,从概念模型到物理模型的转换,也就是实物设计到数据库的实现的过程中,很多语义信息都丢失了,而用户查询却是在基于模型概念的基础之上。可以根据以上流程,通过下面三个步骤实现对SQL的学习。

首先进行目标定位。以之前的例子为例:如果要对工资普遍偏低(低于1000块)的部门进行加薪,加薪人数为10人以上。分析员工信息列、员工工资等信息在员工表中,部门人数统计在相关部门表中。因此,中文SQL的学习语言是“查询表(职工,部门);部门名称,职工号,姓名,任职日期,职务,工资”。

然后进行条件分析,划分集合块。寻找与结果相关的条件、对象之间的关联条件以及先定结果的条件。从第一步产生的结果集,需求中哪些会影响到结果,并分析其中是否有隐含的条件。

对结果进行二次筛选。根据第二步限定条件查询出来的结果虽然已经符合用户要求,但是仍然存在另一部分对结果产生影响的因素,但是这些因素又不属于条件范畴中,比如分组、结果集的排序、重复行的去除以及只取前几行等情况。在本文中提出的例子,对整个结果存在影响的是:按工资排序。因此在第三步产生中文SQL学习语言中应为“按工资升序排列”。然后生成SQL语句。

基于概念模式产生的中文SQL学习语言查询的中间表达形式,然后形成SQL语句的表达方式。在SQL的转换过程中,将整个含有复杂语义的自然语言查询分成不同模块,转换为一个数据库查询语言。因此要制定中文SQL学习语言库,实现受限汉语和数据库语言的相互映射,通过所分的两个模块,实现SQL语句的生成。

第一个模块实现语法转换。运用中文SQL学习语言库受限汉语和数据库语言相互映射的规律,并根据符合SQL的语言自身的特点,对中文的SQL语言学习进行转换、调整。另外保留转换后的应为SQL学习语言,也就是中间语言。

还是结合刚刚那个例子。转换前的中文SQL语言是:“查询表(职工,部门):部门名称,职工号,姓名,任职日期,职务,工资;条件为职工.部门号=部门.部门号和工资<1000和(查询表(职工):记录数;条件为职工.部门号=部门.部门号和工资<1000)>10;按工资升序排序。”转换后的中文SQL语言是:“SELECT部门名称,职工号,姓名,任职日期,职务,工资FROM职工,部门WHERE职工.部门号=部门.部门号AND工资<1000AND(SELECT COUNT (*)FROM职工.WHERE职工.部门号=部门.部门号和工资<1000)>10ORDERBY工资ASC”。

语法转换完成后,进行语义转换。数据库的概念模型设计适合用户阅读,也适合学校课堂教授,学生也比较容易理解。在数据库管理中,注意数据库的物理实现,同时也要注意丢失的概念模型设计信息。因此,在这个模块中,要注意根据概念模块与物理模块的对应关系将中间语言转化成最终的SQL语言。

在这个例子中,最终的SQL语言如下:SELECT Dname,Emp.EmpNO,Ename,HireDate,Job,Sal FROM Emp,Dept WHERE Emp.DeptNo=Dept.DeptNo AND Sal<l000”AND (SELECT COUNT(E.EmpNO)FROM Emp E WHERE E.DeptNo=Dept.DeptNo AND Sal<l000)>10ORDER BY Sal。

四、结语

本文主要介绍了关系数据库SQL语言学习的现状、SQL语言学习理念和SQL语言学习方法,通过中文SQL学习语言,结合具体SQL学习案例进行学习,并提出了教学中的改进方案,通过具体例子帮助学生理解SQL语句的编写逻辑,辅助数据库教学。但是鉴于汉语受限程度较大,因此无法智能分析自然语言,还需要人为因素参与。

[1]刘志芳.董小蕾.易语言的使用与研究[J].唐山师范学院学报,2007,(3).

[2]崔宗军.唐世渭.杨冬青.基于ER模型和受限汉语的数据库中文查询语言研究[J].中文信息学报,2001,(6).

[3]孟小峰.王珊.中文数据库自然语言查询系统Nchiql设计与实现[J].计算机研究与发展,2001,(9).

[4]闫红岩.SQL语句分析及数据库安全研究[J].贵州大学学报,2006,(11).

[5]蔡雷.数据库查询语言SQL的语法分析及实现[J].天津大学校报,2006,(12).

[6]孟小峰.中文数据库自然语言查询处理研究[D].北京:中国科学院计算机技术研究所,1999.

[7]许龙飞.杨晓君.唐世渭.基于受限汉语的数据库自然语言接口技术研究[J].软件学报,2002,(4).

[8]文秋芳.英语学习策略论[M].上海:上海外语教育出版社,2000.

[9]卢民荣.范年柏.数据库自然语言接口技术研究及其在教学中的应用[J].计算机光盘软件与应用,2011,(2).

[10]顾国良.王能斌.数据库NL界面上汉语查询的EAAD模型[J].计算机学报,1990,(13).

[11]俞士汶.关于受限的规则汉语的设想[M].济南:山东教育出版社,1995.

TP315

A

1006-5342(2012)08-0143-02

2012-06-13

猜你喜欢
语句工资语义
这种情况下未续订劳动合同是否应当支付二倍工资
重点:语句衔接
语言与语义
精彩语句
“上”与“下”语义的不对称性及其认知阐释
现代语文(2016年21期)2016-05-25 13:13:44
说说索要工资那些事
不用干活,照领工资
山东青年(2016年2期)2016-02-28 14:25:45
认知范畴模糊与语义模糊
如何搞定语句衔接题
语文知识(2014年4期)2014-02-28 21:59:52
语义分析与汉俄副名组合
外语学刊(2011年1期)2011-01-22 03:38:33