孙 未 朱红梅 孙永香 李蔚妍 王雅琴 李 滨
1.山东农业大学信息科学与工程学院 山东泰安 271018
2.山东农业大学生命科学学院 山东泰安 271018
数据库原理课程是高等院校计算机科学与技术相关专业的专业必修课,主要讨论数据库系统的基础理论、基本技术和基本方法。主要内容包括:数据库系统的基本概念、常用的数据模型、关系数据库及结构化查询语言SQL等[1]。与其他的课程相比,本课程具有实践性强、综合性高、概念较多、理论性较强、应用范围广等特点。我校一般在第三或第四学期开设,此时,学生已具备了一定的专业知识储备,为本课程的学习打下了基础。
本课程理论知识点较多,实践课又要求学生动手能力较强,为了更好地满足课程教学的需要,笔者在多年从事计算机相关专业数据库原理课程教学的基础上,对本课程的理论和实践教学进行总结和探讨,最终达到以下目的:通过对数据库系统的基本原理、概念、方法和相关技术的讲授,让学生达到理解并灵活应用的程度。在掌握相关基本概念的基础上,能熟练使用SQL在某一个具体的DBMS上进行数据库系统开发;掌握数据库设计的常用方法和步骤,能利用这些方法进行数据库各级模式的设计并能进一步进行数据库应用系统的开发[1]。在学生学习活动方式上实现自主性、参与性和合作性,在教学过程中逐步培养学生的创新意识和创新能力。
在数据库原理课程的教学过程中,普遍存在以下几个问题。
数据库原理课程涉及的概念很多,非常繁杂,其中有很多概念十分抽象,有些需要其他课程的知识铺垫,对专业知识相对学习较少的低年级学生来讲难以理解。例如,数据库的三级模式结构和二级映像,可以保证数据库的物理独立性和逻辑独立性。学生就不太容易理解什么是数据独立性,数据独立性为什么包含物理独立性和逻辑独立性,什么是物理独立性、逻辑独立性、三级模式结构,为什么要划分为三级模式结构,怎么通过三级模式和二级映像来保证数据库的独立性。对于一个具体的数据库系统,哪些是外模式,哪些是模式,哪些是内模式,学生感觉很模糊、难以理解。
针对这个问题,笔者采用的办法是给定具体的系统或者实例,一一对应。
要理解这个知识点,先要告诉学生数据独立性涉及两个方面:逻辑独立性和物理独立性,而要理解这两个方面,必须要先理解数据结构课程中讲解的逻辑结构和物理结构,有的专业还没有学习数据结构课程或者正在同步进行,这就要求教师必须先把数据结构课程里的这两种结构解释清楚,学生才能理解,而让学生理解的最好的办法就是通过实例来讲解,学生很难通过单纯的概念讲解理解这些抽象又枯燥的概念。例如,讲解数据的逻辑结构概念时,教师以最简单的线性结构为例,在黑板上画出结构图,不要直接告诉学生这个逻辑结构应该怎么存储在计算机里,而是引导着学生思考这种逻辑结构在计算机里可以用什么存储结构来实现。采用启发式教学的方式,让学生回答可以选用的物理结构,既提高了学生对知识学习的兴趣,又给了学生思考的时间,加深了学生对知识点的理解和创新思维的培养,这样才能达到预期的教学目标[2]。
在学习E-R图这部分知识时,学生的作业中经常出现实体、属性、联系的图形画错,都用矩形或者都用椭圆形表示;只给定了实体,没有画出实体之间的联系或者联系的表示方式不对,不是用无向边与实体相连而是用双向箭头表示;或者确定不出哪些应该作为实体,哪些应该作为属性;或者分不清应该是在两个实体之间还是三个实体之间画联系;或者在画出联系时,忘记注明或填错联系的类型等。
对于这个问题,除了要求学生课下多做练习外,还需要集中讲解其共性的问题。例如,在确定学校E-R图时,学生常犯的错误是,把副教授和教授都单独做一个实体,其实,副教授和教授都是教师,不应该设置两个实体,设置一个教师实体即可,然后在确定属性时加上一个职称属性就可区分是教授或是副教授。让学生自己指出,如果按照他们对实体的设置以及不指定或指定错联系的类型,会出现什么样的问题,这样学生的印象就加深了。
需要上机操作的内容从第三章SQL语句开始,很多学生刚开始上机时,语句书写错误频出,除了常见的拼写、语法错误外,有些学生把课本上的语句照搬照抄,根本不知道SQL语句实现的功能,出现错误后看不懂错误提示,不知道运行结果是否正确。例如,参照完整性的实现,建表时不知道外码跟主码的类型以及字段大小要一致,输入常量数据时需要区分大小写;commit语句究竟是什么用途等,这些问题虽然在理论课上已经讲解,有些学生在上机时还是不能学以致用。
这个问题就要求教师在理论课上针对具体的实例,进入数据库管理系统,用多媒体给学生演示一下具体的操作步骤,以及往届学生常犯的错误。SQL语句是本科生学习的基础和重点,所以一定要强化这部分的实验环节。我校的实验平台选用的是甲骨文公司的Oracle。教材中是以SQL标准讲解,上机时学生也可以灵活地选用实验环境,对某些语句做相应的更改再进行实验操作,对于比较简单的基础性的问题,适当引导学生利用百度等搜索引擎解决问题,逐步培养学生的自学能力和创新意识。对于较难理解的问题,给学生提供相关参考资料,学生可以在遇到问题时自己查看参考资料,或者通过百度搜索来解决问题,这样对学生而言也是一种锻炼。书中有关于这一章的实验内容的大量举例,除此之外,课后也有习题,要求学生把第二章的课后习题也用语句来实现,并给学生布置一些额外的习题,培养学生独立解决问题的能力[3]。
实践证明,以上方法是切实可行和行之有效的。
数据库原理课程具有较强的理论性,同时也对学生的实践提出了较高的要求。本课程的学时计划设定为48学时,全部是理论学时,选用了经典教材《数据库系统概论(第5版)》。要在有限的教学时间内既掌握相关理论知识,又能有效地完成数据库中小型应用系统的设计,学生普遍感觉时间紧、任务重。为了有效提高教学活动的效率,可从教学方法与手段方面下功夫。
数据库原理课程理论知识繁杂,在学习的过程中,如果不注重讲授方法,学生很容易失去学习兴趣。为此,必须综合运用多种教学方法进行教学。应将教学的主体从教师转移到以学生为中心,多采用实例、演示、问题驱动等相结合的教学方法,增加学生的实践动手机会、自学机会和创新机会,充分调动学生的学习主动性和积极性,激发学生探究创新的兴趣,鼓励学生独立探索和研究,促进知识的加深和迁徙。
广泛采用实例教学法及交互式教学法。在介绍关系代数知识点时,要用到集合运算和专门的关系运算。教材上给定的举例都是抽象的字母,得到的结果不太容易让学生真正理解运算的实际意义。为此,可以采用实例及交互式教学法,用容易理解的实例进行讲解。例如,在介绍笛卡尔积运算时,通过让学生集合和课程集合做笛卡尔积运算,也就是让每名学生选所有课程,得到的选课结果就是它们的笛卡尔积的结果,让学生回答运算结果并查找问题,这样学生很快就理解了该运算的意义和特点,并且印象深刻,很难遗忘。这就是实例教学法[4]。
目前,高校的计算机相关课程教学普遍采用多媒体结合板书的授课方式[5]。这种教学手段的优势在于可以提高课堂教学的效率,对于一些较难掌握的课程内容,可以通过实际系统的讲解和演示,让学生更直观更形象地学习和理解,将达到事半功倍的教学效果。需要推导演算的内容则借助板书减慢授课速度,更有利于学生跟上教师讲课的节奏。
在教学过程中使用雨课堂等教学App,让现代教育技术利用微信轻松融入课堂,传统的教学活动变得时尚灵动起来,学生手机答题、发弹幕、投稿,师生沟通及时反馈,让课堂互动永不下线,让手机摇身一变成为课堂教学中积极参与学习的有效手段,有利于教师轻松掌握学生的听课状态。
数据库原理具有理论和实验并重、应用范围广、概念抽象繁杂、难度相对较大的特点,但提高本课程的教学质量是一件很困难的事情,这就要求教师必须想尽一切办法,认真分析思考学生在学习过程中遇到的心理、专业知识等各方面的问题,只有这样,才能进一步加强数据库原理课程建设,提高教学质量。本研究针对本课程的特点,就目前在教学中存在的问题进行了深入的分析并提出了相应的解决办法,对教学方法和教学手段等方面进行了讨论,以进一步提高本课程的教学质量,适应新时期对创新型人才培养的迫切要求。