APP下载

数据库原理及应用课程中创新能力培养的教学研究

2020-02-26李明勇游应德

计算机教育 2020年1期
关键词:数据模型范式数据库

李明勇,游应德

(宜宾学院 计算机与信息工程学院,四川 宜宾 644007)

0 引 言

21 世纪是信息时代,各个行业存在大量的数据,但需要信息化才能体现数据价值,信息化的技术支撑是数据库应用技术,普通高等学校人才培养目标是创新型应用人才。在计算机学科的专业中,核心课程数据库原理及应用的内容包含数据库应用技术,它具有自然科学和工程技术属性,如何挖掘该课程的创新因素,培养学生的创新能力,达到高等学校人才培养要求和符合时代需要的数据库应用技术人才,是教育者需要思考的课题。

1 创新因素组成

该课程的内涵可概括为将数据库原理结合到DBMS 中进行有效的应用数据库设计,并对已经完成的应用数据库进行访问,因此该课程内容有关系数据库理论、数据库设计、DBMS操作平台、数据保护策略、SQL 等。

创新包括基础创新和应用创新,其中应用创新是学生在明确的实验平台前提下,沿着清晰的技术路线进行特定的工程实践活动[1],在本课程中,主要培养学生应用创新思维和能力,如用SQL 解决实际问题、应用数据库的设计等。

创新因素应在课程内容中进行充分挖掘,创新因素基本结构如图1 所示。

图1 创新因素结构

2 教学研究

2.1 SQL 的教学

SQL 对数据库定义、访问、控制的核心地位是无法撼动的,SQL 是非过程化语言,语法简洁。计算机科学与技术专业学生必须牢固掌握SQL,通过学习,培养学生逻辑(程序)思维能力和应用创新能力,在教学过程中,如何培养学生应用创新能力,有以下方面。

1)代码编写规范与创新。

一个问题对应SQL 代码并不多,但需要注意代码的书写格式,如开始处的注释要完整和详细,虽然SQL 不区分大小写,但SQL 命令动词应尽量大写,其他标识符应遵守Pascal 或Camel命名规则,两个SQL 语句之间有空行,SQL 有嵌套时写成向右递缩形式等,DBMS 的代码编辑器有代码编写规范辅助功能,让学生了解并自觉使用。

学生在学习各种计算机语言时,SQL 的学习较早,应养成良好的代码书写习惯。习惯的养成越早越好,它是创新的基础,随意书写代码不是创新。

2)基本思维与创新。

虽然SQL 是非过程化语言,但并不意味着用SQL 求解问题时不考虑问题处理的细节,相反,还应该对问题的处理细节作深入分析,有助于编写正确的SQL。

在学习SQL 之前,应有充分知识准备处理问题的细节,这就是关系代数知识的学习,尤其关系代数中的专门运算:选择、投影和除运算,其中除运算的学习是一个难点,在开始学习中应注意它与集合包含的关系,通过“查询学习了所有课程的学生”等问题让学生了解除运算的作用,激发学生的学习兴趣,在学习SQL 中,遇到逻辑蕴涵时,就能理解求解过程的逻辑,从而写出正确的SQL 代码。

基本思维就是对问题的分析过程和处理过程,其中处理过程要细化到程序级,SQL 仅表现结果,但通过结果分析处理细节,不断培养逆向思维。

3)结构化思维与创新。

SQL 是结构化查询语言,很多复杂查询都要用到嵌套查询,例如,求解“查询选修课程数最多的学生”时,首先查询每位学生的选修课程数(作为子查询),再找出选修课程数最多的学生(作为父查询),子查询要完整地嵌套在父查询中,怎么嵌套值得研究,其中要有分组的思路。

把问题结构化是一种求解思路,像上述问题,先考虑宏观的查询(编写父查询SQL),再考虑细节(父查询的条件设置)。

在学生学习嵌套查询时,要从简单的问题求解开始,有意识地向嵌套求解方向引导,逐步培养学生结构化思维,用结构化思维解决新问题。

4)用分类、归纳、联想的思维方式学习SQL。

数据访问可分为查询与更新两类,对应的SQL 命令也不多,但查询的问题五花八门,这需要将问题分类、归纳,从过程中找出求解规律和新的方法。

例如,以上两问题“查询学习了所有课程的学生”“查询选修课程数最多的学生”,两者之间是否有关联,仔细分析后发现,前者用逻辑蕴涵求解,后者用嵌套方式求解,但后者是前者的一般情形,后者的求解思路可用于前者,就会发现前者有一个嵌套求解新方法,甚至可以联想到除法运算,思考它的复合过程。

