时间:2022-09-05 07:32:42
引言:寻求写作上的突破?我们特意为您精选了12篇数据库原理范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
3、设计篇讨论数据库设计的基本步骤和设计方法,并介绍实体-联系模型、扩展的实体-联系模型和关系数据库的函数依赖理论。
4、实现篇介绍数据库的物理存储结构、数据字典、关系代数操作算法、查询优化技术和事务处理技术。
1研究背景
数据库原理及应用课程一般包含数据库原理与数据库应用开发两个部分的内容。原理部分以数据库设计方法为目标,重点讲述数据库的基本概念、基本原理以及基本技术;应用部分以现实需求为基础,应用数据库设计方法,在数据库管理系统支持下,采用程序设计语言实现应用系统的详细过程。数据库课程的教学目标就是要求学生掌握数据库设计方法,同时掌握数据库应用系统的开发过程。但传统的教学内容主要以原理为核心,较少涉及数据库系统的应用,教学过程较为抽象,缺乏直观性,学生在学习过程中很难深入理解这些原理。因此,必须大力加强数据库应用实践教学,使“原理”与“应用”并重,用“应用”带动和强化“原理”内容,用“原理”指导“应用”的教学效果。
结合我院数据库原理及应用国家精品课程建设,我们已经建立了“数据库原理及应用”的教材体系[1],并建设了相应的实验体系、考试体系以及网络课程等。在实际的教学过程中,为适应新的教学需求,改变重原理轻实践的状况,我们不断对实验体系进行改进,并应用于实践教学中,不断改革数据库实践教学,取得了良好效果。
2课程特点
数据库原理及应用是一门兼有理论和实践的综合性课程。它不仅要求学生掌握课堂理论知识,更重要的是,通过大量的实践教学,使学生能够结合一种数据库管理系统,利用程序设计语言,设计出一个小型的数据库应用系统。基于这样的要求,该课程就不仅仅是单一的课堂理论教学,而应该是一个完整的集理论教学和实践于一体的教学体系。图1列举了课程的内容体系。
数据库原理及应用课程的内容体系分为3个部分,分别为数据库原理、数据库管理系统DBMS以及面向对象的程序设计语言。因此,数据库课程教学必须与这3部分内容相适应,将基础知识讲授、上机操作等方式作为课程内容的支撑系统。使学生掌握数据库设计的理论方法,在某种数据库管理系统的支持下,用面向对象的程序语言完成数据库应用系统的设计。
可见,在数据库课程的教学过程中,理论课与实践课必须齐头并进。理论必须通过实践来贯彻,而实践课又要建立在理论课的基础之上,过去那种重理论轻实践的思想已经不能适应新的人才培养目标。在数据库原理的理论课讲授中,我们采用了多层次、多环节的案例驱动导学模式,促使学生结合案例理解数据库设计的思想。并通过搭建内容合理、与课程内容相配套的实验体系加强学生的实践能力与自主学习能力。
3实践教学改革
在多年的教学过程中,我们不断改进教学方法,对实践的要求不断加强。结合国家精品课程的建设任务,我们对数据库课程的实践教学也进行了相应改革。从过去的附属式实验课到与课程内容相配合的跟随式实验,再到结构化实验,我们在实践教学的要求、方法及手段上都进行了大力改进。
3.1附属式实践教学
附属式实践教学就是将实践课作为理论课的附属,在理论课结束后,集中安排一部分课时上机,进行数据库的实践[2]。对于本科60学时的数据库原理及应用课程,通常安排课内上机10学时,课外上机10学时。上机课一般选用Access或Visual Foxpro这两种数据库管理系统,因为其简单易用,上手快,不需要花费太多时间去摸索复杂的软件系统。上机时,学生以小组为单位,每个学生独立上机,并进行小组内讨论,以每个小组选定的一个信息管理系统的课题为内容,在数据库管理系统的环境下,进行数据库设计、表设计、SQL查询设计以及应用程序的表单报表等设计。通常将20学时的上机课统一安排,2个学时一次课,一次课完成一个目标,最后每个小组分别完成一个数据库信息管理系统应用项目的开发,并提交一份实验报告,描述整个系统设计实现的过程。
附属式实践教学有利于学生集中精力,在短时间内结合理论知识,进行数据库系统的开发设计。但由于其不能主动结合理论知识,在实践过程中,容易造成理论与实践的脱节。学生上实验课时,对数据库管理系统较为陌生,对实验课的总体要求感觉难度较大,也没有编程语言的前序学习基础。因此,除少数自学能力较强的学生能够按时按要求完成实验课程,并通过实验课进一步掌握了理论知识,达到理论与实践相统一的效果外,大多数学生没有深刻理解和掌握数据库原理及应用课程的教学要求。
3.2跟随式实践教学
跟随式实验指实验课紧紧跟随着理论课的进度而开设,选用的数据库管理系统为SQL Server 2005。在数据库原理课程的教学中,用一个学生容易熟悉的大案例――教学管理系统开展,有顺序地介绍数据库的基本概念、关系代数、SQL语言、关系数据库模式设计方法、数据库应用系统设计以及数据库的保护技术等内容[3]。我们选用由李俊山教授等编写、清华大学出版社于2009年出版的教材《数据库原理及应用(SQL Server)》[1]及配套教材《数据库原理及应用(SQL Server 2005)教学指导与习题解答》。通过深入理解数据库课程的特点,制定了数据库实践课程的内容,分成5个实验,如表1所示。
表1中列举的实验内容跟随着理论课的进度开设。当学完相应的理论课内容后,就立刻安排一次实验课,以利于知识的保鲜和巩固。在学习完数据库的基本概念后,安排一次集中上机操作,内容是“认识SQL Server”,教师通过演示SQL Server的安装过程以及软件模块,并结合科研成果,展示一个在SQL Server下开发的数据库应用系统,让学生对数据库有一个感性认识,结合理论内容,初步了解数据库的概念含义。在学习了关系模型后,学生就可以进行“数据库的基础操作”的实验了。数据库的基础操作实验包括建立数据库、建表等内容,直观地让学生了解关系模型的二维表格形式表示的形态和建立方法。交互式SQL语言实验课是在学生学习了关系数据库语言SQL的理论知识后进行的,通过交互式方式,在SQL Server中完成表和视图的定义、数据的查询以及数据更新操作。完整性控制和恢复实验的目的是让学生对SQL Server中表的完整性和数据恢复有直观感受,能够独立地根据需要设置数据库完整性控制,并理解数据库恢复的重要性。最后,在理论课结束后,再进行一个数据库应用系统设计的大实验,相当于课程设计。
跟随式实验是对附属性实验的改革,它解决了附属性实验理论与实践容易脱节和遗漏的缺点,使学生对知识现学现用,容易理解,兴趣较高。在近几年的教学中,我们采用跟随式实验,学生的实践能力得到了明显提高。但跟随式实验没有考虑到学生运用程序设计语言开发数据库应用系统的困难,在数据库应用系统设计的大实验中,往往完成得较粗糙。
3.3结构化实践教学
结构化实践教学是将数据库原理及应用课程分成3个部分,分别为数据库原理40学时的理论课、面向对象程序设计20学时和数据库课程设计20学时,如表2所示。
其中,数据库原理为理论课,讲述数据库设计的基本理论。面向对象的程序设计课为实践课,通常安排在机房上课,一人一机。考虑到开发数据库的支持性与面向对象程序设计的通用性,选择PowerBuilder程序设计语言作为编程语言。课程设计课也是在机房上课,主要内容分为两部分,一为学习SQL Server或Oracle数据库管理系统,第二为课程设计。教师准备8~10个数据库课程设计课题,一般选择较为实用、贴近生活、学生容易理解的课题,比如学生成绩管理系统、图书管理系统、工资管理系统等。学生分成3~4人的小组,每组选择一个课题。学生从数据库设计规划、系统需求分析、概念结构设计、逻辑结构设计,再到物理结构设计,最后结合程序设计语言完成数据库应用行为设计。
结构化实验教学与数据库课程内容体系模式相一致,能够较好地解决在数据库理论知识与实践内容学习中的脱节问题,大大提高了学生采用数据库设计思想,结合程序设计语言进行数据库开发的能力。通常在学习了数据库原理及应用结构化教学内容后,绝大部分学生都能深刻理解数据库的设计过程,通过小组合作解决问题,提高自主学习能力,并能够独立完成一个小型数据库应用系统的开发。
4考核方法与教学效果分析
按照结构化实践教学的过程,我们对学生成绩考核方法也进行了相应改革。考核分为3个部分,分别为数据库原理的笔试考核、程序设计能力考核以及课程设计考核。在原理的笔试考核中,并不单纯以期末理论考试为评分依据,还融入了平时成绩以及课堂实践的考核。成绩标准为笔试成绩(50%)+单元测试成绩(40%)+平时表现成绩(10%)。程序设计课程用考查方法检验成绩,即上机考试,按照完成的既定程序设计科目给分。课程设计的成绩评定也分为3个部分,分别为程序演示(50%)+课程设计报告(30%)+答辩(20%),按小组评定成绩。通过多角度全方面考核,根据学生掌握知识和实际付出的努力情况进行成绩评定,有助于教师掌握学生对知识的理解和熟练应用程度,还可以正确反映学生实际学习情况。
通过结构化实践教学,该课的教学效果显著提高。在近3个学期的数据库课程教学中,数据库原理及应用三个阶段的课程成绩中,综合成绩在80分以上的人数比例占到了35%,较之过去的20%有了大幅度提高。成绩在70~80分之间的人数比例占到45%,较过去的30%也提高了很多。不及格率由过去的10%下降到了3%左右。学生在学习完数据库原理及应用结构化课程体系后,在毕业设计以及程序设计比赛中都体现出了较强的能力。
5结语
数据库原理及应用是一门理论性和实践性都较强的课程,只有加强实践教学的训练,理论知识才能得到有效巩固。在多年的教学过程中,我们不断对实践环节进行改革与探索,加强实践教学,通过专门开设课程设计这门课,让学生在完成一个有分量的课题作业的过程中,多练习、自己学,在做中学。实践表明,数据库原理及应用课程的实践教学改革,提高了学生的学习兴趣,培养了学生使用数据库原理和方法解决实际问题的能力,提高了学生的分析、归纳、设计和编程的能力,加强了学生自主学习和实际动手能力,提高了学生团队合作以及研究创新能力。
随着计算机科学的不断发展,数据库技术也在不断的发展中。随着教学内容的不断更新,我们除了在教材建设方面下功夫,教学方法也需要不断改革和创新。因此,我们将根据学生情况,及时总结教学经验,调整教学方法,设计实践教学环节,注意教学节奏,结构化分阶段地进行实践教学,使数据库原理及应用课程的整个实践教学更加合理、完善。
参考文献:
[1] 李俊山,罗蓉,赵方舟. 数据库原理及应用(SQL Server 2005)[M]. 北京:清华大学出版社,2009:123-147.
[2] 李雁翎.“数据库技术与应用”的课程改革与实践[J]. 计算机教育,2006(1):75-77.
[3] 薛云.“数据库原理与应用”课程实践教学的改革与探索[J]. 计算机教育, 2009(11):129-131.
Innovation of Practice Teaching on Database Principle and Application
YE Xia, LI Junshan, LI Hailong
数据库原理部分主要讲授数据库的基础理论知识,包括数据库系统概述、数据模型、关系代数、结构化查询语言SQL、关系系统及查询优化、关系数据理论、数据库设计、数据库恢复技术、并发控制、数据库安全性与完整性。这一部分强调的是理论和基础,当然也设计了一些实验,但主要是验证性的和较小的设计性的实验,其目的是使学生加深对所学知识和理论的理解和掌握。在本部分的教学过程中,除了要求学生作相应章节的习题之外,还要适当的给出一些应用实例,启发学生在课外去查阅相应资料,为下一环节的数据库应用做准备。
在数据库应用部分中,我们主要以典型的Oracle、SQL Server为数据库管理系统,介绍具体的数据库系统的设计与开发方法,并结合相应的开发工具,以几个具体的应用课题为目标要求学生选择性的进行实际应用项目的设计与开发,使学生在实际设计与开发过程中进一步深入理解和掌握数据库理论知识,熟悉数据库应用系统的设计和开发方法,同时培养学生发现问题、分析问题和解决问题的能力。
二、教学方法
现在各高校都配有多媒体教室,适当采用多媒体授课,一方面可以增大知识信息量,把原先难以在课堂上表达清楚的内容生动的演示出来,另一方面也提高了学生的观察能力和学习兴趣,提高了教学效率。本课程的特点决定了它可以采用,也有必要采用多媒体等现代化教学手段进行授课。
学生的外语能力是一个很重要的素质要求,对于计算机类专业学生尤为重要。目前,有大量的著作、期刊、论文都是英文原文,快速、准确的获得科技前沿信息是计算机专业学生立足于社会的根本。为了强化学生的外语能力,我们结合国际合作班教育进行了双语教学尝试,积累了一些具有实际应用价值的经验和教训。
三、实验和课程实习
教学是教师和学生不断交流的过程,实验是实现这个过程的桥梁,可以弥补课堂教学的不足,加深对基础理论的理解,启发学生自主思考,大胆创新,达到良好的理论联系实际的教学效果。除了观察性和验证性实验之外,我们还开设了设计性实验和综合性实验,目的是培养学生的抽象思维能力和科研能力。
除了对学生独立工作能力的培养之外,从提高综合能力出发,我们增加了综合性课程设计。通常,学生必须成立几个工作组,共同设计并实现具有一定规模的系统。这些系统要求学生在工作组中必须考虑现实社会问题所涉及的开销、安全、效率等。增设数据库课程设计对于提高学生的综合素质,培养学生的创新意识、创新能力和团队协作精神具有特殊的作用。
四、考试和考察
考试形式的多样化是我们注重学生多方面培养的一个重要方面。学生因为担心考试而整天抱着书本死记硬背,这不是我们的教学目的。当然,我们也不能摒弃考试这种检查学生掌握知识程度的重要方式,但这绝不是唯一的方式。因此,除了数据库原理部分采用常规考试以外,我们还增设了课程设计考察、答辩、提交论文等多种不同的方式。
常规考试主要检验学生对课堂知识的理解和掌握程度;课程设计考察主要验收学生所设计的系统,考察学生综合运用、巩固与扩展所学的基础理论和专业知识的程度;答辩主要考察学生的表达能力,要求学生能简明扼要、重点突出的阐述主要内容;提交论文是对课程设计成绩达到优秀的学生提出的更高要求,要求学生对所设计的问题能够深刻分析,有重大改进或独特见解,按照论文的规范化要求书写工整或用计算机打印成文。
五、科研
科研和教学相结合,理论联系实践,相互促进,取长补短,一举两得。我们努力注意最新技术的引入,同时结合学生所掌握的理论基础知识,从一些科研任务中选择有实用价值的题目在课程中进行了讨论与实验。当然,这部分实验对于需要解决的题目来说还很不够,还需要学生利用课余时间,利用自己的计算机、利用开放性实验室进行工作。科研带动了教学,加强了教的目的性,也提高了学的自主性和积极性;教学也推动了科研,带着问题的教学势必解决问题进而发现新的问题。
六、与其他课程相结合
除了本课程的前序课《高级语言程序设计》《离散数学》和《数据结构》以外,与本课相关的课程还包括《软件工程》《OOP方法与技术》《可视化编程》《计算机网络》等。这些课程或是本课程的后续课,或是并行课,有的需要本课程的知识,有的为本课程提供一定的支持。因此,我们将该门课程的教学安排在学习完《数据结构》,掌握一门程序设计语言,熟悉一种编程环境之后,尤其注重与《软件工程》《计算机网络》等课程相结合的教学方式。
数据库系统的设计与开发是一项庞大的工程,是涉及多学科的综合技术。必须把软件工程的原理和方法应用到数据库建设中来。运用软件工程的原理和方法开发数据库系统,一方面为实践提供了科学理论和工程方法,另一方面在实践中加强了对理论的进一步认识,所以可以要求学生严格按照软件工程的原理和方法进行数据库系统的设计与开发。
中图分类号:G642文献标识码:A文章编号:1009-3044(2011)22-5511-02
Discussion on the Database Principles of Teaching Reform
LU Qiu
(School of information Science and Engineering, Guilin University of Technology, Guilin 541004, China)
Abstract: This paper is on the problems about "Database Principles" aroused in daily teaching. It gives a detailed design to teaching reform, and proposes to adopt some new teaching methods such as case teaching, task driving, which can make the pupils want to learn more initially. What's more, in this article, the examination methods are reformed, and it combines the theories and practices together.
Key words: database principles; teaching reform; case teaching
数据库是信息类学科中重要的分支,几乎所有的软硬件系统都需要数据库的支持,它是计算机信息系统与应用系统的核心技术和重要基础。因此,各高校都将数据库原理课程作为专业基础课开设。数据库课程研究如何存储、使用和管理数据库,有较强的理论性和实用性,具有应用性突出、学科间综合性明显、学科内多层面内容交融、前沿新技术发展迅速等特征。数据库原理的特征决定了其既具有很强的理论性,又需要加强实践,对知识的综合应用和相关专业前沿技术应用的要求很高,对于刚接触数据库的学生来说是一门比较难学的课程。他们要在短时间内做到既掌握数据库原理的基本理论知识,又能对数据库信息进行数据操作及控制,还要根据实际的应用需求设计开发数据库应用系统,是很困难的,这就要求找到适合学生的学习方法和合适的教学方法。只有采用有特色的教学方法,才能取得好的教学效果。
1 现状及问题
我院网络专业、计算机应用专业及自动化专业都开设了数据库原理课程,传统教学模式下存在以下问题:
1) 教学目标不明确,理论和实践脱节
由于数据库原理课程涉及的理论概念比较抽象,现阶段教学主要采用传统的“教师讲授―教师演示― 学生练习―学生综合应用”模式教学,教师处于主导地位,使学生被动的接受和掌握该课程的基本知识,学生所学的知识和应用不能同步进行,因此在应用系统设计开发中不能很好地应用软件工程思想解决实际问题。主要表现在在毕业设计中,大部分学生不了解开发一个实用数据库系统的基本步骤,往往只侧重系统的编程实现而忽略用软件工程方法进行系统的设计,对数据库知识体系结构缺乏完整的理解,使得所设计系统实用性差,影响了毕业设计的质量,使得部分学生毕业后不能较快的适应所在单位的工作要求。
2) 重理论轻实验
根据教学大纲,课程设置以理论知识为主,占课程总课时量的80%以上,而实验课时一般只设置10个课时左右。教学内容涉及到关系代数,SQL语言、关系数据库规范化理论等,这些内容理论性强且模型抽象。由于实验课时比较少,故实验教学主要针对SQL语言设置实验。最终导致学生学完该课程后,对抽象的理论只有模糊印象,但没有建立整体应用体系的概念,在应用系统开发的时候无法将理论转换为实际应用。
3) 学习效果不理想
在学习过程中,学生在课堂上首先接触到的是一大堆枯燥的概念或理论,部分知识点课本又缺少代表性例子进行进一步介绍,例如范式理论、数据库保护、并发控制等。学生只能体会基本概念和局部功能,缺少综合应用实践,无法体会理论在整个数据库系统应用中的位置和作用,学习效果不理想。
2 教学改革方案
2.1 案例教学模式
案例教学模式是指以案例作为教学材料,结合教学内容,通过讨论、回答问题等师生互动的教学过程,使学生掌握理论和理解相关的概念和理论知识,培养学生创新能力的一种教学模式[1]。根据本课程的特点及教学目标,在数据库原理教学中引入此教学方法,使学生在理解强化数据库系统基础理论知识的同时,培养其解决实际问题,开发设计数据库应用系统的能力。案例教学模式采用“案例―理论―概念”模式,通过对典型案例的分析与讨论,使学生了解理论知识在实际应用系统设计中的作用,将抽象的数据库原理知识运用到实际生活中从而解决实际问题,达到融会贯通的效果,使得数据库原理课程更具有实践性和实用性。
在数据库原理的教学内容组织上,我们以可视化开发工具Delphi及数据库管理系统SQLServer2000组织和设计针对各知识点的案例,在授课过程中设定每一堂课的学习目标,以启发式提问、讨论等进行教学互动,将知识点搭配案例和使用演示的方式进行讲解,使各知识点通俗易懂,容易消化并应用。表1给出了针对“数据库原理”课程[2]的知识点所设计的相应案例[3-4]。
2.2 任务驱动的教学模式
在讲授数据库应用系统设计时,除了采用案例教学模式外,还采用任务驱动的教学模式。为了使学生更好的掌握这部分内容,教师精心设计一些贴近生活且具有现实应用价值的题目,例如图书管理系统,人事管理系统,合同管理系统等,让学生以小组为单位接受任务,设计数据库应用系统。在这一过程中,学生要深入体会和应用软件工程的思想和方法,进行合理的设计,最后提交项目设计报告。在课堂上安排一定的时间让学生阐述设计思路和方案,然后教师进行适当的点评和提出问题让学生参与讨论,引导学生循序渐进的完成任务,从而得到从应用的角度建构数据库应用系统设计的思路、方法和技术体系,深化对相关内容的理解。在这一过程中学生不断获得“成就感”,求知欲望增强,同时培养了其创新能力和独立分析问题、解决问题的能力。
2.3 改革考核方式,重视能力培养
数据库原理是一门理论性和实践性都很强的课程,传统的单独理论考试会造成学生为应付考试而对相关理论知识死记硬背,而具体动手操作一窍不通的局面,这与该课程培养目标相悖,因此有必要对考核方式进行改革。数据库原理课程的考核分为理论知识考核与应用能力考核两部分。理论知识考核重点考察学生对主要概念和原理的熟悉和理解和综合运用知识解决实际问题的能力。应用能力考核方式比较灵活一些,主要通过平时的实验和数据库设计的任务完成情况决定,例如,采用对学生分组进行“项目设计”和“项目开发”的方式进行考核,给学生足够的时间和有效的提示,使得这种考核方式成为学生对协同工作机制的一个体验。
3 结束语
该文针对信息类专业的数据库原理课程教学中存在的问题进行探讨,提出了教学改革的思想,主要提倡采用案例教学模式和任务驱动模式进行数据库原理的教学,期望能够在教学中促进学生的主动学习、提高学生数据库应用开发能力和实践动手能力,加强团队合作精神,提高课程教学质量。同时通过调整考核方式,加大实践环节的考核比例,使得学生能将理论和实践联系起来,动手能力普遍提高。
参考文献:
[1] 金蓉,庄红.面向能力培养的高校非计算机专业计算机基础教学改革与实践[J].计算机教育,2010(1):1-147.
[2] 王珊,萨师煊.数据库系统概论[M].4版.北京:高等教育出版社,2006.
中图分类号:G423文献标识码:A文章编号:1009-3044(2011)13-3206-02
A Brief Analysis on Teaching and Learning in Database Principles
CHENG Xue-yun, XU Hui
(School of Computer Science and Technology, Nantong University, Nantong 226019, China)
Abstract: Database Principles is an important specialized course in the computer undergraduate education, we should not only emphasize some reform measures in the class, but also research the teaching and learning from the angle of systematization. Links in teachers' teaching and students' learning are analyzed systematically in the paper, the embodiment in each link is provided, and the relationships among all links are explained by a figure, so that we can discuss the teaching and leaning schema to achieve better results.
Key words: Database Principles; intensive reading; extensive reading
1 课程剖析
数据库是研究如何科学高效地组织、存储、检索和管理数据的一门学科,集理论性、实用性、操作性、创新性于一体的综合课程[1],这门课程不仅要求学生掌握数据库的基本概念、原理,还特别强调培养学生应用数据库技术解决实际问题的能力。在目前的数据库教学中,主要存在的问题有:教学内容偏理论,对数据库的设计和具体的应用重视程度不够,对数据库中的新产品、新技术基本不作介绍;教学方法单一,主要以教师讲为主,提不起学生的学习兴趣;实践环节重视不够,不能很好的合理的安排实验的各个环节,缺乏对学生数据库分析和设计能力的培养;评价体系过分依赖于传统的应试教育模式,以期终理论考试成绩作为对学生最终评分的主要依据,不能激发学生不同的学习动机。为此,在文献[2-3]中,提出了优化教学内容、改进教学方法、重视实践环节、完善考核制度等具体措施。在文献[4]中还提出了案例法和项目驱动法在《数据库原理》课程教学中的探索。但上述这些措施和方法都是在教学过程中的一种改革,实际上除了课堂教学外,教学前和教学后的合理安排都是提高教学效果的必不可少的环节,所以本文侧重于从系统化的角度探讨教与学过程中各个环节的实施方案,不仅使教师的教学思路更加清晰,内容把握得更加合理,而且增强了学生的上课效果,提高了学生自主学习的能力。
2 系统化实施方案
《数据库原理》课程的教学目标是:通过该课程的学习,强化基础训练,使学生理解数据库的基本原理;应用软件工程的思想,掌握数据库的分析和设计方法,培养学生的创新能力,掌握数据库的应用技术。我们不仅在课堂教学中,要优化教学内容,做到理论和实践并重,相互促进;要利用一些优秀的教学方法,如案例教学法、项目驱动的教学法、启发式教学等,激发学生的学习兴趣,更要注重教师和学生课前的准备和课后的巩固。根据师生在教学活动中扮演的不同角色,他们各自在课前、课上、课后各环节中的实施方案是不一样的,具体如图1所示。
作为教师,首先要通读教材,精读教材中的每一个细节,从全局上把握所授内容及知识结构;要查阅相关的资料和熟悉教学大纲,做到重点难点心中有数;还要查阅国内外文献资料,了解学科目前发展的最新动向;同时该课程也是一门实践性较强的课程,所以对老师也提出了更高的要求,不仅要了解目前常用的一些数据库产品,而且至少要会熟练操作其中的一种产品,比如SQL Server系列,同时要尽早规划好上机实验和课程实践环节的任务,关于实践教学方面的改革与探讨在文献[5]中进行了阐述。
教师在备课的过程中,对所授部分内容要再次精读,确保正确理解书本中的每个知识点,把握好重点、难点,选择最佳的教学方法。如专门的关系运算,包括选择、投影、连接和除运算,前3中比较容易理解,关键是对除法的理解比较抽象,所以在教学过程中,对该部分要重点阐述,多举例题进行分析,再通过一些例题,启发式的让学生自己学会写出涉及到除运算的一些关系代数。
课堂讲授过程中,综合运用多种优秀的教学方法,以此提高学生的学习兴趣,夯实学生的理论基础,提高学生实际问题的分析和应用能力。
教师上完课后要进行反思,对所讲授的内容再粗看一遍,看看在授课过程中还存在哪些问题,并结合学生提出的问题,反馈到今后的教学中。
作为学生,拿到教材后首先要粗看下整本书的知识结构,大概知道要涉及到哪些方面的内容,对整门课有个宏观的印象。
课前预习时,粗看下将要讲授的内容,主要讲什么,哪些是基本能看懂的,哪些是不大明白的,这样上课时做到心中有数,对存疑部分上课听讲时尤其要注意。
课堂学习中,学生应积极配合老师,对自己存疑或不能理解的地方,如关系代数中的象集、除运算,带着先前的初步思考,认真听老师分析,这样带着问题有目的地听,会起到事半功倍的效果。
学生上完课后,应仔细研读该部分的内容,仔细体会,对每个知识点是否做到真正理解,对还存在疑惑的地方,主动跟老师探讨,使自己的思路更加清晰,为后续内容的预习打下良好的基础,同时课堂上能更好地理解各个知识点,指导学生的自主学习,增强学生的学习效果。
3 结束语
无论教师的教,还是学生的学,都是一个系统化工程。不仅要注重课堂上的教学内容组织、教学方法设计,更要重视课前课后各个环节,使得教与学的各个活动成为一个相互促进的整体。该文提出了教与学过程中各个环节的具体实施方法,它们之间环环相扣、相辅相成。可以发现教师的教与学生的学是两种完全不同的模式,它们在课堂活动中相互作用,在课后交流中得到提高,从而达到更好的教学效果。
参考文献:
[1] 王珊,萨师煊.数据库系统概论[M].4版.北京:高等教育出版社,2008.
[2] 李志欣,卓亚琦.计算机专业中数据库原理课程的改革与实践[J].科技传播,2010,8:218-219.
[3] 王立新,章曙光.数据库原理的案例导向教学研究[J].电脑知识与技术,2010(8):6155-6157.
中图分类号:G424文献标识码:A文章编号:1009-3044(2008)34-1560-01
Researches on the Teaching of the Database Systems Principles
ZHANG Li
(Computer and Information Institute, Yang-en University,Quanzhou 362014, China)
Abstract: Based on self teaching experiences, through analyzing those questions in the teaching of the database systems principles, the essay puts forwards several arguments about the teaching of the database systems principles, including teaching contents, methods and so on.
Key words: database; teaching methods; teaching reform
1 引言
数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。在教育部高等学校计算机、信息类专业的培养方案中,《数据库系统原理》一直是四年制本科学生的专业必修课程。学好这门课,对学生毕业以后从事软件开发等相关工作具有重要意义。
2 教学中存在的问题
通过对我校近几年计算机专业《数据库系统原理》课程教学现状的分析,发现主要存在以下一些问题:
2.1 理论教学和实践教学课时安排不合理
随着国家的教育改革,不断地减少学时数减轻学生负担,该课程教学总课时数较少仅54学时,要求学生在较短的时间内掌握完整的理论知识,又能够在实际中较好的运用数据库技术是比较困难的。因此,教师要么偏重于理论教学,要么偏重于流行数据库开发工具的教学,使理论与应用比例失调,无法为学生构建一个合理的知识结构,影响了学习的效果。
2.2 教学方法和手段缺乏多样性
目前大部分高校都提倡并要求教师使用多媒体进行教学,《数据库系统原理》也不例外,此教学方法节省了教师板书的时间,节约了课堂时间,扩大了教学内容的信息量,有利于解决课时少的问题,但是另一方面,它的缺点也很明显,每次课知识覆盖面大,信息量大,不益于学生消化吸收,影响教学效果,同时,师生双向交流也受到限制,学生长时间注视屏幕,易疲劳和走神。因此,必须合理运用多媒体教学资源,改进教学方法和手段,调动学生学习积极性,提高学习效率。
2.3 传统的考核方法不能全面检查学生的学习效果
考核是检查教学质量的一个重要手段,对学生学习和教师教学具有导向作用。《数据库系统原理》是一门理论与实践并重的课程。传统的考核方式通常是以理论考试作为最终成绩,使得部分学生只是靠死记硬背来通过考试,而动手能力较弱,这样没有全面的检查学生的学习效果。
3 教学改革
3.1 选用优秀教材,优化教学内容
采用高等教育出版社的《数据库系统概论》,本套教材为普通高等教育“十五”国家级规划教材,选用流行易上手的SQL Server 2000作为实验平台,为学生以后使用更新更复杂的数据库管理系统打下基础。因为课时少,按照教学目标要求合理选择教学内容,不要意图将所有知识点面面俱到,引导学生入门是关键所在,突出重难点,有些知识点可以适当留给学生课下自学。
3.2 改进教学方法和教学手段
在实际教学中,合理使用各种教学方法和手段,以学生为中心,采用启发式,讨论式等教学方法,充分利用网络资源,增加学生实践机会,激发学生学习热情。
1) 以学生为中心的教学方法。
在上第一节课时,主要是要做好动员工作,不要讲太多理论知识,语言尽量生动,举有趣的例子,让学生对这门课感兴趣。平时在课堂上要善于把枯燥的内容转变为学生容易理解的知识。在教学过程中注重示例性讲解,把书上例题讲通讲透,让学生能够融会
(下转第1563页)
(上接第1560页)
贯通。在课堂上也要注意避免一言堂的情况,合理使用讨论式、启发式教学方法,充分调动学生,多与学生交互,让学生的思维活跃起来,积极地参与思考,提出问题。在正式讲课之前可先用几分钟进行典型问题的讲解或优秀习作的展示,达到学生自我教育的目的。还可充分利用多媒体工具,提高教学效果,比如可把要讲解的比较复杂的操作过程制作成flas,动态演示给学生看,有助于学生消化理解,也同时给了学生直观的视觉刺激,这样极大的增强了课堂教学效果和学生的兴趣。
另外,实验内容可适当超前教学内容一些,鼓励学生自学与预习。
2) 构建网络课堂。
网络课堂是一种新的教学手段,是课堂教学的有益补充。可以将课件和视频上传到网上,学生可以不受时空的限制自主学习。学生和教师可以通过BBS、QQ、MSN、Email等多种方式进行答疑或讨论。学生也可在网上考试平台中进行自测学习。充分利用网络资源,通过电子图书馆可以足不出户就阅览大量数据库方面最新最全的书籍。
3) 强化管理,注重实践。
学生座位固定,方便点名,保证出勤。实验课内容要求学生事先写,及时交,避免有学生抄袭。
在开学初就布置课程设计,要求学生以小组为单位开发数据库应用系统,课堂上教师介绍必要的理论知识,课外,学生通过自行分配任务,互相探讨的学习模式完成具体的实践工作,以此增强学生对数据库应用系统开发的认识,提高学生对本专业的兴趣,培养动手能力和团结协作精神。随着教学进程的推进,学生在教师的全程指导下进行课程设计。这样一个贯穿整个学期的课程设计对学生学好《数据库系统原理》课程是很重要的。
鼓励学生参与科研项目,参加大学生创新性实验计划等比赛,提高自己的实践能力和团队协作精神。
3.3 改革考核方法,重视能力培养
由于该门课程的特点,对学生进行考核时,既要注重理论知识,也要注重实践技能的考核。因此,改变了过去只有笔试的考试方法。实践能力的考核方式可灵活一些,由平时的实验和期末的课程设计结合起来进行考核。理论部分分期中和期末二次,有期中考试可以及时在学期中了解学生的学习效果,也可让学生了解自己的水平如何,好及时调整状态。经过一年多的教学改革,取得了较好的教学效果。学生在做毕业设计时运用地越来越熟练,并且有部分学生在毕业后从事数据库相关领域的工作。
4 结束语
以上教学方法在计算机专业和信管专业的《数据库系统原理》课程进行了试用,其教学效果反映很好。学生掌握了数据库的基本原理和基本技术,大部分学生能够能够自己开发一个实际可用的软件系统,实践能力得到了锻炼。
随着数据库技术的不断发展,知识的日新月异,教师也需要在教学过程中不断增加新的理论和技术,尝试新的教学方法和手段,培养出更多适合信息化社会的人才。
参考文献:
[1] 张龙翔.《数据库原理》教学改革探讨[J].考试周刊,2007(14):85-86.
实现业务逻辑层与数据库的连接是通过JDBC技术,它是“Java Database Connectivity”的缩写。JDBC由一组用Java语言编写的接口和类组成,是对数据库操作的对象封装,可以实现与数据库的无关性。它以成为一种供数据库开发者使用的标准API。
6.1.1 JDBC的基本功能
a.建立与数据库的连接。
b.发送SQL语言。
c.处理数据库操作结果。
6.1.2 JDBC的特点
a.与SQL语言的一致性。它允许使用从属于任何DBMS的SQL语言;提供ODBC风格的转义语句;利用DatabaseMetaData接口提供关于DBMS的描述性信息,从而使应用程序能适应每个DBMS。
b.可在现有数据库上实现。
c.提供与其它Java系统一致的界面。这说明开发人员可以采用一致的编程界面来处理数据库编程。
d.简单化。
e.使用静态的通用数据类型。
f.多方法,多功能。
6.1.3 JDBC的驱动类型:
a.JDBC-ODBC桥驱动程序。
b.调用本地数据库应用编程接口驱动程序。
c.数据库中间件纯Java驱动程序。
d.直接连接数据库的纯Java驱动程序。
6.1.4将连接数据库的代码封装在一个JavaBean中
DBconn.java代码如下:
package com.soul.struts.tool;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBconn {
private String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; //数据库的驱动
private String url = "jdbc:odbc:mydb"; //URL地址
private Connection conn = null ;
//无参构造器,利用它来加载数据库连接对象
public DBconn() {
try {
Class.forName(driver); //加载数据库驱动
conn = DriverManager.getConnection(url); //加载数据库连接对象
}
catch (Exception e) {
System.out.println("数据库加载失败");
}
}
public Connection getConn() {
return conn;
}
// 关闭数据库结果集
public static void closeRs(ResultSet rs) {
try {
if(rs != null) {
System.out.println("关闭数库结果集");
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭数据库操作对象
public static void closePstmt(PreparedStatement pstmt) {
try {
if(pstmt != null) {
System.out.println("关闭数库操作对象");
pstmt.close();
pstmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭数库连接对象
public static void closeConn(Connection conn) {
try {
if(conn != null) {
System.out.println("关闭数库连接对象");
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
6.2 系统功能模块的设计与实现
6.2.1 用户注册模块
当用户提出注册请求,系统显示用户注册页面,提示用户输入个人信息,用户输入个人信息,系统验证其信息是否符合要求,如果用户输入的个人信息不符合系统要求,则系统显示错误信息并要求用户重新填写个人信息,用户重新填写信息,或者取消注册,注册成功系统将用户信息写入数据库,页面将经一个显示注册成功的页自动进入登录界面。如下图6-1所示:
图6-1 用户注册页面
要实现用户信息验证功能,主要是通过客户端页面上的JavaScript和服务器端验证,例如验证用户输入的用户名在数据库中是否已存在,如果已存在则在提交的时候会给出提示“用户名已存在”,就要求重新注册。客户端页面上的javascript代码如下:
在服务器端验证时,RegisterAction 调用 RegisterManager类中的addUser方法.addUser会先调同类中的hasUser方法来验证用户是否已存在。关键代码如下:
public boolean hasUser(String user_name) throws Exception{
Connection conn = null;
DBconn db = new DBconn();
PreparedStatement pstmt= null;
ResultSet rs = null;
try{
conn = db.getConn();
pstmt = conn.prepareStatement(Sql.registCheck_tb_user);
pstmt.setString(1,user_name);
rs=pstmt.executeQuery();
rs.next();
int n = rs.getInt(1);
if(n==1){
System.out.print("用户名存在,返回true");
return true;
} else {
System.out.print("用户名不存在,返回false");
return false ;
}
}catch(SQLException e){
e.printStackTrace();
throw e;
}finally{
DBconn.closeRs(rs);
DBconn.closePstmt(pstmt);
DBconn.closeConn(conn);
}
}
6.2.2 登录模块
在登录模块中分为教师登录和学生登录,只有输入正确的用户名和密码才能进入系统。在登录发生错误时会出现相关的提示信息,如用户名或密码错误。当教师登录成功后进入主页可以进行电子教案管理,视频管理,作业管理,在线答疑,留言管理等相关的操作。学生登录成功后进入主页可以查看,下载电子教案和视频,在线向教师提问,上传作业等相关操作。
用户登录模块是系统的入口,用户登录模块应具有以下功能:
获得用户权限。登录模块做为系统的入口,需要对权限进行控制。不同身份登录获的不同的使用权。本系统分为教师用户和学生用户两种权限。教师用户登录后可以进行电子教案管理,视频管理,作业管理,在线答疑,留言管理等相关的操作;学生用户登录成功后可以查看,下载电子教案和视频,在线向教师提问,上传作业等相关操作。网站首页默认为学生用户登录页面。教师用户登录可以点页面中的“教师登录”进入教师登录页面。
验证用户的用户名和密码。系统在登录过程中必须输入其正确的用户名和密码,登录模块会对其进行核对。如果用户的用户名或密码错误则提示信息“用户名或密码错误”并返回用户登录界面。
为实现学生登录功能,要根据用户输入的用户名和密码判断是否是合法用户。于是创建一个LoginAction类。调用UserManager类中的validate(String name,String password)方法:
public boolean validate(String name,String password) throws Exception {
Connection conn = null;
DBconn db = new DBconn();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = db.getConn();
pstmt = conn.prepareStatement(Sql.login_tb_user);
pstmt.setString(1,name);
pstmt.setString(2,password);
rs = pstmt.executeQuery();
rs.next();
int n = rs.getInt(1);
if(n==1)
{
return true;
} else {
return false;
}
}catch(SQLException e){
e.printStackTrace();
throw e;
}finally{
db.closeRs(rs);
db.closePstmt(pstmt);
db.closeConn(conn);
}
}
本系统的教师登录模块采用了固定的用户名和密码。为实现它,我创建了一个AdminLoginAction类,调用AdminManager类中的方法:
public boolean validate(String name, String password)
{
if (("admin".equals(name))&&("admin".equals(password)))
{
System.out.print("正确!");
return true;
}else
{
System.out.print("错了");
return false;
}
}
如果教师输入的用户名或密码有误则会有提示:"用户名或密码不匹配,请重新登录!"接着页面会跳到教师登录页面。
鉴于对系统安全的考虑,用户使用系统必须先到登录页面进行身份验证,通过登录窗口用户输入用户名和密码,只有输入正确的用户名和密码后用户才能进入系统。
下图页面是学生登录的首页如图6-2:
图6-2用户登录页面
教师登录页面如图6-3所示:
图6-3教师登录页面
6.2.3 电子教案管理模块
a.电子教案管理模块分为学生用户主页的电子教案管理和教师用户主页的电子教案管理。教师成功登录后,在教师用户主页中的电子教案管理模块,教师可以上传新电子教案,也可以删除以前传过的旧电子教案。点击“上传电子教案”就会进入到电子教案上传的页面,教师点击“浏览”选择要上传的电子教案,然后点上传就完成了一个电子教案的上传。创建了一个继承于DispatchAction的UpLoadAction类,该类用于上传和下载文件。关键代码如下:
UpLoadForm uploadFile = (UpLoadForm)form;
FormFile file = uploadFile.getFile();
String uuidName = UUID.randomUUID().toString();
String kejian_Name = uuidName+file.getFileName();
String kejian_Time =uploadFile.getKejian_Time();
ServletContext servletContext = this.getServlet().getServletContext();
String path = servletContext.getRealPath("");
FileOutputStream out = new FileOutputStream(path+"/uploadC/"+ kejian_Name);
out.write(file.getFileData());
out.flush();
out.close();
UpLoadManager ulm = new UpLoadManager();
boolean flag = ulm.kejianAdd(video_Name, video_Time);
if(flag)
{
request.setAttribute("currentTime", new Date());
request.setAttribute("upload", "success");
retur, , n mapping.findForward("upload");
}
request.setAttribute("upload", "fail");
return mapping.findForward("AuploadC");
path表示得到当前项目下webRoot 的路径,为了保存视频,在webRoot下建立了一个名为uploadV的文件夹,考虑到一处编写到处运行的java语言初衷,把视频保存在tomcat服务器下.代码中的FormFile类,是映射上传文件的,对你上传的文件进行操作,可以取得文件的名字,文件的内容等。由于怕上传的电子教案的名的字会相同,于是用个UUID类。用UUID.randomUUID()给文件名加一个随机的32位的不会重复的数字。上传成功的电子教案会存在服务器的uploadC文件夹中。
教师上传电子教案页面如图6-4所示:
图6-4教师上传电子教案图
c.
学生用户成功登录后,可点击“下载电子教案”查看电子教案,选择想要下载的电子教案点击“下载”。
学生下载电子教案页面如图6-5所示:
图6-5学生下载电子教案页面
6.2.4 公告管理模块
站内公告管理小模块主要功能是管理站内公告,教师可通过公告管理模块向学生们通知,也可以删除通知。 这是一个小模块,因此创建Back_NoteAction类调用NoteManager类中的add()方法向数据库中添加公告内容:
public boolean add(String note_title,String note_content,String note_time) throws Exception{
Connection conn = null;
DBconn db = new DBconn();
PreparedStatement pstmt= null;
try{
conn = db.getConn();
pstmt = conn.prepareStatement(Sql.add_tb_note);
pstmt.setString(1,note_title);
pstmt.setString(2,note_content);
pstmt.setString(3,note_time);
int n=pstmt.executeUpdate();
if(n==1){
return true;
} else {
return false;
}
}catch(SQLException e){
e.printStackTrace();
throw e;
}finally{
DBconn.closePstmt(pstmt);
DBconn.closeConn(conn);
}
}
学生的主页是由主页中include进去几个页组成的。所以要在用户的页面中显示公告,创建了一个Head_MainAction类,在该类中的show方法中使用 request.getSession().setAttribute("list_note", list_note);将list_note放在session中的。于是只要浏览器不关,在任何一个显示页面都能取到用EL表达${lsit_note}取得。
添加公告页面如图6-6所示:
图6-6添加公告页面
6.2.5 留言管理模块
在教师的留言管理模块中,教师可以回复留言和删除留言。学生只可以查看留言和留言。教师用户创建了一个Back_MessageAction类,调用MessageManager中的诸方法来添加或删除留言。学生用户创建了一个Head_MessageAction类,调用MessageManager中某些方法。在学生显示留言页面要分我利用了jstl加EL表达式分页,关键代码如下:
MessageActionForm maf = (MessageActionForm)form;
MessageManager mm = new MessageManager();
ArrayList list = mm.query();
int pageSize = list.size() / 4 + 1;
ArrayList list1 = new ArrayList();
int begin = 0;
int end = 3;
int currentPage = 1;
//---从页面得到数据---
if(maf.getCurrentPage()!=1&&maf.getCurrentPage()!=0) {
begin = maf.getBegin();
end = maf.getEnd();
currentPage = maf.getCurrentPage();
}
maf.setBegin(begin);
maf.setEnd(end);
maf.setCurrentPage(currentPage);
list1.add(maf);
request.setAttribute("currentTime", new Date());
request.setAttribute("list", list);
request.setAttribute("list1", list1);
request.setAttribute("pageSize", Integer.valueOf(pageSize));
return mapping.findForward("showmessage");
教师查看留言页面如图6-7所示:
图6-7教师查看留言页面
6.2.6 视频管理模块
视频管理模块分为学生用户主页的视频管理和教师用户主页的视频管理。教师成功登录后,在教师用户的主页中的视频管理模块,教师可以上传新的视频,也可以删除以前传过的视频。点击“上传视频”就会进入到电子教案上传的页面,教师点击“浏览”选择要上传的视频,然后点上传就完成了一个视频的上传。上传视频的关键代码如下:
UpLoadForm uploadFile = (UpLoadForm)form;
FormFile file = uploadFile.getFile();
String uuidName = UUID.randomUUID().toString();
String video_Name = uuidName+file.getFileName();
String video_Time = uploadFile.getVideo_Time();
System.out.println("时间="+video_Time);
ServletContext servletContext = this.getServlet().getServletContext();
String path = servletContext.getRealPath("");
FileOutputStream out = new FileOutputStream(path+"/uploadV/"+video_Name);
out.write(file.getFileData());
out.flush();
out.close();
UpLoadManager ulm = new UpLoadManager();
boolean flag = ulm.videoAdd(video_Name, video_Time);
if(flag){
request.setAttribute("currentTime", new Date());
request.setAttribute("upload", "success");
return mapping.findForward("upload");
}
request.setAttribute("upload", "fail");
return mapping.findForward("AuploadV");
path表示得到当前项目下webRoot 的路径,为了保存视频,在webRoot下建立了一个名为uploadV的文件夹,把视频保存在tomcat服务器下。同时为避免出现相同文件名的视频名字,每个视频上传之前在视频名前加了一段唯一的UUID字符编码,对应数据可存入tb_video表中的video_Name字段,将来在显示视频的详细信息时同样根据video_Name来寻找视频。
学生下载视频,用video_Name查找下载视频。下载视频的代码如下:
UpLoadForm ulf = (UpLoadForm)form;
String video_Name = ulf.getVideo_Name();
video_Name = new String(video_Name.getBytes("ISO-8859-1"),"GB18030");
ServletContext servletContext = this.getServlet().getServletContext();
String path = servletContext.getRealPath("");
FileInputStream inPut = new FileInputStream(path+"/uploadV/"+video_Name);
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + new String(video_Name.getBytes("GB18030"),"ISO-8859-1"));
OutputStream out = response.getOutputStream();
byte[] b = new byte[1024*1024];
while(inPut.read(b)>0){
out.write(b);
out.flush();
}
inPut.close();
out.close();
教师可以根据video_Name删除某些视频,调用delVideo()方法将相关信息删除。关键代码如下:
UpLoadForm ulf = (UpLoadForm)form;
String video_Name = ulf.getVideo_Name();
ServletContext servletContext = this.getServlet().getServletContext();
String path = servletContext.getRealPath("");
File filename = new File(path+"/uploadV/"+video_Name);
filename.delete();
UpLoadManager um = new UpLoadManager();
boolean flag = um.delVideo(video_Name);
6.2.7 作业管理模块
本模块在学生用户的主页是学生将自己的作业上传到服务器下的uploadT文件夹中,还可以下载老师批改后上传的作业。在教师用户的主页中老师将学生上传的作业下载下来,之后再将批改好的作业上传到服务器中,供学生下载。上传作业与上传视频类似,只不过多了个String user_name = uploadFile.getUser_name();用来收集上传试卷的用户名。关键代码如下:
UpLoadForm uploadFile = (UpLoadForm)form;
FormFile file = uploadFile.getFile();
String test_Name = file.getFileName();
String test_Time = uploadFile.getTest_Time();
String user_name = uploadFile.getUser_name();
System.out.println("时间="+test_Time);
ServletContext servletContext = this.getServlet().getServletContext();
String path = servletContext.getRealPath("");
FileOutputStream outPut = new FileOutputStream(path+"/uploadT/"+file.getFileName());
outPut.write(file.getFileData());
outPut.flush();
outPut.close();
UpLoadManager ulm = new UpLoadManager();
boolean flag = ulm.testAdd(test_Name, test_Time,user_name);
学生上传作业页面如图6-8所示:
图6-8学生上传作业页面
6.2.8 在线答疑模块
在这个模块中学生和教师可以在线交流,学生可以向老师在线提出问题,老师将在线回答。
学生或者教师将说的话发送,将先存到数据中,随之再将数据库中的后20条记录取出,在message.jsp中显示。在线答疑页面的主要代码如下:
6.2.9 友情链接管理模块
教师还可将自己知道的一些好的网站添加到网站里,把友情链接的网名和网址添加进去,学生会在页面上看见添加进的网站名字,用户可以点网站名进入相应的网站。
为了方便管理和安全,将所有的sql语句都封装在一个Sql类中,并且每条语句都定义成public static final类的,这样就不允许有别的语句继承它们。具体的代码如下:
public final class Sql {
//用户登录
public static final String login_tb_user = "select count(*) from tb_user where user_name=? and user_password=?";
//用户注册向数库数中增加数据
public static final String registAdd_tb_user ="insert into tb_user (user_name,user_password,realname,email)" +"values(
?,
?,
?,
? )";
//
public static final String queryId_tb_user ="select user_id from tb_user where user_name=?";
public static final String registCheck_tb_user="select count(*) from tb_user where user_name=?";
public static final String add_tb_articleType="insert into tb_articleType (typeName,description) values(?,?)";
public static final String query_tb_articleType="select * from tb_articleType";
public static final String del_tb_articleType="delete from tb_articleType where type_id=?";
public static final String add_tb_article="insert into tb_article (title,type_id,content,phTime,number) values(?,?,?,?,?)";
public static final String del_tb_article="delete from tb_article where article_id=?";
public static final String query_Article="select * from tb_article";
public static final String show_Article="select tb_article.*,tb_articleType.* from tb_article,tb_articleType where (tb_article.type_id=tb_articleType.type_id and tb_article.type_id=? and article_id=?)";
public static final String xin="select tb_article.*,typeName,description from tb_article left join tb_articleType on (tb_article.type_id=tb_articleType.type_id)";
public static final String add_tb_note="insert into tb_note (note_title,note_content,note_time) values(?,?,?)";
public static final String query_tb_note="select * from tb_note";
public static final String del_tb_note="delete from tb_note where note_id=?";
public static final String show_tb_note="select * from tb_note where note_id=?";
public static final String update_tb_note="update tb_note set note_content=? ,note_time=? where note_id=?";
public static final String update_tb_article= "update tb_article set content=? ,phTime=? where article_id=?";
public static final String query_tb_user = "select user_id,user_name,realname,email from tb_user";
public static final String del_tb_user = "delete from tb_user where user_id=?";
public static final String query_tb_message = "select * from tb_message order by mes_id";
public static final String delone_tb_message = "delete from tb_message where mes_id=?";
public static final String delall_tb_message = "delete from tb_message";
public static final String reply_tb_message = "insert into tb_message (mes_content,mes_sender,mes_sendTime,to_whom) values(?,?,?,?,?)";
public static final String add_tb_link = "insert into tb_link (link_name,link_add) values (?,?)";
public static final String del_tb_link = "delete from tb_link where link_id=?";
public static final String query_tb_link = "select link_id,link_name,link_add from tb_link";
//
public static final String part_Article = "select article_id,title,content,phTime,number from tb_article order by article_id desc";
public static final String part_Article = "select article_id,title,content,phTime,number,typeName from tb_article left join tb_articleType on (tb_article.type_id=tb_articleType.type_id) order by article_id desc";
public static final String show_link = "select * from tb_link ";
public static final String show_note = "select * from tb_note order by note_id desc";
public static final String add_tb_video = "insert into tb_video (video_Name,video_Time) values(?,?)";
public static final String add_tb_test = "insert into tb_test (test_Name,test_Time,user_name) values(?,?,?)";
public static final String query_tb_video = "select video_Name,video_Time from tb_video order by video_id desc";
public static final String query_tb_test = "select test_Name,test_Time,user_name from tb_test order by test_id desc";
public static final String del_tb_video = "delete from tb_video where video_Name=?";
}
第7章 开发中遇到的难点和对策
a. 数据库的连接问题
问题:数据库的连接:在开发过程中经常出现查找不到数据库,出现这样的错误一般是数据库的连接出现问题。
数据库加载驱动有问题。一开始用的是
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Stirng url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mywork";
要求有三个库文件:msbase.jar,mssqlserver.jar,msutil.jar,该文件需要放在服务器的/WEB-INF/lib文件夹下面.
解决方法:经检查发现1433端口没有打开,于是就换成下面的ODBC-JDBC桥驱动:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:mydb";
Connection con=DriverManager.getConnection("jdbc:odbc:mywork");
换成这个驱动就可以连上数据库了。
b. 从数据库中查询信息时会出错
问题:把查询的结果集rs放在ArrayList的对象list中,可是在jsp页面中调用的时候却没有值。
解决方法:经检查发现,向maf中set相应属性时,顺序必须跟sql查询语句中的查询的顺序一样才可以。
while(rs.next()){
maf = new MessageActionForm();
maf.setMes_id(rs.getInt("mes_id"));
//1
maf.setMes_title(rs.getString("mes_title"));
//2
maf.setMes_content(rs.getString("mes_content"));
//3
maf.setMes_sender(rs.getString("mes_sender"));
//4
maf.setMes_sendTime(rs.getString("mes_sendTime")); //5
list.add(maf);
}
第8章 总结及未来展望
8.1 总结
《数据库原理网上授课平台》采用B/S模式, 在研究当前网站的基础上,经过详细调研后,确定了系统设计的领域,包括系统设计、数据库设计、程序设计等;通过采用面向对象设计的思想,用Java程序语言和JSP+STRUTS等相关技术进行开发设计;本系统主要完成了用户登录模块,用户注册模块,留言模块,视频管理模块,电子教案管理模块,在线答疑模块。该系统完成了用户可以下载电子教案,视频,在线向管理员提问。 利用SQL Server 2000+JSP+Struts框架开发的,便于维护。同时为网站的用户提供友好的操作界面以及操作的灵活性,使用户能轻松地完成相应操作。
在系统的开发过程中也遇到了许多困难和问题,数据库的连接、数据写入数据库时出错、在调度中出现字符不匹配、页面的设计等。处理数据库的连接是通过建立数据源和JSP中的连接语句实现的,数据的处理是通过SQL语言完成的,而页面的设计通过HTML和Dreamweaver对其进行设计。
在本次开发过程中涉及到了许多新东西,也遇到了许多问题,经过和老师与同学的交流以及自己的努力解决了这些问题。在本次开发过程中使我很好的掌握了JSP+STRUTS等相关技术和SQL Server 2000,给我以后的学习带来了极大的帮助。
8.2 展望
由于这次毕业设计时间紧迫,加之自己的水平有限,系统设计得比较简单,有些方面都没有来得及实现,在以后的学习和实践中我会加以丰富。
(1)为了数据安全,在本系统中只有对该系统所用到的数据库进行备份,而没有对应的数据恢复和数据清理机制,为了能够使得系统数据不至于在遇到误操作时无法恢复,应设计数据恢复功能模块,并及时对数据进行定时的清理。并且此次设计也没有数据参照完整性问题。今后要注意这个问题,要把数据库部分做的更加安全。
(2)“在线答疑”学生提交问题,存入数据库,教师显示页面每隔一秒自动刷新,调用ChatAction类中的方法从数据库中查询结果的在教师显示页面中显示。后因用了frame把几个页面放在一个页面中出了错,所以基本未实现。今后要将其完成。做的更完美一些。
(3)本系统只用了Struts框架,为了使系统更好,应该使用Struts+Spring+Hibernate三大框架。
(4)在用户模块中,由于用户需求不同,系统应具有更好的扩展功能来完善,如增加密码找回功能等,更好的满足用户的需求。
参考文献
[1] 张海藩. 软件工程导论(第四版)[M]. 北京:清华大学出版社,2003.12
[2] Johannes Gehrke(美). 数据库系统概念[M]. 北京:清华大学出版社,2004.10
[3] Paul Dubois(美). 网络数据库指南[M]. 北京:机械工业出版社,2000.1
[4]Marty Hall,Larry Brown(美). Servlet与JSP核心编程(第2版)[M]. 北京:清华大学出版社,2004.6
[5] 汪晓平,俞俊,李功. 精通Java网络编程[M]. 北京:清华大学出版社,2005.9
[6] 李载甲. JSP完全探索[M]. 北京:中国青年出版社,2001.1
[7] Y.Daniel Liang(美). Java编程原理与实践(第4版)[M]. 北京:清华大学出版社,2005.8
[8] 4U2V工作室. Dreamweaver网页设计与制作100例[M]. 北京:人民邮电出版社出版,2004.8
[9] 刘晓华,张健,周惠贞. JSP应用开发详解[M]. 北京:电子工业出版社,2002.1
[10] 赵辉,李建国. JSP开发技术原理与实践教程[M].北京:电子工业出版社
“数据库原理课程”是计算机课程之一,教学包括数据库理论、数据库技术与数据库的应用实践三个部分,可全面提高学生对数据库的了解以及应用水平。就目前来看,教W过程中教学资源不足的问题,对教学效率的提高阻碍较大。因此,建设教学资源成为了“数据库原理”课程改革的重点。
一、“数据库原理”课程简介
1.“数据库原理”课程内容
“数据库原理”课程是计算机课程的重要组成部分,由于其技术性较强,理论知识无法通过语言详细讲解,因此教师通常采用PPT进行教学,这样效率相对较高,学生的学习过程更加直观,理解也更加深入。除理论教学外,该课程还包括实践部分,实践教学通常采用上机操作的方法完成,教师要求学生亲自对数据库加以维护,以加深对知识的理解程度。
2.“数据库原理”课程教学现状
当前的教学模式,可在一定程度上提高学生的理论与实践水平,但却具有对教学资源以及现代化教学技术应用力度不足的问题。微课及网络教学是信息化技术下两种新型的教学方式,具有一定的适用性,可用于多种类型课程的教学过程中,可以有效拓展教学时间与空间,在提高教学效率方面优势显著。当前“数据库原理”课程教学,仍以课堂教学为主,课下学生的学习途径较少,长此以往,学生容易因为缺乏练习,影响学习效果。在社会及市场对人才素质要求越来越高的今天,对上述教学模式加以改革,已经变得极为必要。
二、“数据库原理”课程数学资源建设
1.数学资源的整合
(1)理论教学。理论教学内容以数据库理论知识为主,教学可在网络平台上进行。教师需将教学内容以电子教案的形式,到互联网上供学生学习。以“数据库原理”第一章为例,电子教案中需包括数据库管理的发展、数据库管理系统、数据库的发展形式三项内容,教师需将每一项教学内容细化,系统地展现给学生,使其能够参照电子教案自学知识。
(2)实践教学。实践教学的目的在于培养学生的数据库管理能力,以学生的上机操作为主。对此,学校可建立相应练习平台及数据库管理系统,如SQL Server等,使学生的操作水平在系统中得到提升。与传统的机房上机操作相比,上述方法拓展了练习的空间与时间,提高了练习的有效性。
(3)视频资源的制作与。教师可综合理论与实践教学内容,制作视频资源,并将其到互联网平台中,使学生可通过对视频资源的观看,直观地理解理论知识,并了解操作过程,降低学习难度。视频资源可采用微课模式下视频的制作方法加以制作,要控制每一段视频的时间,避免视频内容冗长繁杂,影响学生的观看兴趣。
2.教学资源的建设
(1)软件与硬件支持。由于教学资源需要以视频的方式,因此需具有录像及录音设备,硬件应包括摄像头、话筒、电脑等。软件可以以Camtasia Studio系列为主。
(2)具体建设过程。①启动Camtasia Studio软件,进入到教学资源录制程序中。②打开PPT课件并播放,根据需求,调整显示区域大小。③点击Camera,进入视频录制状态。④点击Audio按钮,完成声音测试。⑤点击REC,正式录制。⑥录制完成后,保存文件。⑦可点击屏幕右上角预览键,观看效果。⑧如视频资源不存在问题,则可以。
3.教学资源多样化水平的提高
(1)课程介绍。教师需在制作每一个教学视频前,做好课程介绍,使学生不必长时间观看视频,便能够马上了解此视频中所包含的内容。不同学生对不同知识的了解程度不同,因此视频观看需求也不同,将课程介绍置于教学前,可使学生及时筛选出自己所需要的资源,提高学生的学习效率。课程介绍应包括学习任务、学习方法、学习内容等多方面内容,使学生可全面了解视频的概况。
(2)视频讲座。教师可对答疑解惑过程中学生所提出的问题加以总结,选择学生学习难度最大的环节,作为视频讲座的主要内容。在视频讲座开始前,教师应搜集大量资源,以解决学生普遍存在的问题为目的展开讲座,确保学生通过讲座获得更大的进步。
(3)教学内容总结。教师以一章节为一阶段,对教学内容加以总结。以第二章“数据模型”为例,教学内容总结应包括数据模型种类总结、关系代数运算的总结、关系实体及参照完整性的总结等。教学内容总结应本着简洁明了的原则展开,避免赘述,使学生清晰地了解整个章节的脉络及基础知识内容,帮助学生理清学习思路。
三、结语
中图分类号:G424 文献标识码:A DOI:10.16400/ki.kjdks.2016.02.063
0 前言
伴随着国家综合国力的日益提升,科学技术的迅猛发展,计算机技术应用于诸多领域中,并取得了相应的显著成就。在计算机应用领域中,由于其软件系统需要有强大的数据库作为有力的支持,因此数据库应用开发人员必须具备较为专业的数据库知识,以确保计算机数据库能够有效运行,促进不同行业的共同发展。如此“数据库原理”课程教学在计算机科学与技术教育中占有十分重要的地位,“数据库原理”课程教学的有效实施对于社会经济发展具有重要作用。
1“数据库原理”课程教学中存在的问题
1.1 “数据库原理”教学内容与社会实际需求脱节
“数据库原理”教学内容与社会实际需求脱节是“数据库原理”课程教学中存在的主要问题。“数据库原理”是教学中属于理论与实践联系紧密的课程,诸多教师在课程教学过程中由于受传统教学模式影响和理论教学惯性思维的影响等,在传授知识的过程中容易采用原理简介、列举实例以及开展数据习题训练的三步走教学方式,而此种教学方式的结构将致使所学习到的“数据库原理”知识与社会中对数据库实际需求缺乏紧密的联系,学生也无法将课程中所学到的“数据库原理”课程知识与系统开发实践进行有效的结合。①而目前社会中对数据库技术人的要求较高,普遍要求具有实际操作数据库的能力,因此“数据库原理”教学内容与社会实际需求脱节严重限制了“数据库原理”课程教学的发展。
1.2 缺乏有效的教学方法与教学手段
缺乏有效的教学方法与教学手段是“数据库原理”课程教学中存在的重要问题。在“数据库原理”课程教学中,部分重要的数据库理论知识点教学和具体实践操作教学,若单纯靠黑板板书或是多媒体教学,无法生动形象地将全部知识点内容呈现给学生,致使学生无法有效理解和掌握所学新知识,在学习中遇到困难时,则很容易引起学生的挫败感,在一定程度上打击了学生的自信心和学习兴趣。②另外,由于大学阶段的师生接触时间较少,教师与学生之间缺乏有效的沟通,导致教师无法对学生的学习情况和状态进行了解,针对不同的学生采取不同的教学方法和教学手段便无从谈起。③
1.3 “数据库原理”的课程考核缺乏科学的方式
“数据库原理”的课程考核缺乏科学的方式是“数据库原理”课程教学中存在的关键问题。在大学教学中,课程考核是能够反映最终教学效果的重要手段之一,课程考核在教学过程中类似于学习指挥棒,能够正确引导学生学习的方向。目前我国多数高校所采取的课程考核制度仍受过去传统考核模式影响,对学生的课程学习评价主要依据学生的考试成绩,此种考核模式并不能够激发学生的学习动机,反而在一定程度上将会起到限制学生学习的作用。④该考核模式的存在,致使部分学生以及格为学习目标,对自身能力是否提高并不过多地关心,甚至部分学生在课堂中不注意听讲,只在考试前临时背题以求及格,如此显然违背了数据库教学的初衷。而针对实践教学的考核过程,部分教师则依据学生所提交的实验报告对其进行评价,该两种考核方式不仅存在一定的局限性,同时也无法对学生进行科学客观的评价。
2 “数据库原理”课程教学改革的相关措施
2.1 科学合理地设计“数据库原理”教学内容
“数据库原理”教学内容与社会实际需求脱节,使学生在教学过程中无法学到实际有用的知识,限制了“数据库原理”课程教学的有效发展与实际应用,因此必须要科学合理地设计“数据库原理”教学内容。“数据库原理”课程教学的目标主要在于通过数据库教学,是学生能够充分理解数据库的基本原理,对数据库的相关知识进行有效掌握,熟悉计算机软件工程思想,掌握基本的设计能力和开发能力,因此“数据库原理”教学内容的设计应涵盖于数据库基本原理、数据库设计方法以及数据库应用开发等三方面。对数据库基本原理知识如数据理论和数据库标准语言等进行科学合理的设计;对数据库设计方法如数据库恢复技术以及软件工程设计思想等进行科学合理的设计;对数据库应用开发知识如数据库管理和编程开发等进行科学合理的设计。⑤
2.2 丰富教学方法与教学手段
教学方法与教学手段的缺乏导致学生无法将老师讲授的知识完全吸收,并且容易在遇到困难时产生抵触的心理,打击学生对学习的积极性,因此丰富教学方法与教学手段是十分必要的。在“数据库原理”课程教学过程中,应结合数据库教学课程中不同章节内容的不同特点,不断更新课堂中的教学手段,例如将数据教学过程中的文字、图形图像、演示录像以及动画等多种教学载体和多媒体进行有效的结合,不仅能够全面提高学生学习的积极性,同时也起到活跃气氛的作用,能够极大的改善教学效果。另外,“数据库原理”课程教学中有部分内容需要经过长期的经验积累才能够有较为深刻的理解和认识,因此在教学过程中,教师可以收集和设计较为典型的教学案例,通过在课堂中对案例的剖析,使学生能够直观深入对相关问题进行理解,提高教学效率。⑥
2.3 建立培养学生能力的考核方式
“数据库原理”课程教学缺乏科学的考核方式,在一定程度上限制了“数据库原理”课程教学的发展,因此必须要建立培养学生能力的考核方式。由于“数据库原理”课程具有其自身的特性,对课程的理论性学习与实践性学习都有较高的要求,因此教师在对该课程的考核过程中,要分为理论知识与实践能力两部分对学生进行考核,同时要加强对实践能力的考核,以避免通过传统的考核方式将学生错误地引到死记硬背相关理论知识的学习道路上。对于实践能力考核,需要建立具有科学完善的评价体系,将从各实验中提取的关键性实验步骤放入到该系统中,在每次实验课程教学结束后留出小部分时间,使学生通过该系统随机抽取实验题目并进行作答,不仅能够减轻教师的工作,培养了学生的实验能力,同时也能够在一定程度上科学客观地对学生实验情况进行评价。
3 “数据库原理”课程教学改革与探索的研究
3.1 利用计算机技术建立学习网站
利用计算机技术建立学习网站是“数据库原理”课程教学改革与探索的主要手段。随着科学技术的迅猛发展,网络信息资源日益丰富,但是由于其种类数量繁多,缺乏相应的系统性,学生无法去伪存真地对相关知识进行学习,因此教师必须成为学生在“数据库原理”课程学习中的导航,根据学生的主要学习内容对网上的信息取其精华,去其糟粕。通过利用计算机技术建立“数据库原理”课程学习的相关学习网站,其中主要包括数据库原理学习的资源库、数据库原理知识辅导答疑系统以及数据库原理作业习题批改系统等;同时,学习资源库通过对数据库原理知识相关信息的收集,也能够为学生提供较为丰富的学习资料,例如数据库原理课程大纲以及数据库原理课程学习方法等,能够有效提高学生的学习积极性,提高“数据库原理”课程教学的教学效率。⑦
3.2 改进“数据库原理”教学的辅导答疑方式
改进“数据库原理”教学的辅导答疑方式是“数据库原理”课程教学改革与探索的重要手段。在以往传统式的被动教学过程中,课程辅导答疑必须要在规定的时间内进行,因此致使诸多学生存有疑问而无法马上得到有效的指导,长此以往,学生将会逐渐失去对新知识学习的兴趣和欲望。因此为了有效提高学生对学习的积极性和兴趣,在传统固定时间辅导答疑的基础上,需要建立相应的辅导答疑系统,学生若对所学知识有疑问,可以在辅导答疑系统中所存问题,教师将能够及时解决学生的疑问,有效提高“数据库原理”课程的教学效率。⑧
4 结语
本文分析了“数据库原理”课程教学中存在的问题,即:教学内容与社会实际需求脱节;缺乏有效的教学方法与教学手段;缺乏科学的考核方式。随后提出了“数据库原理”课程教学改革的相关措施,如:科学合理地设计教学内容;丰富教学方法与教学手段;建立培养学生能力的考核方式。并着重对该课程教学改革与探索进行了深入分析,具有实际参考价值。
注释
① 韩存鸽,李玲瑞.应用型本科“数据库原理”课程教学改革探索[J].安阳工学院学报,2013.3(6):108-110.
② 王乐球,周文琼,路永和.“数据库原理”课程教学改革与实践[J].软件导刊,2014.5(2):168-171.
③ 郭媛,滕艳平,王海珍,等.高校数据库原理课程实践教学改革研究[J].高师理科学刊,2013.7(1):84-86.
④ 刘梅彦,徐英慧.基于计算思维的《数据库原理及应用》课程教学改革与实践[J].软件导刊,2015.9(3):194-196.
⑤ 祝振欣.高校数据库原理课程的教学改革探索[J].产业与科技论坛,2015.1(20):165-166.
随着计算机在工作和生活中的应用越来越广泛,计算机技术已广泛应用于社会生活的各方面。数据库技术是随着计算机科学技术的发展的需要而产生的,是计算机科学与技术领域中发展最快应用最广泛的领域之一,经过多年的发展该技术已经形成了比较完整的理论体系和非常广泛的应用系统。目前,各高职院校已将《数据库原理及应用》这门课程列为高职教育中计算机类专业的骨干专业课程。
《数据库原理及应用》作为高职高专院校计算机类专业的一门重要的专业课,课程本身比较抽象,而数据库技术又是计算机科学中最活跃、应用最广泛的内容之一,其教学主要任务就是要通过课堂教学和课后实践练习,使学生能够较全面的掌握数据库系统的基本概念、基本原理和基本方法,初步掌握数据库的设计方法,并能初步具备用数据库技术解决实际问题的能力。当前本课程的教学还存在着一些问题,因此对其进行改革势在必行。
一、《数据库原理及应用》课程目标
本课程系统地介绍数据库的原理知识,并结合具体的数据库管理系统软件(Access)来介绍原理的应用过程。通过这门课程的学习,使学生掌握数据库应用系统开发方法,在数据库软件开发的过程中能够选择正确的开发平台,正确地、合理地进行数据库设计,能有效地使用数据库技术解决数据处理中的实际问题,从而提高软件开发的整体质量。
二、《数据库原理及应用》教学内容
《数据库原理及应用》的课程内容牵涉的范围是比较广,其主要包括关系数据库理论知识、Access数据库的设计和管理以及数据库应用三方面。而传统的教材编辑往往以理论为主,整本书主要介绍了有关数据库的基本概念,实际的综合操作应用内容较少,而实际应用是非常关键的。面对这种情况,教师应在总体上把握,抓住主脉络把学生尽快地引导到学习的主干上来。一旦把基础打好,教师就可以适当举些实例,将所学的内容联系到实际中去解决问题,这样就可以保持知识的连贯性,并且可以加深学生们对所学内容的理解。
三、目前的《数据库原理及应用》教学现状及其存在的问题
现在高职高专院校都开设了数据库技术这门课程,教学的内容和教学方法也大体相同,并且大都呈现出同样状况,学生的学习状态不佳,学习目的不明确,导致学习效果不理想,在实际应用的过程中无从下手。目前的高职高专院校的《数据库原理及应用》的课程的教学方法和教材大部分照搬普通本科院校,不适应高职院校教学发展的需要。在教学过程中存在如下几个方面的问题:
1.教学内容陈旧
传统教材主要以关系数据库Access为例介绍数据操作及数据库编程,内容包括:Access数据库的基本操作和七个对象的基本操作,结构化查询语言SQL,关系数据库理论等内容。由于教材编写时间相对较早,其中的许多理论和技术在实际中已经没有或很少得到应用,并且七种对象的综合应用部分少;另一方面,教材中大部分程序设计和命令对高职院校大一学生来说较难理解。2.实践教学环节重视不够
目前实验课教学存在很多弊端,如:学生不明确实验目的,实验的内容不清楚,实验环境不方便,考核中实验课占的比例小。博士论文,Access。课程设计时间少,大多数学生为了完成任务,只有仿照参考书上的案例用开发工具去实现,甚至互相拷贝修改,没有经历软件开发的系统分析过程,如:需求分析、概念结构设计和逻辑结构设计。
3.课程考核方式不合理
课程的评价方式一般是笔试考试和课程设计。但课程设计考核方式一般是只提交电子版本实习(实验)报告和所做的软件系统,这种方式难以避免学生相互复制或从网络上下载等现象。并且传统的考试制度使大部分学生死记硬背,不会灵活运用所学知识。
四、改革《数据库原理及应用》课程教学的几点思考
针对目前普遍高职高专院校的《数据库原理及应用》课程的教学体系存在的不足,只有通过教学内容的整合与优化,并以课堂教学环节、实践教学环节、考核方式的改革相配合,建立一个合理的教学体系,才能提高学生的学习兴趣,提高学生在数据库技术课程应用中分析问题和解决问题的能力,促进教学质量的提高。
1.课程目标与内容体系的改革
《数据库原理及应用》课程的最终目标是培养学生使用数据库技术解决实际应用中的各类问题。因此,该课程的教学不仅要让学生理解数据库的基本概念和基本原理,掌握数据库设计的方法,更重要的是培养学生逻辑思维和逻辑推理的能力、自学能力、动手能力、分析问题和解决问题的能力、创新意识和创新能力;此外,在完成课程没计和课题开发的同时,还要培养学生的团队协作精神。博士论文,Access。创新的具体实施和体现是在课程的内容体系上,本课程的内容体系以厚实的基础为原则,处理好传统与现代、理论与实践、知识与创新的关系,保持教学内容的完整性、先进性。
该课程内容体系的主要特点是:(1)理论教学与实践操作相结合。在理论教学的基础上,配以一定数量和较高质量的习题练习,强化了学生对具体问题的分析设计能力,教学实践起到了触类旁通、事半功倍的效果。(2)强调实务操作的真实性。教材中的练习基本上都是理论,为了让学生在一个实践课中能充分利用有限的时间,课程组组织编写了与教材配套的《数据库原理及应用实训指导》,在实训过程中,要求学生严格按照实训步骤进行,不断提高动手实践能力。(3)强化数据库应用系统的开发能力。该课程的最终培养目标是让学生在理解数据库理论的基础上,掌握数据库应用系统的开发与设计。博士论文,Access。为此,课程组安排了课程设计、毕业设计及课题开发等实践环节,让学生在大量的实践过程中掌握数据库应用系统的设计方法,培养学生的数据库应用能力、创新能力和团队协作精神。
2.编写新的教材,更新教学方法
为了使学生掌握流行的数据库管理软件,我们重新编写了新的教材,参加编写的人员都是长期从事数据库技术教学第一线的教师,在总结多年教学经验的基础上,选用了Access这种数据库管理系统作为教学示例软件,同时Access也成为全国高等院校计算机等级考试中的二级考试内容。Access数据库是Office办公系列软件的主要组件之一,是一种为数据库管理和应用程序开发而设计的面向对象的可视化程序设计语言,不仅能使编程人员从复杂的工作中解脱出来,而且在程序开发上不再需要过多地与语言打交道,可视化的开发过程使原先以编码为主的开发变为以操作为主的开发,从而极大地提高了开发效率,缩短了开发周期。在教学过程中,针对数据库技术发展迅速、内容丰富和实用性强的特点,总结出“理论与实践并重,体现案例教学”这两条原则和三种授课方式:课堂理论讲授、机房上机实践和学生分组分项目完成项目练习。
通过这样的教学方法提高学生的学习兴趣,培养学生团队合作精神,加强学生对数据库技术的掌握。案例教学起源于哈佛大学商学院,它是一种与传统教学的“概念——理论——应用”模式完全相反,采用“案例——理论和概念”模式的教学方法。通俗地讲,案例教学是通过对具体实例的演示、讲解,让学生对案例进行分析、讨论、交流,充分表达自己的见解,以达到高层次认知学习目标的一种启发式教学方法。案例教学的过程主要步骤如下:(1)教学案例的选择与设计;(2)案例分析与讲解;(3)课堂讨论;(4)综合讨论结果,得出结论。
3.完善考核制度,重视能力培养
《数据库原理及应用》这门课程要求学生既掌握一定的理论知识,也能熟练运用一种数据库管理系统软件。博士论文,Access。传统的单独理论试卷考试会导致学生为应付考试而对相关理论知识在考前临时突击,死记硬背,出现“高分低能”现象,这与该课程培养应用型人才的目标是相悖的。博士论文,Access。为此可以采用理论笔试与平时实践各占一定比例的考核方法。博士论文,Access。平时实践分项目实践可以督促学生增强自己的动手能力和对所学知识进行应用的能力,理论考试采用机考的形式,通过考试系统软件随机生成试卷,使相邻学生的试题摘要素的综合改革和建设。
五、结束语
随着数据库技术的不断发展,知识的不断更新,即使在现在看来是比较合适的教材,教学方法等在经过一段时间之后,也可能显得过时和落后。因此,我们应经常进行教学研究讨论,在教学过程中,认真思考、积极探索,使此门课程的教学水平有进一步的提高。
参考文献:
[1]王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006.5
[2]雷红艳,邹汉斌.数据库原理课程教学方法改革探讨[J].电脑知识与技术,2007,1:1766-1768
中图分类号:G642文献标识码:A 文章编号:1009-3044(2007)05-11445-01
1 引言
根据《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》数据库系统原理课程是计算机科学与技术、计算机工程、软件工程及信息技术专业方向的核心课程,主要研究信息模型与信息系统、数据库系统、数据建模、关系数据库、数据库查询语言、关系数据库设计、事务处理等核心内容。其中还包括分布式数据库、物理数据库设计、数据挖掘、信息存储与信息检查、超文本和超媒体、多媒体信息与多媒体系统、数字图书馆等选修内容。关系数据库理论与设计是整个数据库系统原理课程中核心中的核心内容。根据笔者近二十年对数据库课程的讲授经验,从关系数据库原理课程的教学内容出发研究数据库课程的教学方法。
2 认真分析研究教材,注重学科联系
数据库是研究数据处理技术的一门综合性的学科,它涉及到离散数学、数据结构、操作系统、软件工程、计算机原理及其它应用领域的知识和方法相结合的学科。在关系代数和关系演算中,用到离散数学的理论;在研究数据的物理组织时,用到数据结构的相关知识;在研究事务的并发时,用到操作系统的理论和方法;在进行数据库设计时,用到软件工程的原理和方法;在讲授数据库系统的组成时,用到计算机原理等方面的知识。由于学科的交叉性,突出了数据库课程在整个计算机学科中的重要地位。
由于大部分学校在讲授数据库系统原理前开设了Visual Foxpro 6.0程序设计课程,它属于原理的应用部分,是关系数据库的产品之一。教师在进行课程讲授时,要结合理论讲清Visual Foxpro6.0应用了数据库的哪些原理。如数据表来源于规范化理论或者模式分解理论,Visual Foxpro6.0讲的数据表、记录、字段(数据项)和原理中讲的关系、元组、属性是同一个概念的不同名称等。
3 注重基本概念教学,为理论学习打好基础
3.1 弄清概念之间的区别与联系
在数据库课程的教学中,掌握好基本概念对理论课程的学习很有帮助,数据库中的有些概念贯穿在课程的始终,这些概念的掌握对整个课程的学习有很重要的作用。如数据库、数据库系统、关系、元组、实体、属性、事务、完整性约束等。有的概念联系比较紧密,弄清概念之间的联系与区别,对概念的掌握有较大帮助。如实体和属性的概念,实体是客观存在并可以相互区别的事物,属性是对实体特征的描述,它们之间有必然的区别,但是也有一定的关系。实体和属性不是绝对的,如果属性需要进一步描述,则属性就作为实体,反之如果实体不需要再进一步描述,则实体也可以作为另一实体的属性。如在考虑学生管理数据库时,政治面貌如果只考虑现在的情况(党员、团员等),则政治面貌就是学生实体的属性,但是如果考虑学生何时入团、何时入党,则政治面貌就是一个实体。再如事务和程序的概念等都有较强的联系。
3.2 掌握概念定义的前提和层次性
数据库中的概念由渐入深,随着课程教学内容的逐渐深入一些基本概念也更加具体和完善。例如在课程中,有四个地方都定义了码,在介绍概念模型时,码定义为:唯一标识实体的属性集。在研究关系模型时,码定义为:表中的某个属性组,它可以唯一确定一个元组。给出了码的粗略描述,没有实质性的量化定义。而在关系数据库中,讲授关系的形式化定义时,码定义为:若关系中某一属性组的值能唯一的标识一个元组,则称该属性组为候选码,若一个关系有多个候选码,则选中一个为主码。在讲授规范化理论时,学习了函数依赖后,利用函数依赖的概念定义码为:设K为R中的属性或者属性组合,若KU则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。从理论上来说,这四个概念都是正确的,但一个比一个更具体、更严密、更准确。
同样在对函数依赖讲授时也采用了同样的手法,在关系数据理论中函数依赖定义为:设R(U)是属性集U上的关系模式,X、Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或者Y函数依赖于X,记作XY。为了便于Armstrong公理的证明,对函数依赖又给出了定量的描述。定义为:若对于R(U)的任意一个可能的关系r,t和s是r的任意两个元组,X、Y是U的子集,若对于任意一个t[X]=s[X],必然有t[Y]=s[Y],则称X函数确定Y或者Y函数依赖于X,记作XY。教师要讲清楚对同一概念为什么这样处理,这些概念层层的描述有什么好处。掌握了同一概念的不同定义,便于对这些概念的深入理解。
4 注重理论与实践的结合
4.1 注重动手能力,搞好课程实验
学习数据库课程的主要目的是为了应用,结合所学的数据库语言搞好每一章的课程实验,以便验证所学理论是很重要的。如在讲授SQL语言时,让学生建立一个数据库,并结合所学内容做查询、插入、删除、修改等实际操作,真正理解和掌握SQL语言的应用环境。在讲授数据库安全性和完整性时,利用实际系统让学生对系统做数据控制。提高学生对数据库课程的认识,激发学生的学习欲望。
4.2 加强课程设计,提高学生综合能力
数据库设计理论主要是为了指导数据库实践,通过系统的理论学习和部分单元训练,通过课程设计让学生掌握数据库设计的全过程,并进一步掌握数据库课程。课程设计是数据库中必不可少的,我采取将学生分组的方式每5-6名同学一组,为每组同学拟定一个题目,如图书管理系统、学生档案管理系统、销售管理系统、能源管理系统等,教师提出要求让学生深入图书馆、学生管理部门或者企业进行系统调查,进行需求分析设计出数据流图,编写数据字典,然后进行概念结构设计,从数据流图和数据字典中提炼出E-R图,再进行逻辑结构设计、物理结构设计、数据库实施和维护的设计。让每一位同学明确数据库设计的过程,使每一组同学进行上机调试,使所有功能进行程序实现,最后让同学们进行设计答辩。
通过课程设计和设计答辩,学生巩固了理论知识,丰富了课程实践,掌握了如何运用理论指导实践,也对今后其它课程设计以及毕业设计和毕业论文的书写打下了基础,收到较好的效果。
4.3 扩展学生思路,向学生传授新知识
由于课本的出版周期长,更新也较慢,也由于课本编写的一些要求,所以课本上有些内容是陈旧的,对有些问题也不可能全面的介绍,有些新知识也很难溶入到教材中。我在讲授课程时,除了给学生有意补充新知识外,又给学生开设了“数据库中的空值问题”、“数据仓库和数据挖掘技术”、“目前数据库的研究方向”、“数据库的查询优化问题”等专题讲座。扩充了学生的视野,激发了学生的兴趣,为他们今后的学习和研究打下了一定的基础。
5 结语
数据库系统原理课程是计算机专业的核心课程,随着计算机科学的发展,数据库系统原理课程也在不断的发展,教学内容不断更新,教学方法也在不断改革,所以课程教学改革是一个永恒的课题。只有不断的改革教学方法和教学手段,才能使教学更加丰富,使学生学到更多的知识。
参考文献:
[1]教育部高等学校计算机科学与技术教学指导委员会编制.高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》[M].北京.高等教育出版社,2006.
1 前言
《数据库原理及应用》计算机专业课程之一,是一门必修课程。需要学生对程序设计、数据结构、操作系统、软件工程等知识有比较全面的了解,才能深入、透彻地领悟数据库系统的基本原理、基本方法、实现技术和应用技术,从而利用数据库完成复杂信息系统的设计和开发。多年来,数据库技术不断发展、创新、完善,并广泛应用于社会各行各业。目前绝大多数计算机应用都需要数据库技术的支撑,数据库已经成为信息系统的基础和核心。下面就针对这几年的教学谈谈我的一些感受。
2 明确课程特点与教学重要性
任何一门课程在教学以前都要明确课程的特点及重要性,这样在教学过程才能有的放失,此课程是一门综合性课程,有很明确的特点。
1)课程内容多,涉及面广。包括数据库基本概念、理论、关系运算、关系规范化基础、结构化查询语言SQL、数据库应用系统设计、SQL Server数据库管理系统概述和SQL Server数据库简单应用等。
2)就数据库基础而言,只知道理论的知识还远远不够,还要学会将理论知识转化为实际操作,为后续的一些课程的学习打下扎实的基础。
只有明确了这些,才能在教学过程中制定出严密的教学大纲,针对应用编写上机实验指导教材等等,使用学生真正领会、学会数据库知识。
3 重视基础理论与实际应用相结合
1)注重理论知识与实际操作相结合
数据库原理的理论并不是空洞、抽象的理论,它的许多实现技术都是来自于实际需要,并是通过前人研究和不断完善获得。数据库中的的概念应该在实际数据库中得到体现,因此,教学中要把数据库的基本概念、原理、和实现技术与数据库实例相结合,通过分析数据库实例来加深对原理的理解。学生在学习此门课程之前,对数据库的知识几乎是空白,所以对于每一节课的内容,教师要领悟其知识点,熟悉本次课与前面学习过的内容有哪些联系,与后面的章节有哪些联系等,如在讲到数据库三级模式时,对外模式、模式和内模式的概念以及二级映射的概念问题,刚开始学习的时候学生会感到非常抽象,但学到后面SQL数据库的建立,表的创建及视图的使用时,再让学生体会数据库三级模式的内容,学生们就会感到豁然开朗。
2)实验课是数据库教学的重要环节
《数据库原理及应用》除了可以在理论教学中借助实际的数据库实例解释外,还必须通过实际操作的手段来实现。从教学角度来讲,理论的知识要在具体的上机实验中检验后才能使学生真正理解和掌握。为此,整个教学环节中贯穿了关系型数据库SQL Server在各种理论知识的应用。通过上机,完善了对数据库中DDL、DML、DCL的了解和掌握。
a.对于SQL Server的安装最好采用网络版,让学生通过对SQL Server的使用,明确什么是C/S结构,扩大其知识面。
b.老师要做好上机指导资料,有明确的目的,让学生知道这是哪个知识点,在实际中如何得以了体现,同时要做好辅导工作,学生上机时,教师应随时观察学生的上机情况,并及时给予指导,当然这要注意方法,一些内容可以只给学生一些提示,适量鼓励有能力的学生超前发展。
4 注重改进教学方法和教学手段
时性从现今形势和未来的发展来看,传统的教学方法和手段已经适应不了数据库技术的新发展和新应用。因此,对于《数据库原理及应用》这门课程的教学改革已势在必行。
1)教学手段的改革
在教学过程中,教师应转变观念,走出传统教学模式的束缚,积极探索现代化的教学方法和手段。随着面向对象技术的产生和发展、传统的黑板教学方式,已完全不能满足教学的需要。采用计算机教学辅助软件CAI通过计算机形象地、动态地模拟教学中所讨论的许多抽象概念和看不见的过程,达到帮助学习者理解和掌握基本知识与基本概念的目的。这对于提高教学质量,增强教学效果,提高学生的学习兴趣都大有裨益。
2)教学方法的改革
在教学方法上:首先,实行以学生个别学习为主,教师辅导为辅的教学模式。改变以往纯粹老师讲解,学生被动接受的方式。分组学习,分组讨论,充分调动学生的学习积极性,开发个人潜能。其次,该课程理论性和实践性均强,要求学生勤学多练,除掌握SQL语言对数据库的管理操纵外,还应根据学生的实际情况,具体介绍一类数据库开发技术,增加上机实验时数和加大程序验收力度。通过课题练习,培养学生的软件开发能力和相互协作的精神,比如《学生成绩管理系统》、《工资管理系统》等数据库管理软件的设计和开发。最后,将课程学习与毕业设计相结合。在课程学习的同时,要求学生在教师的指导下自学一种重要的数据库系统的应用技术(如SQL Server,Oracle等),掌握相关知识,熟悉数据库设计方法,并能在教师的指导下完成毕业设计工作。只有在具体技术的应用中,才能真正深入地理解《数据库原理及应用》里的相关知识和内容,也才真正达到了学以致用的目的。
3)走近学生,注重课堂教学互动性
教与学,本身是一个互动的过程。教师应该经常了解学生在学习中碰到的困难,并及时反馈到教学中。如在教学中了解到学生对码的判断及对关系规范化理论中第一范式、第二范式、第三范式……的判断感到非常头痛,针对这一问题,除了要求学生掌握各个范式的基本特点外,重要的是把书本上的知识转化为自己的知识,通过知识点的贯通,及时把这个问题转变为较简单的属性之间的联系,再配以适量的练习,让学生举一反三,灵活变通,大多数学生终于攻克了此难题,同时增加了学生学好数据库这门课的信心,激发了同学们学习的兴趣。
针对关系规范化这一概念比较难,首先给出每个范式的定义,画出各种范式之间的关系图(如图1所示)。
1NF:非主属性函数依赖于码
2NF:非主属性完全函数依赖于码
3NF:非主属性既不部分依赖于码也不传递依赖于码
BCNF:所有属性都不部分依赖或传递依赖于码,所有决定属性集都包含码
然后结合例子依次详细阐述,当讲到第三范式的时候,给出这样一个关系模式:Student(学号,姓名, 年龄, 所在系,系联系电话),主关键字为"学号",因为存在如下决定关系:学号姓名, 年龄, 所在系。很明显,这个数据库是符合2NF的,因为它的所有非主属性都完全函数依赖于码,但是不符合3NF,因为存在如下决定关系:学号所在系系联系电话。即存在非主属性“系联系电话”对主关键字“学号”的传递函数依赖。这样会存在数据冗余、更新异常、插入异常和删除异常的情况。如果把关系模式分解为:学生表(学号, 姓名, 年龄, 所在学院)和系(系名, 电话),这样的数据库表就符合第三范式,消除了数据冗余和操作异常。
此外,学生作为接受知识的对象,其可塑性很大。上课时,老师应尽量避免唱“独脚戏”,要注意与学生的互动,适时地提出问题,积极调动学生的思维,让学生参与到课程中来。平等式的、互动式的教学比一言堂、满堂灌输式的教学方式更加受学生的欢迎。
总之在计算机技术和信息处理技术日新月异的今天,对于本课程的教学和数据库技术的发展和应用,已远远不止于此。作为教师要博览群书,不断学习,不断创新,培养出更多适应现在非速发展的信息社会。
参考文献