数据库系统概论课程案例教学探讨
2020-02-23贺琳
贺琳
(大连海事大学 航运经济管理学院,辽宁 大连)
一 引言
数据库是数据管理的有效技术,是计算机科学的重要分支[1,2]。近年来,数据库技术发展速度异常迅速,应用广泛,因此,各院校除了信息类专业,大量与信息相关的工科专业都开设了数据库相关课程。然而,通过对现有数据库系统概论教材、内容、教学体系的梳理,可以发现,目前数据库系统概论课程教学过程中还存在许多问题,学生不清楚知识点、知识流在实际过程中如何体现以及之间的内在联系,没有形成合理的知识体系[3]。 最终导致“教”与“学”脱节,“学”与“用”脱节,没有达到教学目标。造成该结果的直接原因就是在教授数据库系统概论课程时,忽略了数据库案例的建设,导致了理论教学与实践教学的脱节。
2015年教育部出台的《教育部关于加强专业学位研究生案例教学和联合培养基地建设的意见》中将案例教学定义为:以学生为中心,以案例为基础,将理论与实践紧密结合,引导学生发现问题、分析问题、解决问题,从而掌握理论、形成观点、提高能力的一种教学方式[4]。案例教学是一种有效结合理论与实践的互动教学方式,本文主要分析了数据库系统概论课程的特点,从知识和能力两方面重新设计了教学目标,探讨了教学案例分析在数据库教学中的效果,旨在为数据库课程教学方法提供一定的可参考性建议。
二 数据库系统概论课程的特点
(一) 课程知识覆盖面广且抽象
目前,多数院校的数据库系统概论课程的教学内容基本包含数据库基础概念,数据库设计和数据库系统管理三个部分,涉及的教学知识点主要包括数据库系统基本概念、关系代数、SQL语言、数据库安全性、数据完整性、关系数据库模式分解、关系数据库设计、关系数据库查询优化、关系数据库事务处理、关系数据库并发控制和故障恢复等。每个知识点又涵盖很多概念和定理证明。例如封锁是实现并发控制的一个非常重要的技术,DBMS通常提供了多种类型的封锁,一个事务对某个数据对象加锁后究竟拥有什么样的控制是由封锁的类型、封锁的粒度决定的。锁的类型、粒度等,内容复杂、抽象,难以理解。
(二) 课程知识点耦合度高
在授课过程中,是一个知识点一个知识点讲解,但在实践中,需要串联使用[5]。例如,基础内容里的关系代数是数据库系统管理内容中查询优化的基础,模式分解是数据库设计中逻辑模型设计的基础。单个知识点授课,无法体现知识点、知识流在实际应用中的内在联系。
(三) 课时分配上理论教学占较大比例,实践教学相对独立
授课顺序上也是理论内容在前,只有讲到相关设计编程章节时才进行实践操作[6]。以大连海事大学航运经济管理学院为例,信息管理专业、电子商务专业和物流管理专业开设的“数据库系统概论”课程为64课时,理论40课时,实践24课时。课程的实践部分集中在课程的后半段的。学生对所学知识“只知其表,不知其理”,没有理解理论知识点内涵;对知识生搬硬套、简单模仿,无法针对实际管理问题,提出合理可行的解决方法。
(四) 课程相关新知识与技术发展更新速度快
随着大数据、云计算、机器学习与人工智能技术的发展,数据库模式也由经典的关系型数据库向多元化的数据库模型(分布式数据库,NewSql数据库,数据仓库)发展,工业界涌现了大量新型数据库管理(如阿里的OceanBase数据库,Google Spanner,ScaleBase等)[7,8]。但国内大多院校的教材的更新速度明显滞后,同时院校的实验环境也无法快速升级。
三 数据库系统概论课程的目标
针对理论教学与实践教学的脱节问题,结合数据库课程的特点,以及各专业对数据库应用的实际需求,论文对数据库类课程教学目标进行了重新设计。将数据库系统概论课程的目标可以分为知识目标和能力目标两部分。
(一) 知识目标
(1)理解数据库系统概论基本概念和基础理论知识,掌握数据、数据库、数据库管理系统、数据库系统的概念和内涵,系统掌握数据模型、数据库三级模式结构的概念和知识;
(2)在了解数据库相关操作语言种类的基础上,掌握SQL语言中DDL、DML、DCL等方面的知识;
(3)理解和掌握范式、数据依赖、函数依赖闭包、属性闭包、最小函数依赖集、Armstrong公理系统等关系数据库理论的知识,以及数据库设计步骤、方法、开发技能等;
(4)理解和掌握数据库安全、完整性、并发、备份与恢复等数据库维护和控制方面知识。
(二) 能力目标
(1)具有相关数据库管理系统软件实际操作能力;
(2)针对实际数据管理系统具有分析、设计、优化数据库,以及进行数据库应用系统开发实现的能力;
(3)具有数据库维护和控制的实际操作技能。
四 数据库系统概论教学中的案例设计
根据数据库设计与实现的步骤,进行案例教学内容的设计,利用一个案例串联课程的前后知识点。
(一) 需求分析案例
给出一个同学比较熟悉的业务场景,简化后,让同学分组讨论,对数据进行分析,绘制数据流程图,编写详细的数据词典。业务场景可以根据学生的专业背景,参考企业人才需求,与各学科专家,行业专家协同精选。案例教学中采用的案例应该是基于事实的基础上讲述道理而编写的故事,具有明确的教学内涵,有助于学生理解理论知识点、提升实践操作能力的[9]。论文以经典的学校院系和学生管理情景为例,假设学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课程可以由若干学生选修。根据以上业务背景,写出表1所示数据字典。
(二) 概念模型设计案例
在需求分析的基础上,利用数据库设计软件,如Power Design进行E-R模型设计,详细描述实体的属性和实体之间的联系,消除不必要的冗余。上述场景中,可抽取出图1概念模型,一共包含学校、系、教研室、班级、教员、学生、课程七个实体。图中的矩形表示实体,连线表示确定每个实体的属性和码以及实体和实体之间的联系。
(三) 逻辑模型设计案例
选择关系模型作为数据库的逻辑模型,依据概念模型向逻辑模型的转换规则,实现E-R图向关系模型的转换。在此基础上,根据函数依赖,优化数据模型。详细说明实体、实体属性和实体之间的关系。图1概念模型可以转换成图2的所示的8个逻辑模型,其中新增的选修关系,是由概念模型中的m:n联系转换而来,1:n联系n头的实体属性中,增加了1头实体的码。案例直观立体地展示了实体的1:n和m:n联系的转换规则。
图1 概念模型案例
(四) 物理模型设计案例
根据逻辑设计案例,进行数据库的存储路径和存取方式设计,特别是index索引的实际。然后可以利用数据库设计软件,直接转换成选定的关系型数据库管理系统(如Mysql)的数据库生成语句。案例数据库可以得到如图3所示数据库定义语句,在Mysql中创建一个School主题数据库,包含student、class、lesson、office、officer、school、sept和 sc数 据 表。抽取其中一个表“学生(student)”和逻辑模型当中实体“学生(student)”的属性对照,如图4所示。
(五) 数据库应用系统编程
让同学选择一个熟悉的开发平台,例如Java、.NET或php开发平台环境,在充分理解ODBC或JDBC的基础上,开发数据库应用系统。特别要注意系统开发中业务的事务处理控制。
(六) 数据库的管理和维护案例
在数据库运行阶段,进行数据库的备份和恢复操作,查看各级日志文件。
五 效果分析
对2018级电子商务专业和物流管理专业共125名学生的学习效果调查统计结果表明,本课程结合案例教学内容与课程目标,呈现良好的教学效果。38.5%的同学认为案例教学对数据库系统概论课程的学习非常有帮助, 57.2% 的同学认为有帮助。
六 结束语
论文构建了数据库系统概论课程的案例教学内容,拓宽了学生案例学习渠道,探索了数据库实践与案例教学方法。学生通过一个典型案例串联数据库课程的前后知识点,理解数据库分析与设计的生产全过程,能够深刻理解和掌握数据库实践知识和流程。
图2 逻辑模型案例
图3 数据库定义案例
图4 数据库表与数据库逻辑模型实体属性对照图