HI,欢迎来到学术之家,期刊咨询:400-888-7501  订阅咨询:400-888-7502  股权代码  102064
0
首页 精品范文 数据库原理

数据库原理

时间:2023-02-01 04:25:04

数据库原理

第1篇

关键词:关系数据库 会计账务数据库 结构分析

数据库是以某种数据模型所确定的数据结构方式来组织和存储某个组织(或部门)相互关联的数据集。数据库管理系统是一种帮助用户建立、使用、管理和维护数据库的计算机系统软件。

一、数据模型及其建立

数据模型是对现实世界数据特征进行抽象的工具,用来描述和处理现实世界中的数据和信息。数据模型要能较真实地模拟现实世界,既要便于人们理解,又要便于在计算机上实现。数据模型主要由数据结构、数据操作、数据完整性规则三个部分组成。数据结构描述了组成数据库的基本成分;数据操作描述了对数据结构允许执行的操作集合;完整性规则描述了对数据结构所具有的约束和存储规则。

二、关系数据模型结构及数据库中的数据文件之间的对应关系

下面我们通过会计科目代码表来介绍关系数据模型的基本概念及其与数据库中的数据文件之间的对应关系:

(一)关系、二维表、数据文件。关系数据模型中用关系来表述现实世界中能够相互区别的要管理的数据对象集。每一个关系都有一个关系名和一组表述其特征的属性集,人们就是通过这些属性集区别不同的关系。如记账凭证、会计科目、总账都可以称之为关系,它们都是要管理的数据对象集,都有各自的属性集。一个关系用一张二维表表示,表名对应关系名。二维表由有限个不重复的行组成,表中的每一列不可再分。一张二维表在关系数据库中用一个数据文件存储。

(二)记录。二维表中的每一行称为一个记录,描述了关系中一个具体的个体,在数据文件中是一个记录值。如表中第一行为现金账户的记录,描述了现金账户在会计科目代码文件中所有属性的取值(特征)。

(三)属性、列、字段。二维表中的每一列是一个属性,描述了关系的一个特征。一个二维表的所有列构成了一个关系的属性集,通过它可以区别不同的二维表(关系)。二维表中的每一列的数据属于同一类型。每一列的列名对应关系的属性名,同时对应数据文件中的字段名。如表中用6个列表示会计科目代码的属性,其中第三列表示属性“科目性质”,当某条记录取值为1时,表示是资产类科目。

(四)主码、主关键字。指二维表中的某个列(属性)或某几个列(或属性组),它们的值能够唯一确定表中或数据文件中的一个记录。如表中的“科目代码”属性可以作为主码(或主关键字),用来唯一识别表中的每一个会计科目。

(五)域。描述二维表中每一列属性或数据文件的某一字段的取值类型和范围。表中每一列的列名下面的括号中的内容表示该列的取值类型和范围,其中第四列“底层明细标志”表示某个科目是不是最底层明细科目(不再有下层科目),只有两种取值T(真)和F(假)。

(六)关系模式。一个关系模式由一个关系名及它所有的属性构成,它对应一个二维表的表名和表头栏目行(列的集合),构成了一个二维表的框架,同时也是设计该二维表的数据文件结构的依据。

三、关系数据模型的数据操作(二维表)

从数学的角度看,关系数据模型的数据操作是基于集合的操作,操作对象和操作结果都是集合。从数据处理的角度看,数据操作的对象和结果都是二维表。对二维表的操作主要有:

(一)对表中的行(记录)进行操作。指对一张表中指定范围的记录进行有条件的操作,操作的结果组成一张新表。例如,从“会计科目代码表”中筛选出资产类科目组成新的“资产类科目代码表”,操作的范围是整个“会计科目代码表”,条件是“科目性质等于1”。对表中的行进行操作后的结果表的结构与原表相同,记录数小于或等于原表。

(二)对表中的列(属性)进行操作。指对一张表中指定的列进行有条件的操作,操作的结果组成一张新表。例如,从“会计科目代码表”中选出“科目代码”、“科目名称”两列,组成新的科目代码对应表,新表只有“科目代码”和“科目名称”两列。显然,列操作后的结果表的结构与原表不同,结果表小于或等于原表。

(三)连接。对两张表或多张表进行有条件的连接操作,生成一张新表。连接操作后的结果表大于等于操作前的表。

从应用的角度看,对二维表中的数据操作功能主要包括更新(增加、修改、删除)数据和检索(查询)数据,即对二维表填入和修改数据,并从表中检索出数据进行加工应用。

四、关系数据模型的数据完整性规则

数据完整性是指数据库中存储的数据是有意义的或正确的。关系数据模型中的数据完整性规则是指对二维表的定义和操作过程中要遵循的某些约束条件。主要包括:

(一)实体完整性。指每张表都必须有主码,而且表中不允许存在无主码值的记录和主码值相同的记录。每一个记录都必须有科目代码,并且不能有相同科目代码的记录和无科目代码的记录。

(二)参照完整性。指一张表的某列的取值受另一张表的某列的取值范围约束,描述了多张表之间的关联关系。例如,记账凭证表中的“科目代码”列的取值受到会计科目代码表的“科目代码”取值范围的限定。

(三)用户定义完整性。指针对某一具体应用定义的数据库约束条件,反映某一具体应用所涉及的数据必须满足应用语义的要求。即限制属性的取值类型及范围,防止属性的值与应用语义矛盾。

五、关系数据模型得到的启示

(一)数据的二维表及二维表之间的关联设计。基于关系数据模型的会计账务数据库是以二维表为基本部件构建的,数据库中的每一个数据文件对应一张二维表,数据文件之间的关联也可以用二维表之间的关联来表示,对二维表的定义和数据操作必须满足数据完整性约束条件。构建一个会计账务数据库首先要将会计账务管理的对象,如会计科目、记账凭证、日记账、明细账、总账及它们之间的关系抽象成二维表的形式,弄清了它们的二维表结构也就弄清了它们的数据文件结构,即电子账结构。因此,会计账务数据库结构设计可以转变成会计账务数据的二维表及二维表之间的关联设计,而一张二维表的表头栏目(属性集)反映了表的结构特征,是设计数据文件结构的依据。

(二)关系数据库管理系统软件版本。依据关系数据模型研发的关系数据库管理系统是开发和管理会计数据库系统的工具软件,也是支持所开发的会计数据库系统运行的平台,任何一个会计账务数据库都必须在某一个关系数据库管理系统的在线管理下运行。由于不同的数据库软件公司提供的关系数据库管理系统软件的各个版本的功能强弱、所适应的计算机系统的运行环境(单机、网络等)、所提供的对表的操作命令等都有所不同。

参考文献:

[1]王新明、郑春玲.基于关系数据库策略驱动的网络安全评估系统[J].计算机工程与应用,2004,40(2):15.

第2篇

关键词:数据库原理;教学大纲;改革;探讨

一、引言

数据库技术是计算机科学中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机应用系统的核心技术和重要基础。所以本课程在计算机专业课程体系中处于十分重要的地位,不仅能使学生对数据库技术的基本原理有一个全面的掌握,更能为使用和设计数据库应用系统打下良好的理论基础。但由于课时有限与学生自身学习情况等原因.使用传统教学方式,普遍导致了学生学不精、学不透的现象。为此,对河南科技学院计算机专业《数据库系统原理》课程教学大纲进行了改革。我们总结出原《数据库系统原理》课程教学存在的问题,以及我们针对出现的问题进行一系列教学改革,就《数据库系统原理》课程的教学现状、教学内容等方面来进行了实践研究和探讨。

二、本院计算机专业《数据库系统原理》课程的教学现状

数据库系统原理是计算机专业的核心课程.根据教学计划安排.开设在大三上学期, 课程采用由萨师煊、王珊主编的《数据库系统概论》(高等教育出版社)教材第四版,目前在教学的过程中,发现以下几个方面需要加以提高和改善。

(一)教材理论内容多。我们采用的是由萨师煊、王珊主编的《数据库系统概论》(高等教育出版社)教材。主要从数据库内部的基本原理入手,介绍了数据库发展的基本理论、技术和方法,主要包括了数据库模型和结构、关系数据库系统、关系数据库标准语言SQL、关系数据理论、数据库设计、数据库恢复和并发控制等内容, 其中理论内容多,实践内容比较少,很多学生反应有些知识光凭课堂的讲解,很难接受,很难吸收。