SQL 的学习可延伸在课外,给学生大量的SQL 习题,这些习题的涉及范围是学生相对熟悉的,例如,学分统计计算查询、课程成绩、操行分排名等。

2.2 应用数据库设计的教学

应用数据库设计是本课程应用核心,其目标就是设计高质量的应用数据库,在设计的步骤中,最重要的三大步骤是分析用户的数据需求、设计数据模型、转换数据模型。分析用户需求是学生难以掌握,需要在后续课程(软件工程)中反复锤炼才能掌握;设计数据模型也是有一定难度,一般情况下,模型的形式是E-R 模型(实体—关系图),实体是通过不同抽象方法在用户提供的用户需求中分离出数据需求后,进行必要的分析才可能得到,实体之间的联系及其类型需要反复论证才能确认,而且设计数据模型需要经过分E-R 图到集成E-R 图过程,其中还要消除各种类型的冲突;转换数据模型一般将E-R 图转换成关系模型,在这一过程中,将实体与联系按照转换规则进行转换,尤其联系的转换,联系的类型不同,转换方式不同。

综上所述,以上三大步骤的难度依次递减,从学生能力角度来看,能够掌握的步骤是转换数据模型,但在教学过程中发现学生往往是凭感觉得到关系模式,而不是根据E-R 图转换成关系模式,造成这一现象的原因主要有三点:一是学生要解决的数据库设计问题相对简单,可以凭感觉做,但这样做会丢失数据库中数据或达不到功能要求;二是学生无法理解E-R 图与关系模式之间的对应关系,即使理解了,将E-R 图转换成关系模式也有一定困难;三是很难建立准确的E-R图,跳过E-R 图,直接得到关系模式。

在教学过程中,用案例驱动法分层次进行教学,以学生相对较熟悉的应用系统为例,例如学生信息系统、选课系统、考试系统、图书管理系统、工资管理系统、物资管理系统,甚至是其中的一个子系统,分析其中存在的若干实体及其联系,建立相应的概念模型E-R 图。然后再给学生相对不熟悉的案例,引导分析其中可能存在的实体和联系,试图建立概念模型。在实践过程中,可以将学生分成若干小组进行项目设计,每一个小组做一个相对真实的项目,教师可提供必要的文档或需求分析。在此基础上,要求学生建立E-R数据模型,总之帮助学生建立先有E-R 数据模型,再有关系模型的逻辑思维,摒弃凭感觉做的陋习,养成严谨做事习惯,从而建立创新思维。

2.3 DBMS 操作平台的教学

DBMS 操作平台中可以建立应用数据库,但会给学生带来一个错误观念,以为在其中能完成应用数据库设计,殊不知,那只是应用数据库设计的最后操作步骤。另外,在DBMS 中做实验,确实需要先建立一个应用数据库,这就进一步加深了学生的错误观念。为了纠正学生的错误,在教学过程中,我们运用CDIO 教学法。学生在学习数据库设计的基本知识时应注意,关系模式(表)来源于现实的实体,实体之间的联系,除了实体有属性外,联系也有属性,例如,数据项“成绩”既不是学生实体的属性,也不是课程实体的属性,而是两者之间联系的属性。在实验后续阶段,学生分小组做应用数据库设计实验,才能弄清数据库设计的方法、步骤,这是一个倒置的学习过程,但要建立正确的数据库设计思想,为将来应用数据库设计奠定基础。

本课程的概念非常多,有些概念要进行实验才能理解掌握,如“外码”就是对关系模式之间数据进行规范,首先应该使学生理解外码的现实意义,再说明外码概念,参照完整性概念。最后让学生进入实验室,定义外码,准备好数据,当出现违反参照完整性时,观察数据管理系统的反映,从而进一步理解外码的作用,防止错误和无效数据进入数据库,始终使数据处于正确、有效、相容状态[2]。

2.4 关系数据库理论的教学

关系数据库理论的应用之一是评价应用数据库的质量,尤其对数据的更新异常进行评价,这涉及关系模式的范式级别,尤其第三范式。学生学习范式过程中,应该从一个相对熟悉的实例开始,从中观察存在的各种异常现象,分析产生这些现象的原因是存在不合理的数据依赖,指出第一范式存在问题,从而自然地提高范式级别到第二范式,直到第三范式。在学习过程中,一定要让学生充分理解完全函数依赖和传递函数依赖等概念及之间的关系,可以从第三范式的概念出发,证明一个关系模式如果是第三范式,则一定是第二范式,进一步理解两者之间的关系,也可培养学生严密的推理思维。最后指出第三范式并不是彻底消除了各种异常现象,但使异常现象的严重程度大大降低。

