1. 引言
“数据库原理及应用”课程是计算机类和相关信息类及管理类本科专业的一门必修课程,对于学生掌握数据库理论及数据库应用系统的设计技术与方法,把握信息系统等应用软件系统设计的共性问题,从事信息系统软件的开发具有重要作用。
数据库课程具有鲜明的面向应用特征,以及对实践与设计能力的较高要求,通过实验教学不仅能加强学生对数据库基本原理知识的理解,还有助于提高学生的综合运用及设计能力 [1] - [3] 。在现有教学过程中,实验教学通常受限于理论课程讲授的知识,重理论而轻实践,不利于开展跨课程的综合设计性实验,导致学生学完数据库原理课之后无法独立完成后期的实践环节。
2. 数据库实践教学现状
2.1. 重理论轻实践
在对多所学校的调研发现,数据库实验的重点仅仅放在对知识点的验证上,而不是如何运用知识点,没有与工程实践中的信息系统软件开发结合起来,课程的实践性体现不强,不利于毕业设计等后续实践教学环节的开展。
2.2. 学生参与度低
由于实验内容固定、教学实验学时较少、考核方式单一等 [3] [4] ,这些都构成了影响学生参与实验程度的重要因素。比如:多数学校使用的数据库实验范例都是“教学管理系统”,而且在学生开展实验时,往往都是按照教材上给出的数据库结构、数据表、视图等进行简单的重复性验证试验。这样的实验模式即使学生完全正确地完成了实验,也只是实现了一次完美的模仿、验证,并没有学到如何依据实际情况来进行数据库表的抽象,数据库视图的建立等。另外,实验考核也只是作为一小部分计入最终的考试成绩,对整个课程的成绩影响非常小。这也导致了学生对实验课程的重视度不高。
3. 工程牵引实验的教学模式
实验教学的方式多种多样,但是针对不同的课程,需要有所侧重。例如:对于大学物理实验,应该以演示、验证为主,目的是通过实验环节让学生加深对重要理论、定理、原理的理解和掌握;对于模拟电路、数字电路等工程实践类课程,则应该引入适当的工程背景,让学生有目的的搭建一些常用的基本电路,使学生在锻炼实践基本技能的同时也了解了所学知识在工程实践中的作用和意义;对于数据库原理及应用课程,除了较为系统的设计理论教学外,应通过课程综合实验实践和课程综合设计,解决好会设计数据库应用系统的问题,这样才是学以致用的真实体现。
所谓工程牵引实验的教学模式,就是针对每一个实践内容,都进行精心思考和细致筹划,力求通过实践课程教学,不仅让学生学会科学知识,提高基本实践动手能力,还要让学生参与部分实验过程的设计和进行实验拓展讨论,打破只有老师讲解或准备实验环境的“一言堂”模式,使学生知道如何在工程实践中施展自己的才能。
4. 实验教学实例
下面仅以数据库原理及应用课程中,设计某门课程的考试成绩单为例,说明工程牵引实验的教学模式运用的一个案例。
4.1. 实验预习阶段
课前发给学生每人一张课程考试成绩单表格,如图1所示。要求学生在课前根据图1所给出的表格回答问题并设计表格。“问题:图1所示的表格是一个数据表还是视图?如果不是表,请设计出合理的数据库表”。
4.2. 课堂实践
在以往的课堂实验中,学生都能够按照实验指导书的要求,顺利完成数据表的创建,并且利用SQL语句插入实验数据,得到预期的实验结果。但是,通过对学生的提问发现,学生只知道根据指导书给出的实验步骤及过程来进行实验操作,很少有人考虑为什么要这样做?理论依据是什么?做完了当前这一步,下一步应该怎么办?最终的实验结果会是什么样子?然而,这些问题中恰恰就包含了工程实践中所需要具备的基本技能及解决问题的过程和方法。
改进后的实验教学方法能否让学生真正掌握数据库表的创建方法呢?带着这个问题,我们进行了两个教学班次的尝试。
几乎所有同学都能识别出图1所示为一个视图,并且大多数同学根据自己所创建的数据表也顺利地得到了视图1的结果。课堂上机实验操作环节没有出现任何问题,所输入的测试数据也都能给出正确的测试结果。问题到这里似乎要结束了,其实不然。我们还给学生留下一道思考题:证明自己所创建数据表关系均为BCNF。
4.3. 实验总结
实验报告反馈的结果却是绝大多数同学所创建的数据表不是BCNF。而课堂上机实验的操作结果正确是因为实验测试数据较少,并且没有包含较为复杂的数据。下面给出一种较为典型的错误数据表关系结构。
学生信息表(学号,姓名,班级,专业名称)
教研室表(教研室代号,教研室名称,教师姓名)
成绩表(学号,课程名称,教师姓名,考试时间,成绩)
当存在同名同姓的两位老师正好在同一个教研室时,用上面的这组关系就不能对这两位老师进行正确的区分。
正确的数据表关系结构如下。
学生信息表(学号,姓名,班级,专业代号)
专业表(专业代号,专业名称)
课程表(课程代号,课程名称,专业代号,教师代号)
学习信息表(专业代号,课程代号)
教师信息表(教师编号,教师姓名,教研室代号)
教研室表(教研室代号,教研室名称)、成绩表(学号,课程代号,考试时间,成绩)
本次实验内容看似简单,通过本文的实验组织方式却很好的检验了学生对数据库基础理论知识的掌握和灵活运用情况。经过对学生后期参与综合实践课程的调查发现,采用本文实验教学培养的学生均能够独立、高质量的完成信息分解、数据库及关系表的构建,为综合实践课程的顺利完成奠定了良好的技术基础。
4.4. 拓展讨论
由于问题是出现在绝大多数同学中,具有普遍性,所以有必要进行深入挖掘和分析。讨论过程中发现,出现错误的根源在于创建表关系时,没有按照范式简化的步骤进行,而是根据自己平时所填表格和推测创建的。众所周知,在日常工作中所填写的表格其实多为综合视图,而并非真正的底层关系结构,所有的底层关系结构均需满足BCNF要求。学生还处于学习的初期阶段,没有实践经验,很难直接创建出符合BCNF要求的关系结构。必须应用所学理论知识进行计算和化简,将综合视图经过范式分解,最终得到BCNF关系集,才能创建出科学、合理的关系结构。
5. 结束语
“数据库原理及应用”是一门兼有理论和实践的综合性课程,只有加强实践教学的训练,理论知识才能得到有效巩固。实践表明,工程牵引式实验教学方法既提高了学生的学习兴趣,又培养了学生使用数据库原理和方法解决实际问题的能力,同时也加强了学生自主学习和实际动手能力。