(二)实践课时少。数据库技术在如今的社会中,动手能力是非常重要的,要提高学生的动手能力,就要增加学生的上机实践操作实践。根据现有的教学大纲和教学计划安排,《数据库系统原理》这门课程的理论学时是64个,实践课时只有l6个学时。由于上机实践时间有限,学生的上机实践操作都是一些炎症性实验,主要是对上课的某部分内容进行实验。学习的内容比较松散,没有连贯性。缺乏全面地对数据库内容进行综合设计实验的机会。

(三)实践内容与教材不匹配

在目前的数据库教材中,所用的数据库管理系统(DBMS)是Kingbase数据库,该数据库是要花钱购买才能使用的。实验室所用的系统式SQL SERVER 2005,由于两种DBMS之间的语法结构差异,使得学生在教材中看到的知识,只能领悟其中的思想,但是教材上的实验无法在实践中得到验。不仅如此,学生而且还要再去掌握另一个DBMS的基本语法结构。这就更加增大了学生学习该课程的难度。

(四)教材内容滞后

对于数据库技术来说,在计算机领域中的发展是相当快的,但是教材中的内容,对于数据库的设计来说,只是用简单的SQL语言创建数据模型,但是现在流行的关键技术存储过程还有触发器都讲解的比较少,学生无法从教材中详细的学到这些方便的新知识。

(五)青年教师自身经验少

计算机专业是一个逐步发展起来的新专业,大部分还是以青年教师为主。青年教师很多都是直接从高校毕业就参加工作,对于数据库技术实践还有理论技术的掌握程度不高,使他们传授的知识有一定的限制。

三、本院计算机专业《数据库系统原理》课程教学改革的探讨

为了让学生更好的学习和掌握数据库这门课程.我认为在专业课程教学改革过程中,有必要对该课程采取一定的改革措施,来逐步完善数据库课程的教学工作。一下是本人总结出来的几点建议,希望和大家一起探讨

(一)教学大纲的修订

结合自己多年的上课经验,对现有的教学大纲还应该进一步改革,旨在提高学生的实践动手能力,让学生充分、系统、全面的掌握数据库系统创建的整个过程。

(二)合理选用教材

目前数据库方面的教材各种各样,以原理为主的教材就有点脱离实践,而以实例为主的教材又很难满足学生的理论知识,所以到目前为止还没有找到一本完全适合本院计算机专业数据库课程的教材。所以我认为有必要组织软件教研室所有相关教师,特别是有数据库实践经验的老教师一起,结合本院的教学特点和以往的教学经验,编写一本适合自己的教材。

(三)改善实践环境和提高实践设备

实践能力的培养是数据库原理及应用教学中一个非常重要的方面 由于数据库技术发展非常快,数据库管理系统(DBMs)更新也非常快,采用的新技术比较多,实验课程必须紧跟当前数据库技术的发展,我认为应该对学生的实践环境和设备提出新的要求,比如引进更先进的DBMS等。

(四)加强学生和教师之间的沟通

学校给每位老师都提供了网络教学平台,这是一个非常好,非常方便的交流平台。教师可以利用它进行作业、在线答疑、教学视频,让教师在办公室或家中,为学生提出的问题进行答疑解惑。有效提高了学生与教师之前沟通问题 并且通过网络教学平台,学生之间也可以通过合作学习模式加强学习的兴趣。

(五)提高教师的自身经验

由于数据库的发展非常迅速,原有的数据库技术知识渐渐落伍。因此,在传授新知识、新技术的同时,也需要加强自身的研究工作,跟踪学科发展的前沿方向。学院应根据各专业自身发展特点,不断完善教师培训计划,每年组织教师参加全国高校教师精品课程培训,并请专家教授来院做相关新知识的讲座。

四、结束语

以上是本人对数据库原理这门课程的教学现状进行的分析,也对该课程的改革提出了自己的建议,希望这些建议能和大家一起探讨,共同进步。

参考文献:

[1]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2000.

[2]翟中.数据库教学方法的改革的探索与实践[J].黑龙江高教研究,2009 .

[3]吕静.高职院校中ORACLE数据库管理课程教学改革与探索[J].中国新技术新产品,2010.

[4]王海燕.基于SQL SERVER 2005教学方法研究[J].科技资讯,2010.

[5]郭春光,王海茵.Vi s u a l f o x p r o 数据库课程教学思考[J].科技创新导报,2008.

第3篇

关键词:数据库,Access,教学改革

 

随着计算机在工作和生活中的应用越来越广泛,计算机技术已广泛应用于社会生活的各方面。数据库技术是随着计算机科学技术的发展的需要而产生的,是计算机科学与技术领域中发展最快应用最广泛的领域之一,经过多年的发展该技术已经形成了比较完整的理论体系和非常广泛的应用系统。目前,各高职院校已将《数据库原理及应用》这门课程列为高职教育中计算机类专业的骨干专业课程。

《数据库原理及应用》作为高职高专院校计算机类专业的一门重要的专业课,课程本身比较抽象,而数据库技术又是计算机科学中最活跃、应用最广泛的内容之一,其教学主要任务就是要通过课堂教学和课后实践练习,使学生能够较全面的掌握数据库系统的基本概念、基本原理和基本方法,初步掌握数据库的设计方法,并能初步具备用数据库技术解决实际问题的能力。当前本课程的教学还存在着一些问题,因此对其进行改革势在必行。

一、《数据库原理及应用》课程目标

