APP下载

数据库课程设计的改革与探究

2014-01-24谢美意

当代教育理论与实践 2014年3期
关键词:数据库系统页面课程设计

谢美意

(华中科技大学 计算机学院,湖北 武汉430074)

数据库技术是信息化建设的基石,在各领域中的应用非常广泛,由此也导致了社会对数据库技术人才的大量需求。为了满足这一需求,在各高校的人才培养计划中,不仅计算机及信息管理类专业一直将数据库作为重要的基础课程来对待,许多非计算机专业也开设了相关的课程。然而,值得注意的是,过去的近二十年是中国信息化社会从无到有的建设过程,因此这一期间需要大量的数据库应用开发人员,但是随着信息化建设的深入,新的信息系统的建设项目将逐渐减少,而对已有信息系统的管理、维护、优化和整合的需求会越来越大。体现在人才需求上,则是对数据库应用开发人员的需求将逐渐减少,而对高级的数据库管理及调优人员的需求将迅速增加。针对这一变化趋势,在我校计算机专业“卓越工程师”班的培养计划中,我们对数据库课程的实践环节进行了改革[1]。

1 课程改革的目标与思路

1.1 课程现状

数据库相关课程主要包括“数据库系统原理”(以下简称“原理”)和“数据库课程设计”(以下简称“设计”)。“原理”课程介绍与数据库技术相关的原理、理论与方法,除基础理论外,大致可概括为数据库设计和数据库管理系统(DataBase Management System,以下简称DBMS)实现两大部分[2-3]。“设计”课程是与“原理”课程配套的实践环节,其内容是完成一个数据库应用系统的设计与实现,以此来促进学生对“原理”教学内容的理解并提高实际动手能力[4-7]。

目前,随着程序设计技术的发展和进步,数据库应用开发的自动化程度越来越高,很多数据库操作都被封装在开发工具提供的组件中,程序员几乎不需要了解底层的工作原理就可以方便地使用这些数据库组件完成应用开发,因此在数据库课程设计的过程中,需要学生运用数据库原理知识来解决的问题越来越少,这使得“设计”的内容实质上更接近于模板化的高级语言编程训练。从教学效果来看,这样的训练内容虽然能有效地培养学生的数据库应用开发能力,但是对于促进学生理解DBMS 的运行原理则没有太大的帮助[8]。深入理解DBMS 的运行原理是数据库管理人员的基本要求,现有的实践内容显然不利于培养具有深厚专业素养的高级数据库人才。

1.2 改革思路

“卓越工程师”人才的培养,注重训练的是学生分析和解决问题的实践能力,而非不求甚解的机械化编程[9-10]。具体到数据库系统中,一个优秀的工程师应该能够通过综合分析DBMS 记录的运行数据或者调整DBMS 参数,来发现和解决系统中出现的性能问题、安全问题或者排除各类故障,而这些都是建立在深刻了解DBMS 运行原理的基础之上的。为达到这一目的,我们尝试将数据库课程设计的内容改变为一个简单DBMS 的实现。这个变化,是将对学生的要求从“使用工具”的层面提升到“制造工具”的层面,其作用如下:

第一,在一个DBMS 的开发过程中,为了实现关系的定义、存储、查询和修改功能,学生必须运用“原理”中介绍的关系模型、关系代数、三级模式等理论知识并且将其有机地联系起来,从而达到促进其理解数据库系统工作原理并能灵活运用的目的。第二,DBMS 是复杂度较高的系统软件,其中综合体现了数据库、操作系统、编译、数据结构、算法、软件工程等多门计算机知识和技术的实际运用。与应用程序开发相比,这样的系统软件开发显然更有助于学生将各门课程所学的知识融汇贯通、加深理解[11]。相应的,课程改革的难点也体现在题目的复杂性上。要求学生从零开始,在较短的时间内完成一个完整DBMS 的设计与实现是不现实的,即使是功能简化后的DBMS,其难度仍然很大,因此教师需要提供必要的工作基础和实践指导。为此,我们为学生规划了一个简单DBMS(以下称HustBase)的体系结构框架,并预先提供了其中的部分模块作为课程设计的开发基础,使学生能在可控的时间内分阶段完成训练内容。

2 课程内容设计

2.1 HustBase 体系结构

HustBase 是一个单用户关系数据库管理系统,支持简单的SQL 语言,其模块结构及模块间的调用关系如图1所示。

图1 HustBase 模块结构图

页面管理:数据库中所有的数据、元数据和索引数据均以分页文件的形式存储在磁盘上。页面管理模块的功能包括:创建、销毁、打开和关闭分页文件,从指定文件中读取指定页面,在指定文件中添加、删除及修改页面等,所有页面的存取操作均通过缓冲区进行。

记录管理:数据表中的数据以记录为单位存取。记录管理模块用于管理存储在分页文件中的数据表记录,本模块依赖于底层的页面管理模块。页面管理模块以页面为单位实现文件级别的I/O,而记录管理模块则以记录为单位实现数据表级的读写。

索引管理:HustBase 通过索引为查询提供快速访问路径。索引管理模块用于管理存储在分页文件中的索引记录。与数据表不同的是,索引采用B+树结构来组织索引记录。索引管理模块同样依赖于底层的页面管理模块。

