SQL查询虚拟实验系统设计及实现方法研究
2018-07-12严传波孙静木拉提·哈米提毕雪华姬金虎
严传波 孙静 木拉提·哈米提 毕雪华 姬金虎
摘要:SQL查询实验教学是数据库课程教学的重要组成部分。传统SQL实验教学在实验机房进行,为方便学生课外自主学习,解决数据库SQL实验受时间、空间的限制。文章阐述了基于Web的数据库SQL查询虚拟实验系统的功能模块、体系结构及实现方法。该系统可以模拟完成SQL语句的增、删、改、查实验及运行结果的实时模拟显示。系统可查看SQL实验题历次书写记录,帮助学生分析SQL语句出错的原因,从而理解掌握SQL语句。系统达到了SQL虚拟实验的教学目的,更新了数据库实验教学的实验方法,对进一步提高数据库课程教学水平有一定的参考意义。
关键词:数据库;SQL查询;虚拟实验;实验教学
中图分类号 TP391.6 文献标识码:A 文章编号:1009-3044(2018)12-0011-03
Abstract: SQL query experiment is an important part of database course teaching. The traditional SQL experiment is carried out in the laboratory with the limitation of time and space. In order to facilitate students' independent learning, the virtual experiment system for SQL query based on the Web is designed, including the functional module, system structure and implementation. The SQL statement experiment of create, drop, update and select can be completed in this virtual system, and the results are real-time displayed. The process records of writing SQL sentence can be viewed to help student analyze the reasons for the errors in the experiment. So then, the student can further understand and master the SQL statement. The virtual system achieves the purpose of SQL experiment teaching, updates the experiment method, and has the great significance to improve the teaching level of the database.
Key words: Database, SQL query, virtual experiment system, experiment teaching
實验教学是理工类课程的教学环节中一个不可忽视的重要内容,对培养大学生的创新能力、综合素质意义重大[1]。随着网络化和信息化的发展,传统的实验室教学已经逐渐不能满足教学的需要;构建虚拟实验平台作为传统实验教学的有效补充,通过“虚实结合”,实现实验教学手段和教学模式的多元化[2-3], 对上课时间没有掌握的课程内容,可以在业余时间学习,在宽松的环境下实现学生的自主学习,拓宽学生的学习途径。与传统实验相比,虚拟实验具有成本低、效率高、不受时间和空间的限制等特点[4-6]。虚拟实验还可根据学生的不同操作情况提供个性化的反馈,及时向学生传递信息,保持学习的持续性,防止学习过程的脱节和错误的累积[7]。当前,构建基于网络的虚拟实验平台已逐渐成为发展趋势,已经研制和出现了许多课程的虚拟实验教学平台并用于教学,取得了良好的教学效果[8-10]。
1 SQL实验教学存在的问题
当前,数据库技术应用已深入到社会生活的方方面面。数据库是一项重要的信息处理技术,数据库课程已经成为信息管理专业学生必修的专业基础课程之一。数据库实验教学是数据库课程教学的重要内容,对学生理解数据库的数据模型、体系结构、数据定义、数据操纵、数据查询、事务处理、事务并发等相关知识有重要的辅助作用。各学校数据库课程传统的实验教学方式是在实验中心机房,通过台式计算机的数据库管理系统完成SQL查询实验及其他子功能的学习。传统实验教学方法优点在于学生可以对数据库各子功能有全面切身体验,对数据库SQL语法、书写格式、语句执行结果有真实的感受,从而快速掌握SQL查询语句的使用,对数据库理论知识的理解也更加深刻;不足之处是实验课时少,只能在实验中心机房进行实验,课外时间无法进行,这对一部分动手能力弱的学生来说,很难按时完成教师布置的实验任务。针对这些问题,设计和构建基于Web的数据库SQL虚拟实验环境,使数据库SQL实验突破时间、空间的限制,已成为现实迫切需要。人们对基于网络的数据库虚拟实验平台研究也一直在进行,研究目标是构建一个全仿真的数据库实验平台,完全实现数据库对象的操作如用户授权、创建、查询、更新、修改、备份和恢复等复杂功能[11-13],而传统的数据库课程实验教学重点是让学生掌握SQL查询语句的语法及功能,对数据库其他功能不作为实验的重点。因此,文章将问题简化,设计和构建基于Web的数据库SQL增、删、改、查的数据库虚拟实验系统,仅用于模拟数据库的SQL查询实现。经过研究和设计,系统基本可实现数据库SQL语句的输入、运行及查询结果显示,学生还可查看和追溯学生实验题答题的历史记录,使学生可以更好地分析SQL语句出错的原因,从而理解掌握SQL语句,实现了实验教学目的。
2 基于Web的SQL查询虚拟实验系统设计分析
2.1 系统功能模块设计
数据库SQL虚拟实验系统主要根据数据库课程的实验教学内容,模拟数据库管理系统实现SQL语句的输入、运行及查询结果显示,忽略数据库、表、视图等对象的创建、数据库授权、备份和恢复等功能,这样一方面可正常开展网上数据库实验教学,另一方面又有利于降低SQL虚拟实验系统的复杂性,减小系统开发难度,提高系统可靠性。系统应具有用户管理、实验题管理、数据库实验、数据库实验结果查看、历史回溯等功能。系统功能模块如图1所示。
2.2 系统架构设计
Java是一种简单、体系架构无关的面向对象程序设计语言。Java开发的程序具有安全可靠、平台无关、可移植性好、系统功能容易扩展等特点。因此,系统架构采用Java Servlet+JSP+Css+Jquery+SQL2008的简化版MVC模式设计,其中,模型M由SQL实验题Dao、VO对象构成,实现SQL语句对实验数据库的增、删、改、查。JSP、Css和Jquery实现SQL语句查询及结果数据的显示,Java Servlet完成数据库SQL虚拟实验的相关逻辑控制。Java Servlet只运行在服务器端,具有安全可靠、稳定性好,可扩展性高等特点。通过这种简化的MVC模式,可以快速实现轻量级的基于Web的数据库SQL语句虚拟实验应用,而且功能界面清晰,便于维护,代码重用性好,功能扩展容易。简化版的SQL查询虚拟实验系统MVC模式架构如图2所示。
3 SQL查询虚拟实验系统的实现
基于Web的数据库SQL虚拟实验的核心是如何模拟数据库管理系统,实现SQL语句查询Select、插入Insert、修改Update和删除Delete等语句的解释和执行,并将查询结果实时仿真的显示在客户端,使学生感觉虚拟实验与真实的课堂实验环境一致,达到学生课内课外均可完成指定的数据库查询实验,突破实验受时间、空间的限制。实验系统根据SQL查询性质将实验分为两类,一类是Select语句实验,只检索数据,返回数据库表的检索结果,不修改实验数据库数据,查询结果对其他学生实验不造成影响;另一类是更新语句,如Insert、Update、Delete、Create、Alter、Drop等语句,可能会修改实验数据库的表、数据、视图等信息,查询结果可能对其他学生进行SQL实验造成影响。这两种情况的SQL实验需要加以区分,分别实现。SQL查询虚拟实验系统的查询与更新语句实验流程如图3所示。
3.1 SQL查询实验的Select语句模拟
Select语句的查询对象和查询结果都是一个数据集合,其查询结果可返回关系表的单行、多行或全部数据,为防止数据返回过多,造成网络拥塞,需要限制Select语句返回数据的行数,如只返回数据前5行等。学生提交Select查询语句实验后,系统通过应用服务器处理Select语句,根据数据库返回的执行结果,输出查询結果信息。若出错,则将数据库的SQL执行错误信息以Json数据格式返回;若正确,则将查询结果数据以Json数据格式返回,在前台浏览器JSP网页中以表格形式显示出来,实现Select语句实验的虚拟执行。
3.2 SQL更新实验的模拟实现
SQL虚拟实验系统可以完成数据库的更新实验,包括SQL语句的Insert、Update、Delete等语句实验。只不过更新实验有可能会修改和删除实验数据库的表、数据、视图,而实验数据库对所有学生都是共享的,执行数据库更新实验后,其他学生有可能就不能正常做实验了,所以在进行SQL更新的Delete、Alter、Drop语句实验时,需要做学生身份验证,只有授信用户才能执行此类实验。在学生提交SQL更新语句实验后,系统通过应用服务器处理和执行更新语句,根据数据库返回的执行结果,输出更新正确或出错的结果信息。若正确,则统一将“更新成功”的信息以Json数据格式返回;若有错,则将DBMS返回的语法错误信息以Json数据格式返回。最后在前台浏览器JSP网页中显示出来,实现SQL更新语句实验的虚拟执行。
3.3 SQL实验的历史回溯
学生在进行SQL查询实验时,一般要经历若干次尝试,才能正确完成实验。为使学生能查看他自己实验题的做题过程,SQL虚拟实验系统可将学生每次SQL实验题所写的SQL语句和查询结果保存在数据库中,实验后可以查阅当前实验题过程中出现的错误及修正方法。通过学生阅读SQL实验题从运行出错开始,不断纠错,最终得到正确的执行结果的多次切实体验,使学生掌握数据库SQL语句的语法、书写规则及执行过程,从而达到数据库SQL实验的教学目的。学生SQL实验题的Select语句和更新语句的实验历程如图4所示。
基于Web的SQL查询虚拟实验系统还不能完全模拟数据库管理系统的所有SQL语句。实验时共享实验数据库,在数据库并发状态下,进行查询、插入、修改、删除时会互相影响,这可以加深学生对数据库并发的认识,但另一方面,可能会降低系统性能。为防止实验数据库表的结构和数据被修改或删除,造成其他学生实验不能继续进行,系统对部分SQL语句功能做了限制,只有授信用户方可进行此类实验。
4 结束语
SQL查询实验是数据库实验的重要内容。为使学生课内课外都可自主学习,解决数据库实验受时间、空间的限制,本文采用Java Servlet+JSP+Css+Jquery+SQL2008相结合,创建了轻量级的基于Web的数据库SQL语句虚拟实验应用,模拟了SQL语句的解释和执行过程。系统可以完成数据库SQL语句实验中增、删、改、查及运行结果的实时显示,达到了在因特网上自主学习,随时进行网上数据库SQL虚拟实验的教学目的。系统采用简化版的MVC模式系统结构,功能界面清晰,扩展容易,更新了数据库实验教学的实验方法,对进一步提高数据库课程教学水平有一定的参考意义。
参考文献:
[1] 薛琴.基于Packet Tracer的计算机网络仿真实验教学[J]. 实验室研究与探索,2010, 29(2):57-59.
[2] 杨建良.电类基础课程实验教学“虚实结合”模式的构建[J].实验室研究与探索,2014,33(7):101-104,280.
[3] 张绍荣.论虚拟实验平台构建的必要性[J].教育教学论坛,2015(31):259-260.
[4] 汤艳,秦小兵,覃凯,刘继斌,郑金平.浅谈虚拟实验技术与医学实验教学[J].中国高等医学教育,2016(4):66-67.
[5]金伟祖,姚熠赐,陈显涛.在线虚拟实验及教学一体化平台构建思想及实践[J].实验室科学,2015,18(3):125-129.
[6] 田婧,罗通,罗华锋,邹太和. 新建本科院校虚拟仿真实验室的建设及教学[J]. 实验科学与技术, 2015, 13(6): 219-222.
[7] 李宇佳,杨雪.非理性用户模型在虚拟实验中的构建与应用[J].现代远程教育研究,2014(2):107-112.
[8] 蒋嘉烨,栗源,可燕.中醫药院校分子生物学虚拟实验建设及应用[J].实验技术与管理,2016,33(12):174-176.
[9] 邱燕春.虚拟实验在运动人体科学开放性实验教学中的应用[J].实验室研究与探索,2015,34(7):114-116.
[10] 马丽,姚彤炜,余露山,吴永江,汪建元.远程药物分析虚拟实验教学探索[J].实验技术与管理,2013,30(9):149-152.
[11] 吕清娇.基于Web技术的Oracle数据库实验平台的研究与实现[D].湖南:中南大学,2011:1-61.
[12] 杨瑛瑛.数据库虚拟实验室的研究与实现[D].湖南:中南大学,2013:1-58.
[13] Y. Hou and F. Wang, "Web-based virtual laboratory for mechanical engineering," 2010 5th International Conference on Computer Science & Education, Hefei, 2010, pp. 1601-1604.