本课程系统地介绍数据库的原理知识,并结合具体的数据库管理系统软件(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

[3]宣军英.浅谈数据库原理的教学方法[J].嘉兴学院学报,2006,(3)。

第4篇

摘 要:本文结合计算机信息管理课程的教学实践经验,以技工院校数据库原理及应用课为例,对课程教学中存在的问题进行剖析,在此基础上,提出改革措施。

关键词 :计算机信息管理 技工院校 教学改革

数据库原理及应用课程的实用性和操作性比较强,在讲授该门课程时应该特别注意理论与实践相结合,提高学生数据库应用能力。传统教学方法存在偏理论、轻实践,教学手段和教学方法单一,教学内容脱离学生实际以及考核方式简单等问题,已经不能适应教学目标以及社会发展的需要,因此对传统课程教学进行改革已经迫在眉睫。

一、数据库原理及应用传统课程教学存在的问题

1.重理论、轻实践

传统的课程教学,许多老师的教学重点还是放在传授知识上,而对学生“学”的怎样并不重视。许多老师只是简单地依照教材从头讲到尾,偏重理论知识的传授,而对于其中一些对学生难以理解与掌握的知识,不加以处理,长期累积,学生容易形成厌学情绪,失去进一步学习的动力。另外,由于教学偏向理论知识,老师很少结合实际向学生讲解数据库技术的应用,导致学生不能将所学的知识应用于实践。

2.教学手段和教学方法单一

传统课程教学的教学手段和教学方法单一,导致课堂气氛沉闷,学生学习兴趣不高。比如在传统课程教学中讲授命令与函数使用规则时,先对书本上的例题加以说明,然后学生练习巩固提高。在这一过程中,传统课程教学存在以下问题:第一,采用这种方法讲授命令与函数的使用规则,学生不能真正感觉到实现性;第二,教学脱离实践,学生很难理解理论知识,产生难学和抽象等思想障碍,久而久之失去学习兴趣。

3.教学内容脱离学生实际

教学目标的实现需要以教材为本,但是,现在许多技工院校所选择的《数据库原理及应用》教材还是几年前的,甚至十多年前的,教学内容太陈旧,已经不适应时代的需要。教材的选择应该考虑不同专业和不同的层次,但是,许多学校为了一时的便利,往往统一采用同一教材,课程内容选择太过随意,和专业结合不紧,教学内容的选择没有考虑专业层次,影响了学生培养质量。

4.考核方式简单

在课程考核中,传统考核方式采用笔试为主,考核内容重点放在考查学生对概念与语法的掌握情况上,而平常上机做得很好的学生可能会出现不及格的情况。这样的考核方式弱化了学生实践动手能力的考核。

基于数据库原理及应用课程教学中存在的问题,数据库课程改革势在必行,下面结合上述问题提出相应的改革建议。

二、数据库原理及应用课程教学改革建议

1.理论与实践相结合,加强学生动手能力的培养

俗话说:听到的不如看到的,看到的不如动手做的。在课堂教学中,教师在讲完新的理论知识后,应该及时安排学生进行上机操作,使理论知识能够及时在实践中应用。同时,在安排上机实验课中,应该有的放矢,确定好上机的目的与组织教学的步骤,老师事先要准备好实验指导书。

2.教学手段和教学方法的改革

数据库原理及应用课程教学应该根据学习主体,合理地采用不同的教学手段和教学方法,甚至可以综合运用任务驱动法、多媒体演示法、案例法和合作学习教学法等教学法组织教学,提高教学效果。比如,数据库原理及应用课程教学以“学生成绩管理系统”为主线,将教学内容进行重新组织,将整个学期的教学内容分成开始、录入、密码等模块,每一模块采用不同的教学方法。此外,为了进一步提高数据库原理及运用课程的教学效果,建议多采用多媒体演示教学法,可更形象地向学生展示教学内容,减轻教师在上课时的板书负担。

3.合理选择教学内容,充分考虑专业性和层次性

不同的专业和不同层次,学生的实际情况具有比较大的差别,因此教材选择的侧重点也不相同。如果市场上难以购买到符合要求的教材,可以考虑自己编写校本教材。编写校本教材可以采用任务驱动法,分模块,将知识点由浅入深地展开。

不同专业对数据库的要求不同,比如学院开设数据库课程的专业主要有计算机专业(计算机网络技术、计算机技术应用)和非计算机专业(电子商务专业、机电一体化)。计算机专业对数据库管理的要求比较高,要求学生会开发和维护数据库应用软件,因此教学内容侧重于数据库、数据库开发与设计以及数据库管理系统等知识。而非计算机专业对数据库管理的要求相对更低,则教学内容的侧重相对简单一些,如可以选择库表设计、查询设计以及SQL Server数据库系统等。

4.考核方式改革

考核方式可以采用平时上机实践成绩、综合实训成绩与期末理论考试成绩以2:2:1安排,使考核方式尽量与培养目标挂钩。

参考文献:

第5篇

关键词:数据库;教学方法;教学改革

中图分类号: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.

[2] 曾台盛.《数据库原理与应用》课程教学改革探讨[J].福建电脑,2005(8):162.

第6篇

1、《数据库原理》课程的教学主要包括了理论教学和实验教学两大部分,收到整个专业的教学计划和每学期教学学时的影响,绝大部分高校都采用了以理论教学为中心,实验教学为补充的教学模式,实验学时偏少,很难满足实际教学的需要。数据库原理课程中确实涉及到较多的原理性理论知识,但在整个教学实施过程中亦不能忽视实验教学的重要性。

2、在教学大纲的制定上,通常重视理论教学大纲的制定和修订,忽视了实验教学大纲与时俱进的修订工作。实验项目的制定更是具有随意性,同一课程不同教授讲授时往往会设置完全不一样的实验项目,实验项目和实验内容的选择完全取决于任课教师的水平和偏好,缺乏实验大纲的指导和约束。

3、实验项目的设置以验证性实验偏多,缺少综合性、设计性实验。除了正常的实验课时外,缺少项目实践,未形成实践教学体系。

4、为了便于实验室的管理和出于安全考虑,一般实验室对每台机器都会采取还原保护措施。因此,在实验课时就会出现上次实验未完成的内容下一次课无法继续完成,而在涉及到数据库管理系统软件安装、配置的实验内容时,受到还原卡的影响,往往不能顺利完成。

5、受大的环境影响,学生心浮气躁,学习缺乏自主性,实验课的讲授仍然停留在老师讲解、演示,学生模拟、重复的阶段,师生互动不够,学生积极性不高,每次实验并不能达到预期的效果。

二、实践教学改革探索

目前,深入提高大学生应用创新能力已经成为了高校实践教学研究的热点。面向应用型人才教育的数据库实验教学不仅仅要针对实验内容进行简单增减,也不是以某个流行的数据库管理系统软件为核心的使用培训,而是要根据培养目标的定位,从实践教学内容及实施方法等方面进行改革。[2]

1、组织学科教师进行调研论证,根据专业培养目标修订教学计划和实验教学大纲。明确实验课程的教学目标和教学任务,讨论确定适合本专业学生的实验项目,实验项目可分为必做项和选做项,由任课教师和学生根据实际情况有选择的开设。详细叙述每个实验项目的实验目的和实验原理,可以通过流程图的形式让师生对此次项目的步骤和所需时间有大致的了解。除此之外,实验考核是检验学生实际操作能力的主要途径,在实验大纲中也要明确列出考核项目和所占分值,提高学生实验的积极性。

2、以实验大纲为指导,认证撰写课程的实验指导书。实验指导书是学生做实验的主要参考和依据,要让学生通过指导书明确指导自己要做什么、怎么做、为什么这样做。为了能在有限的实验课课堂上取得良好的实验效果,可以提前将实验指导书发给学生,让他们提前准备,复习实验过程中所涉及到的理论知识,这样就节省了实验时间,起到了事半功倍的效果。

3、实验环境的好坏直接影响到实验课的实施,在不能改变实验室硬件条件的情况下,可以通过安装虚拟机或者利用云平台来解决机器还原保护的问题。在虚拟机下可以很好的完成数据库管理系统软件的安装和配置,避免重启后丢失的问题。而利用云平台可以给每位学生分配一台虚拟计算机,学生通过各自指定的账号登录后就可以完成各项试验,不仅在实验室,在宿舍以及校内其他可以使用网络的地方,都可以进行远程登录访问,随时随地完成实验内容,避免了每次实验开始是的数据库附加和实验课结束时的数据库分离操作。

4、利用课程设计弥补实验课的不足。实验课学时内的实验主要针对某个或某几个知识点组织的,每次实验之间的联系并不很明显,而为了让学生达到能够熟练掌握数据库设计基本技术和方法,为将来从事数据库应用系统分析、设计和开发,奠定必要的实践基础,单纯的综合性或设计性实验是满足不了的,而通过课程设计,让学生通过所掌握的诸多知识,以小组合作的形式实现一类应用软件的开发,就可以了解数据库设计、开发、管理的全过程。

5、培养学生自主学习的习惯。在实验教学实施过程中,学生有问题不加思考就求助老师,有时候可能只是一个英文单词写错了,从来没有想到自己是否能够独立解决。熟话说,“授之以鱼不如授之以渔”,教会学生解决问题的方法比解决具体问题要重要的多。因此,在实验的过程中要注重数据库管理系统中联机帮助文件的使用,让学生认识到其重要性。[3]借住帮助文件,鼓励学生多写多练,逐渐杜绝如SQL语句会读却不会写的现象。这样既能培养学生的自主学习习惯,也可以为他们自学提供保障。

三、结束语

第7篇

【关键词】项目教学法;数据库原理;课堂教学

当代社会要求从事管理工作的人员拥有现代化的管理手段,为顺应时代要求,贵州大学管理学院10级各专业均将《数据库原理》课程设置为“大类必修课”,旨在使学生了解数据库的基本原理、技术方法,并掌握常用数据库系统的使用,使学生具备初步的数据库设计和开发能力。课程实践性的特点要求着重培养学生解决问题的能力,传统的“老师讲――学生听”的方式已不能满足这种要求,因此在教学中引入“项目教学法”就显得非常必要。

1.项目教学法分析

“项目教学法”即在教学过程中,以共同的项目任务为中心,学生以任务问题为驱动,在教师的帮助和指导下,主动应用所学知识,进行自主探索和小组协作学习。该方法将传统教学中教师为主导的讲授式教学和以学生为主体的自学式教学有机结合,学生成为认知主体,在教师引导及项目驱动下逐步形成自主学习能力。

2.项目教学法在《数据库原理》课程中的实践

教师在教学中将《数据库原理》课程所涉知识围绕一个完整的项目来展开,具体教学实践从以下几个步骤来执行:

2.1项目设计

经过师生商议,以“《数据库原理》课程学生管理系统”为项目主线,将任课教师作为客户,对其进行需求分析并确定项目的最终目标及具体任务。该阶段,教师结合教学大纲的要求,引导学生项目目标和任务的设置紧扣课程核心知识点,拟通过对该系统数据库E―R图的设计、E―R 图到关系模式的转换、数据库中表的操作,按照项目开发流程展示了数据库从需求分析到实现应用的全过程,并力争从在项目完成的过程中使学生对该课程的核心知识与技术有清晰认知。

2.2项目实践

项目实践是教学中的重点阶段,在实践前先以寝室为单位对学生作项目分组,教师可以视情况进行协调。每组均选出项目组长,负责小组成员任务分配、进度控制、组织协调等具体工作,且在项目结束后要对每位成员在项目开发过程中承担的工作及表现作总结。

每个项目组均严格按照软件项目开发流程,在教师指导下完成需求分析、系统设计、系统调试、撰写报告的实际工作。

在需求分析阶段,学生从教师的角度出发,对教师教学需要进行调研,并在此基础上形成项目方案;其次,将系统的实际需求具体化,内容涵盖“数据流图、数据字典和系统功能分析”;最后,作系统数据库逻辑结构的设计,确立“E-R图、关系模式、表结构及表间关系”。最终每组确立出该项目要实现的功能模块。

在系统设计阶段,每组均要依据拟要实现的功能模块确定系统结构,创建数据库、设计和建立数据表及表间的联系,完成数据库安全性策略设计,实现系统的查询功能并设计系统窗体。在该阶段,项目组长要在教师引导下,结合组内成员的专长进行工作任务的安排,并和组员一起明确任务的目标。

在系统测试与调试阶段,小组内各成员将自己承担的分任务先分别调试,调通并通过测试后,全组再进行项目集成测试,直至集成测试完成,形成完整的系统为止。

在撰写项目总结报告阶段,每组对照项目目标合作完成项目报告。

从立项到项目完成,老师除了讲解基础的理论知识进行示范教学外,还要指导学生进行项目任务的拟定,使任务紧扣课程的核心知识,并在学生实践之前将任务完成要求具体化。例如,在查询时,要求学生用SQL语句完成项目中的各种查询需求等。此外,在项目实施中,老师对学生容易出错的知识点及时总结并给予辅导。

2.3项目评价

项目评价不是在项目完成后由教师单独来评价,而是贯穿整个项目开发阶段,由成员自评、教师点评和小组互评三方面共同进行。

项目实施的各阶段结束后,教师均安排学生上台演示和讲解项目进展现状。首先每小组讲解现阶段自己的成果,自评项目的完成情况、使用技术、遇到的问题等;然后教师针对各项目组的需求分析,数据库逻辑结构设计,建立数据库和表,安全性与完整性设计,典型存储过程设计,系统功能实现与运行情况等方面进行评价并提出具体建议;最后小组间互评,结合项目实践阶段的具体问题作优缺点评价,如系统结构是否合理,数据操作是否有效率等。

项目完成后,教师组织项目成果展示,每组派代表上台展示作者组设计开发的软件成品,并对整个项目实践过程中各成员的具体工作及表现作汇报。最后,才由教师进行项目成果总结,对项目完成较好的小组表扬鼓励,对项目完成不理想的小组指出问题所在,使学生能够发现症结并解决问题。此外,教师在总结中让学生明确以数据库技术为核心的信息系统的项目开发的知识准备、开发工具的选择、开发中各阶段的任务,开发中应注意的问题等知识内容。

3.项目教学法在《数据库原理》课程中的实践效果

《数据库原理》中的核心知识点是与数据库相关的一系列操作及如何使用SQL语句实现,如数据库的创建、数据表的定义(包括表与表之间的关系)、视图的定义、事务处理等。这些知识点是连贯的统一整体,相互依赖程度高。

在传统的教学模式中,老师一般是先讲基础知识点,再针对知识点作相应的举例演示和解说,并配合上机实验来教学。但因为课程涉及的知识连贯性强,这种单一知识点例证法所起到的作用很小,例如,学生虽然知道如何通过SQL Server创建数据库、数据表、字段和表关联,但是不知道如何分析才能得到合理的数据表。容易造成学生独立设计信息系统数据库时缺乏整体观念,导致后台数据库设计不合逻辑、数据表设计结构冗余。

通过实施“项目教学法”后,笔者发现学生的学习及教师的教学均发生了巨大转变:

首先,“项目教学法”使学生学习的积极性高涨,并提供合作学习的环境。

由具体项目贯穿学习过程始终,每位同学在项目组中有自己承担的任务,各项目组要定期评比。这让学生由被动性学习变为自主性学习。总结课让学生有发表意见及听取他人意见的机会,使学生们在学习中实行分工合作、各负其责、互帮互学。

项目教学非常重视学生软件项目开发能力的培养,尝试从自主与交互的学习方式中让学生获取知识并锻炼学生敬业负责、团队协作、创新探索的品质。通过项目最终的成果汇报和评价总结还能对学生开展交流与沟通的训练。

项目教学还能让每人学生对自己的实际工作能力进行审视,在项目开发过程中发现自身薄弱环节,明确主攻方向。

其次,“项目教学法”也使教师的角色定位得以改变。

教师由传授者变为引导者。在教学中不仅让学生有了项目服务对象,还教给学生高效学习的方法,并形成小组合作学习的良好氛围。此外,在学生实现项目的过程,教师变为合作者和评价者,不仅为学生提供相关资料和建议,而且对学生阶段的成果进行点评,及时发现问题并帮助学生解决问题。同时教师在观察学生、帮助学生的过程中,也提高了自身的专业水平及具体问题分析的能力,真正实现教学相长。

【参考文献】

[1]梁颜涛.“任务驱动”教学法在计算机教学中的运用[J].河南机电高等专科学校学报,2009.

第8篇

6.1 数据库连接

实现业务逻辑层与数据库的连接是通过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代码如下:

<script language="javascript">

function checkempty(form){

for(i=0;i<form.length;i++){

if(form.elements[i].value==""){

alert("表单信息不能为空!!!");form.elements[i].focus();

return false;

}

}

if(form.user_password.value!=form.user_password1.value){

alert("两次输入的密码不一致,请重新输入!!!"); form.user_password.focus();return false;

}

if (form.user_name.value.length <1) {

alert("用户名要在1-20个字符之间!");

form.user_name.focus();

return false;

}

var pattern = /^[a-za-z0-9_-]+@[a-za-z0-9_-]+(\.[a-za-z0-9_-]+)+$/;

if(!pattern.exec(form.email.value)){

alert("邮箱格式错误!!");

return false;

}

}

</script>

在服务器端验证时,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中显示。在线答疑页面的主要代码如下:

<frameset rows="*" cols="*,250" framespacing="1" frameborder="yes" border="1" bordercolor="#99ffff" >

<frameset rows="*,117" cols="*" framespacing="0" frameborder="yes" border="0">

<frame src="/pc-theory/090831/message.jsp" name="mainframe" frameborder="1">

<frame src="/pc-theory/090831/control.jsp" name="bottomframe" frameborder="1">

</frameset>

<frameset rows="*,119" cols="*" framespacing="0" frameborder="yes" border="0">

<frame src="/pc-theory/090831/leave.jsp" name="bottomframe1" frameborder="1" scrolling="no" noresize="noresize">

</frameset>

</frameset>

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].北京:电子工业出版社