使应用数据库达到第三范式是数据库质量的一个基本指标,意味着要消除数据库中存在的第一范式和第二范式,消除的方法主要是分解方法。对关系模式的分解要用到保持函数依赖和无损连接,要正确地分解关系模式,多数学生做不到,但应能判断关系模式达到第几范式。

关系数据库理论教学的一个内容就是证明Armstrong 公理系统的有效性和完备性,虽然它是模式分解算法的理论基础,但在学生学习过程中,能培养严谨的推理思维和抽象思维。还能得到一些非常有用的结果:属性集闭包算法,该算法可以让学生编写程序实现,这是一个创新内容。

2.5 基本概念的教学

在本课程中,基本概念很多,学生对这些概念的理解有困难,应在后续学习中反复领悟,分散学习。在学习数据库原理中,有一些基本概念,例如以函数依赖为中心的各种依赖,适时提出超出函数依赖范畴的连接依赖或理想的范式级别,引导学生在基础理论领域有新的发现培养学生基础创新意识和能力;可以对概念进行分层次学习,培养学生应用创新能力。例如,候选码这个概念就是其中的典型代表,为了便于理解,第一层次是:能唯一标识实体的属性集称为候选码,该描述浅显易懂,但不准确;教学时应举例说明不准确,并引导学生分析为什么不准确。第二层次:设K 为关系模式R中的属性集,若属性全集完全函数依赖于K,则K 为R 的候选码[1],该描述是准确的,但比较难懂,涉及函数依赖等概念,但一定要让学生理解掌握,并能用属性集闭包算法证明一个属性集为关系模式的候选码,有了这些基本知识后,给出一个问题,如何进行程序设计,找到复杂关系模式的全部候选码。

3 创新能力培养的有效途径

在新时代新工科大背景下,“数据库原理及应用”如何培养学生创新能力是值得研究的课题,教师教什么、怎么教,学生学什么、怎么学等问题,一定要围绕学生的学为中心进行,要注重培养学生的创新意识和创新能力。

3.1 明确教学内容

如前所述,课程中对很多基本概念、基本知识要进行取舍,分层次进行教学和学习,例如,围绕以关系模式R(U,F)为中心的概念教学模式,舍弃数据库技术的发展史中涉及的概念等,培养学生的抽象思维;以SQL 为中心的学习模式,但要保留关系代数,有利于培养学生计算和逻辑思维;在DBMS 环境中,采用CDIO 方式学习数据库的保护策略,而不是单纯介绍基本知识;以第三范式为中心学习关系数据库理论,培养学生严密的推理能力和学习兴趣;让学生熟练掌握一个DBMS 操作,提高学生对数据库的操作能力;分小组完成一个应用数据库设计,重点掌握从概念模型设计到逻辑结构的转换方法,培养学生应用创新能力与合作能力;可以将DBMS 中的并和数据恢复作为选学内容。

3.2 采用线上线下的教学模式

为了有利于开展教学,充分利用网络,进行线上线下教学模式。线上,精心编写用于检验基本知识、基本概念的考试试题库,学生在线上完成答题,并可以多次重复做,直到达到优秀等级;将要完成学习时,准备好大量的综合试题库,以“一人一题”方式进行上机考试,这样,可以培养学生独立思考能力。线下,精心准备上课内容,以培养学生思维为向导,引导学生思考学习内容,拓展思考空间,以问题为向导,最大限度地培养学生分析问题和解决问题的能力;在实验室中示范解决问题的细节过程,先让学生在实验环境中学会模仿,逐步形成思维模式,形成发现新问题和解决新问题的能力。

4 结 语

由于“数据库原理及应用”开设学期较早,我们从该课程中挖掘创新因素,在后续课程中力求做到创新因素的挖掘,培养学生创新思维和创新能力,将这些看似碎片化创新因素组成有机整体,最终形成学生专业核心能力。

猜你喜欢

数据模型范式数据库
以写促读:构建群文阅读教学范式
范式空白:《莫失莫忘》的否定之维
基于区块链的微网绿电交易数据模型研究
孙惠芬乡土写作批评的六个范式
基于Pro/E 的发射装置设计数据快速转化方法
管窥西方“诗辩”发展史的四次范式转换
数据库
数据库
数据库
数据库