系统管理:系统管理模块提供数据定义功能,包括数据表和索引的创建和删除。系统管理模块的功能依赖于记录管理模块和索引管理模块。

数据操纵:数据操纵模块用于执行用户的SELECT、INSERT、DELETE 和UPDATE 命令,并向客户返回最终的查询结果集。本模块的功能依赖于记录管理模块、索引管理模块和系统管理模块。

语法分析:语法分析模块提供对SQL 命令的语法分析,并将分析结果以语法树的形式提供给系统管理模块和查询处理模块,以便其做进一步的分析和处理。

用户界面:HustBase 提供基于命令行的交互式界面,允许用户输入SQL 命令,并能接收和显示返回结果。

2.2 课程内容安排

改革后的数据库课程设计课时安排为4 周,按周次划分为4 个阶段。除去已预先提供的用户界面、语法分析和页面管理模块,学生还需要自己动手实现记录管理、索引管理、系统管理和数据操纵模块,才能完成整个Hust-Base 系统的开发。具体课程内容安排如表1 所示。

表1 数据库课程设计课程内容安排

HustBase 系统的开发环境为Windows 操作系统及Visual C+ +,开发语言为C 语言。为保证良好的模块独立性,除用户界面模块外,其它模块均采用链接库的形式实现。每个模块必须按规定的格式对外提供调用接口,但是模块内部的实现方法则不做统一规定。这样要求,一方面可以方便教师进行阶段性的模块功能检查,另一方面可以为学生设计及优化模块的实现方案提供更大的自由度。

2.3 课程教学中的关键问题

一是指导方法。指导教师在课程开始时简要讲解系统的结构和工作原理,具体内容则通过资料的形式由学生自行学习。教师的工作重点是引导学生利用所学的知识形成具体的设计方案。由于课程要求只规定了每个模块针对上层模块的接口函数形式和功能,因此学生采用的模块内部设计方案可能各不相同,设计错误也难以避免,这就要求教师能随时发现其中的问题,指出改进方向,但同时也要注重鼓励学生积极思考,避免过度限制学生思路[12]。二是实践形式。考虑到系统实现的工作量较大,根据学生程度,实践内容采取2 ~3 人小组的形式合作完成。教师应鼓励学生在实践过程中进行充分的小组内讨论,以使每个人均能全面了解本小组的实现方案,并承担合理的工作量;但在考核前,不鼓励过多的小组间交流,以免各小组的设计方案失去其独特性,也为教师最终评定成绩带来困难。三是考核方式。课程考核采用阶段检查与完结报告相结合的方式进行。在课程实践过程中,教师按模块对各小组提交的代码进行阶段性验收,各模块功能的正确性由与该模块配套的检查程序进行验证,同时对小组间代码进行比对,以防止相互抄袭。课程结束时,学生以小组为单位提交课程设计报告并公开答辩。

3 结 语

为突出“卓越工程师计划”的人才培养特点,本文提出的数据库课程设计内容从设计与实现一个DBMS 的角度出发,将训练重点放在对数据库系统内部工作原理的理解和应用上,同时强调学生综合运用所学的计算机专业知识来分析和解决实践中遇到的问题,因此更有利于培养创新能力强、适应经济社会发展需要的高质量工程技术人才。

[1]林 健.“卓越工程师教育培养计划”专业培养方案研究[J].清华大学教育研究,2011(2):47 -55.

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

[3]Ullman J D,Widom J.数据库系统基础教程[M].岳丽华,金培权,万寿红,等译.北京:机械工业出版社,2011.

[4]林 巧,丁革建.数据库课程设计的项目化实验教学方法[J].实验室研究与探索,2009,28(4):131 -132,139.

[5]于凌云.项目教学法在数据库教学中的实践与探索[J].职业教育研究,2008(2):66 -67.

[6]赵慧敏,杨鑫华,牛一捷.数据库课程设计实践教学改革探索[J].当代教育论坛,2011(8):49 -51.

[7]王法玉,肖迎元,张 颖.数据库系统课程设计实践教学改革研究[J].计算机教育,2010(9):150 -152.

[8]何福保,吴德道,胡开华.基于项目模拟实训的《数据库课程设计》教学方法研究[J].福建电脑,2012(1):31 -32.

[9]林 健.面向卓越工程师培养的研究性学习[J].高等工程教育研究,2011(6):5 -15.

[10]林 健.注重卓越工程教育本质 创新工程人才培养模式[J].中国高等教育,2011(6):19 -21.

[11]Garcia-Molina H,Ullman J D,Widom J.数据库系统实现[M].杨冬青,吴 愈 青,包小源,等译.北京:机械工业出版社,2010.

[12]林 健.胜任卓越工程师培养的工科教师队伍建设[J].高等工程教育研究,2012(1):1 -14.

猜你喜欢

数据库系统页面课程设计
刷新生活的页面
龙凤元素系列课程设计
中秋明月
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
实时数据库系统数据安全采集方案
基于Articulate Storyline的微课程设计与开发
核反应堆材料数据库系统及其应用
开放大学课程设计与资源开发
Web安全问答(3)