[11] 宋梅,张学平. 深入浅出j2ee架构[m].北京:清华大学出版社

第9篇

数据库原理与应用课程体系优化自20世纪60年代中期以来,数据库技术得到了飞速的发展,目前在各个应用领域中得到了广泛的使用,对高等院校来说,数据库原理与应用已成为一门主干课程。对计算机科学与技术专业来说,数据库是一门重要的专业必修课;对非计算机专业如电子信息工程、测绘工程、电子商务、地理信息系统等专业来说,数据库是一门重要的公共课程,因此需要对数据库课程体系进行研究,改革课程体系中存在的问题,从而提高课程的整体性和一致性,提升教学效果,提高学生学习兴趣和动手能力,使课程能够真正达到预期的教学目的。

1 课程现状

目前,数据库原理与应用课程内容主要包括两大部分:一部分是数据库的基本理论,一部分是数据库的应用,以微软的SQL Server为例来讲解。目前,这门课程的课程体系现状如下:

1.1教材方面

根据数据库原理与应用课程内容,使用过两类教材,一类是偏重理论方面的,如王珊和萨师煊编写的《数据库系统概论》等、另一类是偏重应用的,如周绪、管丽娜和白海波编写的《SQL Server 2000中文版入门与提高》等,但是前者偏重数据库的理论,而学生对枯燥的理论理解起来有一定的困难,不利于学生对数据库的整体理解;后者主要偏重数据库的应用,数据库理论的内容偏少。所以从教材方面来讲,如何将二者有机结合,将数据库理论形象化、生动化,并且将理论融入到应用中,已成为课程体系中的一个重要的方面。

