丁海燕
(云南大学 信息学院,云南 昆明 650091)
高校文科VFP程序设计教学改革的探索
丁海燕
(云南大学 信息学院,云南 昆明 650091)
Visual FoxPro(VFP)是微软公司开发的一个面向对象的、可视化的关系数据库管理系统,是很多高校文科学生学习数据库应用与面向对象程序设计的必修课程。VFP课程理论与实践联系紧密,如何使学生达到能开发数据库管理信息系统的教学目标是计算机教师面对的课题。该文分析了课程的主要内容及教学难点,对VFP程序设计实践教学内容的设计、案例教学法的应用以及结构化查询语言SQL的可视化教学方面做了有益的探索。实践证明,该探索取得了良好的教学效果。
Visual FoxPro;结构化查询语言SQL;案例教学;实践教学
Visual FoxPro简称VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。目前最新版为 Visual FoxPro 9.0,而在学校教学和教育部门考证中还依然沿用经典版的 Visual FoxPro 6.0。Visual FoxPro在桌面型数据库应用中,处理速度极快,是日常工作中的得力助手。与传统的数据库系统相比,其具有功能强大、技术先进、方法多样等技术特点[1]。
课程基于关系型数据库VFP,主要讲授关系数据库的概念和基本原理、VFP的命令、数据库的创建与操作、二维表的创建与操作、视图、查询、触发器、SQL语句、结构化程序3种基本结构以及函数等内容,还涉及面向对象的表单、报表和菜单;它既包括了关系型数据库的基本知识和技术,又具有面向对象的程序设计语言的技术方法,例如使用了控件、容器以及对象等编程思想[2]。
在VFP课程中主要涉及两大分支:1)VFP关系数据库的概念、原理、操作及命令;2)程序设计,又分为结构化程序设计与面向对象程序设计两种。从教学经验来看,整个课程的教学难点在于SQL命令和程序设计两个部分。学生普遍反映课程概念多、逻辑性强、学习难度较大;教师也深感在有限的课时内,采用传统的“多媒体+上机实习”的方法教学,很难将基础知识讲透,学生灵活运用知识的能力较为薄弱[3]。
由于文科生的计算机基础相对较弱,逻辑抽象能力和程序设计能力薄弱,因此给文科生讲授VFP课程时,要注重教学内容的结构性和教学主线,在教学方法上应采用案例教学法,从学生熟悉的真实案例入手,如世界杯数据库、学生成绩管理数据库等,以此激发学生的学习兴趣[4]。另外,SQL命令是数据库的教学重点与难点之一,文科学生较难掌握,本教学改革探索了以可视化方式,将SQL命令涉及的多表自然连接运算、投影运算、选择运算、分组统计以及排序等功能分解成若干个步骤,展示其运行效果,将直观的查询结果与SQL代码分析有机结合,深入浅出进行讲解,以达到灵活运用SELECT语句的教学目标。
本文主要探讨以下3个问题:1)如何梳理VFP的教学主线,形成结构性的教学内容,因为只有具有结构性的知识学生才好掌握;2)如何进行案例教学的设计;3)如何讲好SQL语句,使学生掌握VFP数据库编程的精髓。
VFP程序设计课程的内容主要包括数据库技术、面向过程的程序设计和面向对象的程序设计3大模块。数据库技术介绍VFP数据库、表、视图、查询的创建和编辑等操作,使学生初步掌握数据处理的能力[5]。面向过程的程序设计介绍顺序、选择和循环3种结构化程序设计,培养学生程序设计的基本思想和方法。面向对象的程序设计介绍类和对象以及对象的3要素(事件、属性和方法)等内容,通过表单、菜单、报表等内容,掌握面向对象编程事件驱动的编程思想,培养学生程序设计的技能和水平。
以往的教学通常是以数据库技术为核心,侧重于学生的数据处理能力,而忽视了程序设计能力的培养。但是,学习VFP最终的目标应该是能够开发一个小型的信息管理系统,以解决工作中的实际问题,而不是仅仅用来存放、查询和显示数据的。事实上,VFP数据库的可视化操作,如数据库、表、查询和视图等的创建学生并不难掌握,困难的是程序设计与SQL命令的编写,因此,在教学过程中应当以面向过程的程序设计为基础,以数据库技术为主线,以面向对象的程序设计为目标来组织教学,着重培养学生的抽象逻辑思维和程序设计能力[6]。
按照这样的教学指导思想,需要从理论出发,设计一个综合案例贯穿教学始终,且该案例应基本上包含了教学大纲中的所有知识点。例如,在本课程中设计了一个生动的世界杯足球赛的数据库应用系统,并从3个方面展开教学。
1.1 数据库的设计
数据库设计过程包括需求分析、概念设计、逻辑设计和物理设计阶段。首先进行需求分析,根据世界杯足球赛需要保存哪些实体的信息,及其实体间的联系,设计出“世界杯”数据库的概念模型,并用实体-关系模型(即E-R图)表示。世界杯数据库从功能上看,主要完成世界杯足球赛、参赛队、最佳球员及最佳射手信息的统计及管理。有基本信息、参赛队、最佳球员和最佳射手4个实体,其中基本信息与参赛队是多对多联系。再将实体及联系转化为表结构,得到以下5个基本数据库表[4],其中加下划线的字段为关键字。
1)基本信息(届次,日期,举办国,队数,冠军,点球决胜,照片,举办背景);
2)参赛队(参赛队,地区,备注);
3)参赛成绩(届次,参赛队,成绩);
4)最佳球员(届次,姓名,国籍);
5)最佳射手(届次,姓名,国籍,进球数)。
1.2 数据库的操作
设计好表结构后,就可以利用VFP数据库管理软件创建数据库和表文件,并录入表数据。通过这一动手实践过程,学生不仅能理解记录、字段、索引、字段属性、数据类型以及数据完整性约束等概念,而且掌握了数据库的多种操作。包括:1)记录的浏览、输入、删除、追加、还原、查找与定位;2)项目管理器的使用;3)数据过滤与字段筛选等[7]。除了数据库的基本操作,还可以通过创建索引实现表间关系,创建字段及记录的有效性规则,设置触发器,实施数据的实体完整性、域完整性和参照完整性等。
1.3 数据的查询、管理与应用
利用VFP提供的“视图设计器”和“查询设计器”帮助用户实现数据查询和提取功能。例如:1)从多个表中设置条件选取数据[8],利用结构化查询语言SQL的强大功能,大大提高从数据库中选取数据的效率;2)结合VFP面向对象程序设计功能,利用“表单”实现方便用户操作的应用程序界面;3)利用“报表设计器”制作报表打印输出;4)利用“菜单设计器”为整个应用程序创建一个Windows风格的菜单,实现图形用户界面,将数据库的管理、应用功能有机地结合起来;5)通过项目连编生成一个可运行的应用程序。
每堂课不断地添砖加瓦,所涉及的新知识点和新命令也在这一教学过程中一并讲解,从而体现数据库技术、结构化程序和面向对象程序设计3个方面的融合。
柯瓦斯基(Kowalski)将案例教学法定义为一种建立在案例基础上的,除了可以用来传授基本概念和基本原理外,还可以通过讨论实际问题的解决方法来培养学生的分析和推理能力的研讨式的教学方法。
VFP程序设计理论与应用结合紧密,概念、命令和内容繁杂,特别适合采用案例驱动法。另外在每个知识点引入案例进行教学,将理论和案例融合在一起,能够分散概念和难点,激发学生的学习兴趣,提高学生解决实际问题的能力[2]。
教学案例的设计是案例教学成功的关键,应当选择与教学内容和教学目的密切相关的典型案例,寓所教理论于案例之中[10]。例如,在世界杯足球信息管理系统中,根据系统开发过程将其划分为以下8个单元:1)数据库系统需求分析,主要完成对世界杯信息的调查和分析;2)数据库设计,主要是用E-R图设计表结构,共有基本信息、参赛队、参赛成绩、最佳球员和最佳射手5张表;3)数据库的实施与维护,主要用VFP创建数据库、数据库表、查询和视图文件;4)数据库简单交互,主要通过结构化编程对数据库进行简单的交互,例如输入与输出,简单的查询等;5)数据库的存取,主要通过编写SQL命令实现复杂的数据库访问功能;6)数据库可视化操作,主要包括表单和常用控件的使用及简单编程;7)数据显示与输出,主要是使用报表及菜单完成数据的输出显示;8)系统测试,主要是软件的测试与维护。
教学过程中围绕以上单元讲解知识点和命令,既涵盖数据库原理,又实现了整个项目开发的全过程[11]。
VFP提供了基本的数据显示(LIST、DISPLAY、BROWSE)、编辑(EDIT)和查找(LOCATE、CONTINUE)命令,可以对表中的数据按指定的范围或指定的条件进行显示、编辑或查找。另外,VFP 还提供了SQL 结构化查询语言,它主要有以下 4条语句:1)SELECT(记录查询语句);2)INSERT(记录插入语句);3)UPDATE(记录更新语句);4)DELETE(记录删除语句)。其中SELECT 语句功能最强、使用最广,是SQL结构化查询语言的核心语句。查询的内容有单表/多表联接查询、嵌套查询、通配符查询、分组统计查询和排序查询等多种形式[12]。
SQL命令是数据库技术的核心和关键,它使用灵活,是教学的难点和重点。在教学中可以借助可视化的手段来讲解SQL命令执行后的效果,帮助学生理解关系的自然连接、投影和筛选等运算。
以世界杯足球信息管理系统为例,3张世界杯数据库表的结构为:1)基本信息(届次、日期、举办国、队数、冠军、点球决胜、举办背景、照片);2)参赛队(参赛队、地区);3)参赛成绩(届次、参赛队、成绩)。其中“基本信息”与“参赛队”是多对多关系[3]。
3.1 提出教学任务
查找“世界杯”数据库中各大洲参加历次世界杯的队数各有多少?首先分析查询任务,查询是哪个洲涉及参赛队表,查询参加某次世界杯的队数涉及到参赛成绩表,这是一个多表连接查询。要知道各大洲参加历次世界杯的队数不仅要对“地区”字段分组,还要对“届次”分组,在两次分组的基础之上再统计同一分组记录的条数即为各大洲参加历次世界杯的队数,最后按届次进行排序输出。SQL代码如下[4]:
SELECT参赛队.地区,参赛成绩.届次,COUNT(参赛成绩.届次)AS 队数;
FROM参赛队,参赛成绩 ;
WHERE参赛队.参赛队=参赛成绩.参赛队;
GROUP BY参赛队.地区,参赛成绩.届次;
ORDER BY参赛成绩.届次
3.2 可视化分步展示效果
以上代码对学生来说还是比较抽象,可以通过可视化的形式把每一步的效果展示出来。
1)查看连接运算,如图1所示,输出全部字段,连接字段为参赛队,可见两表连接运算的结果是将两个表的所有字段拼合在一起,构成5个字段,参赛队字段重复出现,并且表中记录均满足连接条件:参赛队.参赛队=参赛成绩.参赛队。
2)先按届次,再按地区分组,并去掉“成绩”和一个“参赛队”重复字段。由图2可知,当存在分组时,查询只显示同一分组的第一条记录。这个知识点是通过实例分析总结得出的,是内化的知识而不是死记硬背的知识。
图1 连接运算
图2 分组查询
3)在同一届次同一大洲的参赛队中,只要用计数函数COUNT(参赛成绩.届次)统计同一分组的记录条数,便可得到最终查询结果,如图3所示。
图3 分组统计查询
VFP作为一种简单易学、功能强大的数据库管理系统软件平台,是许多非计算机专业人员学习软件设计时的首选。在教学中要把握以结构化程序设计为基础,数据库技术为主线,面向对象程序设计为目标的教学方针,并运用多媒体与可视化、案例法和任务驱动等多种教学方法,才能取得好的教学效果。
[1]卢雪松.《VFP语言及程序设计》课程建设[J].计算机时代,2007(8):38-40.
[2]陈荣春,薛立新.《VFP程序设计》课程案例教学的设计及实施[J].职业技术教育,2007(23):79-80.
[3]赵辉.VFP中SQL语句的灵活应用[J].福建电脑,2010,26(7):174-176.
[4]梁洁.Visual FoxPro程序设计基础[M].北京:高等教育出版社,2010.
[5]黄博军.VFP中应用SQL实现快速数据处理[J].襄阳职业技术学院学报,2005,4(1):91-92.
[6]施佺,陈建平.“VFP程序设计”课程教学的实践与探索[J].电气电子教学学报,2005,27(3):33-36.
[7]王桂红,刘向锋,张爱国.非计算机专业VFP程序设计语言教学实践与探索[J].农业网络信息,2005(7):45-47.
[8]滕春燕.高职院校VFP课程教学手段的探讨[J].太原大学学报,2005,6(4):65-67.
[9]刘兰芳,刘士才,武波,等.“VFP程序设计”课程教学改革与实践[J].高等理科教育,2005(5):84-86.
[10]谢艳春.非计算机专业VFP程序设计教学的思考与探讨[J].外语与翻译,2009(3):134-135.
[11]张明旺.案例教学法在VFP课程教学中的应用[J].科技信息,2012(19):188-189.
[12]康萍,刘小冬.Visual FoxPro数据库应用[M].北京:清华大学出版社.2007.
VFPProgrammingTeachingInnovationintheLiberalArtsofUniversitiesandColleges
DING Haiyan
(School of Information Science and Engineering,Yunnan University,Kunming 650091,China)
Visual FoxPro(VFP)is an object-oriented and visual relational database management system,which developed by Microsoft corporation.It's a required course for many liberal arts students to study database application and object oriented programming in many colleges.Theory and application relate closely in VFP.How to make the students achieve the teaching goal of developing database management information system is the subject that the computer teacher is facing.The main contents of the course and the teaching difficulties are analyzed.This paper does useful researches and trials in terms of teaching content design of VFP,application of case-teaching method and visual teaching of structured query language(SQL).Practice has proved that good teaching effect has been achieved.
Visual Foxpro;structured query language;case-teaching;practice teaching
2016-03-29;修改日期:2017-05-19
“教育部高等教育司—微软公司”2014校企合作专业综合改革项目(2014MOEMSCT0111); 2013年度云南省质量工程教学改革研究项目(X3113008); “云南大学第五批中青年骨干教师培养计划”专项经费资助项目(XT412003)。
丁海燕(1974- ),女,硕士,副教授,主要从事计算机应用方面的研究工作。
TP391;G642.4
A
10.3969/j.issn.1672-4550.2017.04.035