1.2课件方面

目前数据库原理与应用的课件基本上都是基于上述的两类教材而编写,以PPT为主,而PPT在讲述枯燥的理论和实际应用方面都不是最好的形式,所以在课件中需要加入更多的多媒体技术,比如动画、视频、录像等来提升教学效果,提高学生的学习兴趣。

1.3理论教学和实践教学方面

数据库原理与应用这门课的理论教学占课程内容总量的40%左右,这部分需要学生对数据库有一个整体的理解,所以仅仅靠书上的概念是不够的,而学生对数据库的理解程度决定着这门课程的整体效果,因此理论教学应该在概念的基础上加入更丰富的内容,使数据库的理论形象化、生动化、简单化,从而提高学生的兴趣,加深学生的理解程度。实践教学以SQL Server的应用为主,这部分应与数据库的理论进行有机结合,将理论融入到具体的应用中,让学生可以看到理论在实际中的各种体现,提高学生对数据库的兴趣,也可以加深对理论的理解。同时,只有对理论理解深刻,才能够提高数据库应用的能力,真正的掌握数据库、学会使用数据库。

1.4课程设计方面

数据库技术在各个应用领域都得到了广泛的使用,所以对计算机专业或非计算机专业的课程设计来说,如何使用数据库技术就成为一个关键的问题。但是课程设计需要将数据库技术与某种程序设计语言(如Java、C++、VB等)结合,所以数据库课程设计需要与语言类课程设计结合,才能达到应有的效果。

从上面几个方面来看,数据库原理与应用这门课的课程体系不够完善,在教材、课件、理论教学、实践教学、课程设计等方面都有优化的必要,需要进行改革。

2 课程体系优化方法

2.1教材方面

鉴于课程体系现状,需选择适合数据库原理与应用课程要求的教材,这类教材应该具备下面几个要求:

理论方面应该包含数据库课程的主要理论,比如数据库知识概论、关系代数、关系规范化、数据库设计等。这部分内容应与教学实际相结合,对于过时或者实际应用比较少的理论知识应简化或去掉。

应用方面应该结合数据库的基本理论,同时结合SQL Server的各类操作,如数据查询、数据更新、数据库完整性、安全性和SQL编程等,这些内容既是数据库的重要内容,也是SQL Server的重要应用。

2.2课件方面

课件方面应该根据课程特点选择类型多样的多媒体课件,如关系代数的各类运算可以采用flash等工具制作动画来模拟,SQL Server的各类操作可以采用动画的形式来模拟,也可以使用屏幕录像工具将操作的步骤记录下来,稍加处理后作为课件展现给学生。课件形式的多样化可以将枯燥深奥的理论形象化,提升学生兴趣,改善课堂教学效果。另一方面形式丰富多样的课件可以作为学生课下学习的资料,即有以文本和图形为主的ppt,也有动画、录像、视频等素材,可以提高学生自主学习的能力,达到事半功倍的效果。

2.3理论教学和实践教学方面

数据库的理论知识在课程体系中占有重要的地位,也是学好数据库课程的关键,但是其中部分理论如:关系代数的除运算、范式等内容形式化定义较多,因此这部分内容需将理论知识与丰富的实例相结合来讲解,同时要学生多加练习,在处理具体问题的过程中加深对理论知识的理解,否则只理解概念和定义无异于纸上谈兵。

实践教学方面应结合某种数据库管理系统的产品来完成,如微软的SQL Server等,一方面要求学生掌握该产品的各种操作,另一方面要求学生熟练掌握各种SQL语句,这既可以通过布置单独的小作业来进行,也可以通过布置大作业,让学生通过一个完整的项目掌握数据库的应用,提高学生的实际应用能力。

2.4课程设计方面

数据库课程设计需要与某种高级程序设计语言(如VC、Java等)相结合才能达到应有的效果,因此在课程设计中需要对语言的选择作出一定的要求,同时在课程设计题目的要求上也应该符合数据库课程的基本要求,如数据库的创建、查询、更新等操作都要有所体现,使学生通过课程设计可以加深对数据库课程知识的理解和应用能力,真正体会数据库的应用价值,从而达到课程设计真正的目的。

综上所述,数据库原理与应用课程体系需要从上述几个方面进行优化,从而真正达到这门专业必修课的教学目的,提高学生数据库的理解能力和应用水平。

参考文献:

\[1\]王珊,萨师煊.数据库系统概论.高等教育出版社,2006,5.

\[2\]周绪.SQL Server 2000中文版入门与提高.清华大学出版社,2001,5.

第10篇

【关键词】数据库原理与应用 启发教学 问题驱动

【基金项目】重庆师范大学基金项目资助,项目批准号(11XWB026)。

【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2013)01-0028-02

数据库技术是计算机科学一个十分重要的分支,云计算和互联网的风起云涌使基于网络的应用系统得以广泛应用,作为后台基础的数据库技术也被不断地赋予新能力。因此,《数据库原理与应用》在高校计算机专业课程系统中具有不可取代的重要地位与实际意义,该课程主要讲授数据库的基本原理及其应用方法,涉及数据库原理、数据库应用和数据库设计三方面,这些内容彼此关联而又各有重难点。由此可知,在该课程的教学实践中,不仅应该教会学生正确理解数据库的基本原理,还应该帮助学生熟练掌握数据库的设计方法和应用技术,更应该激发学生对数据库及相关知识的兴趣,培养学生独立探求新技术和新方法的能力,使其成为适应能力强、有创造才能的专业人才。为此,本文结合相关教学实践,就计算机专业数据库课程中存在的一些问题,提出了一种“问题驱动+图表展示+比较分析”的启发式教学方法。

1.课程存在问题

由于数据库原理的知识点较为抽象、枯燥,灌输型教学方式容易伤害学生的学习兴趣,而且对这些概念的理解仅仅停留在文字层面,更为重要的是不能把这些理论知识与实践很好地结合,极大降低了课程的教学效果[1-6]。

总结起来,根据多年的教学实践,笔者认为当前数据库课程教学中存在以下问题:

(1)理论与实际分离——部分教师的授课重点偏向理论知识,较少介绍具体的数据库使用技术,使学生难以将所学理论知识融会贯通,不能适应各个企业对计算机应用人才的具体需要;然而另一部分教师又偏好介绍当下流行的数据库开发工具,忽视甚至放弃讲解原理知识,造成所教学生熟知现有的数据库开发工具,但对整体的数据库知识结构缺乏认知,使得后续发展能力不强。

(2)实践教学不够合理——数据库原理与应用是一门实践性很强的课程,但目前的实验教学存在很多弊端,例如目的不具体、内容太笼统、实验在考核中没有一定的比例等。而且企业中数据库应用大多是工程化的合作开发,必须按软件工程的原则进行组织,因此应该将软件工程的基本方法融入数据库课程的实践环节,帮助学生建立起工程化的概念。

(3)课程设计选题不够开放——部分教师布置的选题没有新意、且年年重复,有些同学直接照搬学长的东西,这种选题不仅无法引起学生的兴趣、激发他们的兴趣,也不能跟上数据库技术的发展速度。所以应该在数据库课程设计进行开放性题目的探索,让学生在教师的引导下自主选题,发挥自己的特长与创造性。

(4)考核制度不科学——考核对学生学习和教师教学具有重要的导向作用,不同的方式能激发学生不同的学习动机。传统模式一般以期末考试分数为最终成绩的主要依据,造成学生只为考试过关而不注重培养实际操作能力,这种现象已严重阻碍了《数据库原理与应用》课程的发展。对此,很多学校采用“平时分+实验分=总成绩”,但对实验分数的评定较为主观,造成学生在实验环节通常是被动的完成任务、而非主动的思考创造。

2.启发式教学

数据库课程的知识体系完整,既有经典理论成果、又有发挥巨大作用的实践技术,因此我们提出如图所示的启发式教学法,将一些有代表性的案例引入课堂和实践。

(1)抽象分层

抽象是精确描述问题和建模的机制,数据库中很多的概念和方法都体现了抽象的思想,如数据模型、规范化理论、事务管理等。

例如,作为数据库理论知识的基本概念,数据模型分层次、逐步地对现实世界进行抽象。利用数据模型表达现实世界的时候,先从人的认识出发,形成信息世界,建立概念模型;再进入计算机系统,形成数据世界。在数据世界中,先从用户的角度抽象,建立数据的逻辑模型;再从计算机的角度抽象,建立数据的物理模型。

在教学过程中,启发学生体会抽象的思想和方法,学习运用抽象去表达需求并建模,发现问题的本质和其中蕴含的规律,并逐渐掌握抽象这个工具。

(2)难点分解

借鉴软件工程的基本思想,先自顶向下地将整个课程的理论教学内容划分为多个阶段,每个阶段有相对独立的子任务,相邻阶段互相承接;关于相对复杂的数据管理和维护工作,也可以进一步被分解为数据恢复、并发控制、数据完整性和安全性的保护、数据库的运行维护等多个子任务,相互协作以保护数据在运行过程中的正确性和有效性;而在基于数据库的应用开发中,模块化的难点分解也是最有效、最易操作的一个方法。

(3)三段教学模式

在数据库原理与应用的理论和实验教学中引入“问题引导+图表总结+对比理解”三段教学模式,引导学生利用启发式规则和推理来学习相对枯燥的教学内容。

1)问题引导——以问题设计为核心、以问题解答为驱动力、以激发学生主动自学和培养学生创新性思维为主要目标。在课堂教学过程中,教师设计出一些学生难理解、易混淆或易疏忽的问题,并在恰当的时候提出,使学生对这些问题有足够的重视;对于那些比较重要的概念或在后续学习中常用的、学生容易出错的知识点,也可以通过提问的方式引导学生深入理解。这样既能“于无疑处生疑”以激发学生的求知欲望,还能通过引导学生解决问题以激发学生的能动性。

2)图表展示——用一组简单的示意图或二维表直观地展现问题涉及的内容,启发学生思考,引导学生结合图表对问题进行讨论和交流。通过图表展示将理论与实践相结合,将原本枯燥、抽象的原理变得生动、具体,既活跃了课堂气氛,又突出了学生在课堂的主体地位,有助于培养学生思考式学习。

3)对比理解——通过比较所提问题涉及的各个知识点的异同,分析其本质和特点,总结各个知识点之间的联系和区别以及各自的用法和用途,并针对学生在上一环节中暴露出来的问题进行重点分析和讲解。通过对比理解能加深学生对基本原理和概念的理解,有助于学生掌握分析问题和解决问题的方法、提高分析问题和处理问题的能力。

3.实例分析

为了更好地验证启发式教学法在《数据库原理与应用》实际教学过程中的具体应用,笔者给出一个实际的教学示例。

【描述】关系模式STC(SNo,SN,SA,TN,CN,G),其中6个属性分别为学生学号、学生姓名、学生年龄、教师姓名、课程名和学生成绩。假设学生可以重名,课程名也可以重名。假设教师无重名,每个教师只教一门课,但一门课可以有几个教师同时开设。要求:

【问题1】给出主码、候选码、主属性、非主属性及其之间的相互联系。

在数据库中,主码、候选码、主属性、非主属性这些概念非常重要,只有清晰、准确地理解和掌握才能学好后续理论。但学生却常常混淆这些基本概念,因此我们以提问的方式突出强调,引导学生们思考、而非死记硬背。

(1)通过多媒体屏幕将一个关系模式STC所属的数据库显示出来;

(2)让学生对照主码、候选码、主属性、非主属性的定义给关系模式STC(SNo,SN,SA,TN,CN,G)分别标出这四个概念;

(3)详细给出关系模式STC(SNo,SN,SA,TN,CN,G)的图示,并结合图示写出这个关系模式的键码{SNo,CN}和{SNo,TN}。

【问题2】分解关系模式使之属于BC范式。

对此问题,我们仍然结合问题一中给出的图示进行分析,得出这个关系模式的分解结果——STC1(SNo,SN,SA),STC2(TN,CN),STC3(SNo,TN,G)。

在上面的教学示例中,我们首先利用问题驱动的方法,通过问题1提出主码、候选码、主属性以及非主属性这四个概念,强调它们的重要性,引导学生思考它们之间的联系;接着我们将一个形象的图示通过屏幕呈现,将抽象的概念和具体形象的例子相结合,让学生对知识点有一个直观、感性的认识。在学生思考的过程中,我们及时关注、实时收集学生的各种反馈信息,发现学生的困惑和存在的问题,以便在下一个比较分析的环节做到有针对性的指导。当学生对所提问题有了自己的思考和初步的理解后,我们再重点强调学生普遍存在的问题,引起学生的足够重视,助其形成深刻的印象。如果在学生反馈中发现一个十分普遍的问题,我们还可以将这个问题单独提出来,循环使用“问题驱动+图表展示+比较分析”这种教学模式进一步向学生深入解释,使学生做到活学活用、举一反三。

通过上述示例我们可以看到,问题驱动、图表展示和比较分析这三个理论教学环节是环环相扣、相辅相成的,灵活运用这种教学模式可以使学生学得轻松、教师教得愉快。

4.结语

本文分析了《数据库原理与应用》教学中存在的问题,提出了一种“问题驱动+图表展示+比较分析”的启发式教学法,能较好地调动学生的学习自主性,提高学生分析问题和解决问题的能力,培养学生的创新思维能力。

目前这套启发式教学法在本课程的教学工作取得较好的教学效果,让学生的综合素质和创新能力在循序渐进的过程中不断得到锻炼和提高。由于数据库技术在不断发展、知识在不断更新,因此笔者将继续在数据库的教学上勤于思考、优化教学内容、改进教学方法、构建合理的教学体系,在数据库技术和网络技术相结合的道路上不断探索,使理论教学和实际应用更好地结合起来,培养出更加适应信息化社会的复合型应用人才。

参考文献:

[1]傅婷婷. 数据库系统原理课程的立体化教材建设探索[J]. 计算机时代. 2012(7):21-23.

[2]叶霞,李俊山,李海龙. 数据库原理及应用实践教学改革[J]. 计算机教育. 2011(1): 28-29.

[3]范丽萍. 数据库课程教学改革探讨与实践[J]. 中国电子商务. 2012(4): 15-16.

[4]彭焱. 《大型数据库应用技术》教学改革与探讨[J]. 软件导刊. 2012, 11(1): 23-24.

第11篇

关键词:传媒特色;数据库原理与应用;教学改革;教学设计

数据库技术是研究如何科学地组织和存储数据,如何高效地检索和管理数据的一门学科,数据库原理及相关课程是高校计算机、自动控制和信息类专业的一门重要专业必修课。中国传媒大学是一所以新闻传播、语言艺术专业见长的综合性学校,对计算机学院而言,有相当比例的学生是通过专业调剂的方式进入本专业学习的,他们思想活跃,有较好的语言艺术素养,但缺乏专业兴趣;加上计算机学院仅有7年的建院历史,积淀尚显不足,因此和国内一流的理工科院校相比,我校的计算机专业学科排名处于一定的劣势。如何扬长避短,赶超一流,激发学生学好计算机专业课程的积极性,使我们的教学质量受到社会更多的认可,提升竞争能力?实现“人有我优”无疑是长期努力的方向,而实现“人无我有”则在短期内是切实可行的。为此,我们提出了“把计算机科学技术与我校在传媒行业中的传统优势和特色相结合,应对新媒体时代的各种挑战,培养适应时代需要的、掌握先进技术的、深具传媒特色的计算机专业复合型人才”的学科新定位,并以校级本科质量工程项目“数据库原理”优质示范课程建设为契机,开始从教学内容、教学方法、教学资源、创新实验等方面对本课程进行全面的建设。

1教学改革

按照上述思路,我们在课程建设方面重点采取了以下措施:

1) 优化教学内容,彰显传媒特色。

我院研究制定了2009版教学大纲和教学计划,对教学内容进行了调整。新版教学大纲以构建具有传媒特色的数据库课程体系为目标,在完成数据库的基本概念(数据库系统结构、数据模型等)、基本理论(关系代数、函数依赖、规范化、模式分解等)、基本技术(数据库的安全性和完整性、查询优化、数据库恢复和并发控制等)和基本操作(结构化查询语言SQL及数据库编程)等传统教学内容[1]的基础上,结合传媒领域数据库应用的特点,并考虑到本科阶段学生的知识水平,增加了多媒体数据处理、多媒体数据检索、多媒体数据存储等多媒体数据库技术方面的内容[2],同时强调技能训练,加大了实验课的教学力度和学时数,以进一步增强学生利用所学知识开发多媒体数据库应用系统的能力。

2) 改革教学方法,强化案例教学。

在教学实践中,我们以一个虚拟的电子商务网站“网上多媒体音乐商店”的开发作为贯穿始终的例子开展案例教学,随着简单到复杂、实例到原理、原理到应用的逐步深入,学生受“网上多媒体音乐商店”设计过程中的项目任务驱动,亲自参与到了一个简单的多媒体数据库应用系统从分析、设计到完成、完善的整个应用实践过程。由于实现的系统“图文声”并茂,而操作的数据对象是专辑、歌曲、歌手等大家喜爱又比较熟悉的内容,加上学生自身良好的艺术素养,学生的学习和创作热情十分高涨,取得了较好的教学效果。

3) 凝练科研成果,丰富教学资源。

我们还对我院教师承担的一些和广播电视、传媒应用密切相关的科研课题认真加以提炼,编写了《传媒数据库技术与实践》一书作为与课堂教学同步的课程实验和课程设计的配套教材,书中给出了电视台节目查询点播系统、媒体资产管理系统、广告管理系统、影视资料编目系统、学院新闻中心网站、传媒博物馆网站等多个开发案例和设计选题供学生学习和选择,真正做到了理论联系实际。

4) 合理配置实验,注重因材施教。

针对以往存在的实验题目类型单一,验证性实验偏多,不利于学生创新能力培养的弊端,我们在实验中加大了综合性、创新性实验的比例,同时注意兼顾学生实验能力上的差异。如将实验分为基本操作、拓展训练和综合开发几个模块,通过它们的有机结合,既能让基础较差的学生树立起完成任务的信心,又能避免程度较好的学生“吃不饱”,鼓励他们张扬个性,培养探究性学习、自己动手解决问题的能力。教师则可以灵活搭配实验选题,让“因材施教”落到实处。

2教学设计

总结以上教学改革成果,我们为数据库原理与应用课程精心设计了新的教学方案。课程内容共计100学时,其中课堂讲授演示48学时,课内实验16学时,课外练习36学时。在全部27个实验中,验证性实验6个,占实验总数的22%;设计性实验14个,占实验总数的52%;兼有验证性和设计性的实验7个,占实验总数的26%。

因篇幅所限全部教学内容不能一一列出,下面重点介绍一下各章实验教学环节的设计思路。

1) 第1章 绪论(讲授演示:3学时;课外实验:4学时)。

由于是第一次课,做好课程导入,激发学生兴趣至关重要。为了让学生理解数据库技术的重要性,我们列举出大量数据库技术在各行各业,特别是在广播电视、传媒领域中的应用实例,并向学生展示了我院教师完成的相关科研课题以及往届学生制作的优秀课程设计作品。此外,还布置了两个课外体验作业,一是让学生通过实际操作一个数据库应用系统,例如校图书馆的图书管理系统、校园网教务在线的选课系统、成绩查询系统、精品课网站等,了解数据库应用系统基本的数据查询和更新功能;二是完成一个关系型数据库管理系统,例如SQL Server 2005/2008的安装,并通过对其功能的了解,认识数据库管理和数据库应用开发的关系。

2) 第2章 关系数据库(讲授演示:5学时;课内实验:2学时;课外实验:6学时)。

本章的知识点包括关系数据结构、关系操作和关系的完整性约束等。这是学生第一次接触关系数据模型中的大量概念,形式化的数学定义,抽象的关系代数运算,会让部分学生望而却步。因此,我们改变了以往第一次课内实验安排在第3章的做法,让学生尽快熟悉关系型数据库管理系统的工作环境,并通过对关系表对象的实地操作,变抽象的概念为具体的实现。为了增添趣味性,同时考虑到传媒大学的学生对多媒体信息的偏爱,我们以一个“图文声”并茂的电子商务网站“网上多媒体音乐商店”的开发为背景,设计了其后台的NetMusicShop数据库和专辑、歌曲、歌手、收藏等多张关系表。要求学生利用SQL Server数据库管理系统提供的交互式工具创建上述数据库和关系表,并找出各关系的主码、外码及表之间的联系。

3) 第3章 关系数据库标准语言SQL(讲授演示:8学时;课内实验:2学时;课外实验:4学时)。

上一章的实验是入门级的,目的是让学生理解关系数据库中的抽象概念,通过简单快捷的交互式操作,增强学习的信心。本章实验则应注重提升学生灵活应用SQL语言操纵数据和检索数据的能力。首先要求学生利用SQL命令重建第2章实验中的数据库和关系表,然后完成由简单到复杂的多种查询任务。例如:按照点击率列出最受欢迎的十大歌手排行榜;查找被所有用户收藏的歌曲;查找最近一年来销售业绩最差的专辑发行公司等。

4) 第4章 数据库安全性(讲授演示:2学时;课内实验:2学时;课外实验:6学时)。

本章实验的重点是让学生理解SQL Server数据库管理系统是如何通过视图和授权机制来实现数据库安全性的。例如:即便是系统管理员也无法查看到用户的登录密码和无权删除用户的收藏记录。此外,采用将视图作为临时表的方法重做“查找销售业绩最差的发行公司”这类问题,可让学生体会到视图还可以起到方便用户书写查询操作命令的作用。

5) 第5章 数据库完整性(讲授演示:2学时;课内实验:2学时;课外实验:2学时)。

首先要让学生理解数据库的完整性与安全性这两个概念是有本质区别的,合法用户的不当操作同样会给数据库带来损害。我们有意设计了一些不合理的测试数据,例如:允许用户收藏一个根本不存在的歌曲;歌手的年龄小于0等,让学生体会到一个没有完整性约束的数据库系统将无法正常工作,进而要求学生为NetMusicShop数据库中的基本表添加必要的参照完整性约束和用户自定义约束,并进行违约测试。

6) 第6章 关系数据库理论(讲授演示:4学时);第7章 数据库设计(讲授演示:6学时)。

课程进行到这里,正好完成了一半的课内实验任务,学生已掌握了数据库基本对象的管理技术,这时我们没有再安排专门的上机实验,而是要求学生在总结前一阶段实验的基础上,回过头来思考两个问题:为什么要这样设计NetMusicShop数据库?如何才能保证设计出的数据库是正确的?第6、7章的学习给出了答案。接下来布置了一个书面作业,要求学生按照关系数据库的设计理论,对“网上多媒体音乐商店”进行需求分析、概念设计和逻辑设计,对原有的NetMusicShop数据库进行优化处理,同时要注意把握规范化的程度。

7) 第8章 数据库编程(讲授演示:6学时;课内实验:6学时;课外实验:4学时)。

有了数据库基本操作的基础,再加上关系数据库理论的充实,学习更高一级的数据库编程技术便顺理成章了。要让学生理解SQL的编程技术可以弥补标准SQL语言在实现复杂应用逻辑方面的不足,具有提高数据库应用系统效率和安全性等优点。本章要完成多个关于流程控制、存储过程和触发器方面的实验。例如:把检查用户登录“网上多媒体音乐商店”权限的判断逻辑,以存储过程的形式放在后台的数据库服务器中,来避免客户端可能发生的“SQL注入”的安全隐患;当管理员要向专辑表中插入一新的专辑时,先要判断该专辑是否存在以避免重复插入引发的系统错误;商家进行促销活动,对购买专辑数量达到规定额度的用户自动进行返款奖励等。

8) 第9章 数据库恢复技术(讲授演示:4学时;课内实验:1学时;课外实验:4学时);第10章 并发控制技术(讲授演示:4学时;课内实验:1学时)。

围绕这两章的内容,通过实验让学生了解SQL Server数据库管理系统实现恢复和并发控制的机制,能够制定合理的数据备份策略,并针对不同的故障采取最有效的恢复手段。

9) 第11章 传媒数据库技术(讲授演示:4学时;课外实验:6学时)。

通过这章的学习,使学生认识到就传媒行业而言,除了常规的人事、财务、设备、办公自动化管理外,随着远程教育、视频点播、交互电视、动漫游戏、电子出版物等新兴媒体的涌现,对海量的视频、音频、动画等多媒体信息的获取、存储和检索的需求,对传统的以格式化数据为主要处理对象的数据库技术提出了新的挑战和更高的要求。由此,促进了多媒体数据库技术的发展。

一个多媒体数据库系统应具备能够表示多种媒体的数据,对其进行必要的描述和解释;能够协调处理各种媒体数据,正确识别各种媒体数据之间空间或时间上的关联(同步);除了满足物理数据独立性和逻辑数据独立性外,还能满足媒体数据独立性;能够提供比传统DBMS更强的适合非格式化数据查询的搜索功能(如图像缩放、情节搜索等)等特点。因此多媒体数据库涉及多项核心技术,包括:数据的集成技术;大容量、高带宽的存储技术;数据的压缩/解压缩技术;多媒体数据模型;元数据及其生成;基于内容的多媒体信息查询和索引技术等。考虑到本科学生目前的知识水平,对这部分内容的讲解一定要做到深入浅出、通俗易懂,不一定要求学生对原理有多么深刻的理解,只要清楚将来如果希望从事多媒体数据库技术方向的研究和应用,应该从哪些方面入手,考虑哪些问题即可。本章针对开发能力较强的同学给出了多个拓展实验,例如:利用SQL Server二进制大对象(BLOB)的处理技术实现对音频、视频、动画等多媒体数据的存取;XML数据管理;全文检索等。

为了引导实验能力较强的学生进行探究性学习,我们在每一章都设计了一定数量的拓展性实验。对认真思考问题,提出独到见解的同学给予当堂表扬直至平时成绩加分的鼓励,并优先推荐他们加入教师的科研团队和大学生创新实验计划项目。

3结语

数据库原理与应用是一门实践性极强的课程,理论教学必须结合相应的技能操作训练,否则就是纸上谈兵,因此,我们在注重理论教学的同时加强了实践教学的力度。考虑到我校的行业特色、计算机专业学科的现状以及社会对计算机专业复合型人才培养的需求,我们对基于传媒特色的数据库原理与应用课程教学模式进行了有益的探索,设计了以项目开发为主线、任务驱动、循序渐进的教学方案,取得了较好的教学效果。

参考文献:

[1] 王珊,萨师煊. 数据库系统概论[M]. 4版. 北京:高等教育出版社,2006.

[2] 汤庸,叶小平,汤娜,等. 高级数据库技术[M]. 北京:高等教育出版社,2005:228-253.

Teaching Reform and Design of Database and Application Course Based on Media Features

WANG Tong, SHANG Wen-qian, GONG Wei

(School of Computer, Communication University of China, Beijing 100024, China)

第12篇

关键词数据库原理案例教学 教案

1 问题的提出

数据库技术是研究如何科学地组织和存储数据,如何高效地检索和管理数据的一门学科。在教育部高等学校计算机、自动控制和信息类专业的培养方案中,“数据库原理”一直是四年制本科生的专业必修课程。在IT技术飞速发展的今天,能否很好地应用数据库技术解决实际问题,已成为许多用人单位对应聘者知识结构的新要求。因此,该课程也日益成为其他理工科专业本科生、专科生一门愈来愈受到关注的选修课,甚至是必修课。

而目前许多院校非计算机专业的“数据库原理”课程的教学现状并不令人满意,主要问题是:教材组织上理论概念多,应用实例少;教学安排上课堂讲授多,实践动手少;课程考核上死记硬背多,灵活应用少。这样“三多三少”的直接后果是:尽管一些学生可以在理论考试中取得高分,但却不能自如地应用某种数据库管理系统软件解决实际问题,更谈不上开发出有实际应用价值的数据库系统,如此“眼高手低”很难适应现代社会对数据库技术应用人才的需求。因此,在“数据库原理”课程的教学上必须改变这种纸上谈兵、理论脱离实际的状况。

2 构建“数据库原理”案例教学模式的指导思想

“数据库原理”的教学大纲通常包括:基本概念、关系模型、SQL、关系数据库理论、数据库设计和数据保护等内容,一般授课学时在50学时左右。由于理论内容较多,很难保证有效的实践环节。为此,构建“数据库原理”案例教学模式的指导思想可归纳为12个字:精理论、强实践、重启发、勤激励。具体就是:精选课堂讲授内容,围绕着如何解决实际问题开展对相关理论的探讨。一些大纲有要求、但受学时限制、无法在课内讲授的内容,要求学生通过自学完成;增强实践环节的力度,加大综合性、创新性实验的比例,培养学生探究性学习、自己动手解决问题的能力;通过启发式教学和有效的激励机制,提高学生的学习兴趣,进而调动起他们主动学习新知识、探索新方法的积极性。每堂课结束时可以给学生提出一、两个问题,一则督促学生做好复习预习,二则为下堂课的教学留下伏笔和切入点。对于认真思考问题、能提出切实可行方案及在实验中有创新的学生,应给予当堂表扬或给平时成绩加分的鼓励。

3 基于案例教学法的“数据库原理”教案一则

如表1所示,本教案以学生较熟悉的教务管理子系统“学生档案管理”为贯穿始终的例子,以关系数据库理论为指导,通过循序渐进的讲解、演示和实验,让学生理解数据库的基本概念、理论和技术,掌握一个简单的数据库应用系统从分析、设计到实现的完整开发过程,真正做到学以致用。全部内容共计54学时,其中课堂讲授演示26学时,课内实验28学时。适用对象为已掌握了一种面向对象的可视化编程工具(如VB、C#、C++或Java等)的非计算机专业本科生或专科生。

4 实施案例教学过程中需要注意的问题

(1)正确认识理论与实践的关系。案例教学从不否认理论对实践的重要指导意义,像关系代数、查询优化、数据存储、事务处理、并发控制等一些数据库技术中十分重要的内容可另外开设一门课程供高年级学生选修,以弥补学生在数据库理论上的不足。

(2)注意教学内容特别是实验环节开发平台、工具和方法的实用性和先进性。与其他计算机技术的发展一样,DBMS及数据库应用系统的开发平台和工具每隔几年就会更新换代,这就要求任课教师必须与时俱进,及时将最新的研究成果引入教学。如以上案例采用GUI风格的C/S结构,若学生有一定网页制作基础的话,可改进为目前较为流行的Web风格的B/S结构。

(3)建立公平有效的课程考核机制,保证自学内容、实验环节的教学质量。自学内容可通过读书报告、论文、提问等方式加以考查;布置课程验收大作业时,应兼顾不同层次学生的学习能力,既能让基础较差的学生树立起完成任务的信心,更要积极鼓励程度较好的学生高标准要求自己。

5 结论

实践证明,“数据库原理”案例教学模式是一种变学生被动学习为主动学习的有效方法,由于能够理论联系实际,让学生带着感兴趣的问题进入课程的学习,让学生改变了以往混学分的思想,对这门课的认同度有了明显的提高,具体表现为:上课睡觉、缺勤的人少了,积极思考问题的人多了,学生作业的质量提高了,成绩上升了。另外,师生间的互动交流大大加强了,教学相长得以充分体现,部分学生还结合自己的专业和爱好,积极参与教师的科研工作,其探究能力和创新意识得到了较好的培养。

(本文获得“2005年全国青年教师计算机教育优秀论文评比”教学与研究三等奖)

参考文献

1 萨师煊,王珊.数据库系统概论(第3版).北京:高等教育出版社,2000