第一论文网免费提供教育技术学论文范文,教育技术学论文格式模板下载

数据库概论精品课程建设探索

  • 投稿小黄
  • 更新时间2015-10-09
  • 阅读量337次
  • 评分4
  • 20
  • 0

王丽珍,肖清,陈红梅

(云南大学 信息学院计算机科学与工程系,云南 昆明 650091)

摘要:以数据库概论课程教学中具有代表性的知识点为例,阐述“研究式”教学理念的探索与实践过程并作深入分析。

教育期刊网 http://www.jyqkw.com
关键词 :数据库概论;“研究式”教学;关系代数;连接操作;精品课程

基金项目:云南省精品课程建设项目“数据库概论”(X3106015)。

第一作者简介:王丽珍,女,教授,研究方向为数据库、数据挖掘和计算机算法,lzhwang@ynu.edu.cn。

0 引言

课程建设中要明确授课的3个层次。首先,需要将课程内容的基本概念、基本原理和基本方法以生动形象的形式讲解清楚,这些称为课程内容的知识点,也是掌握课程内容的基础;其次,在知识点的讲解过程中将多个知识点组织起来,通过对知识点的综合,帮助学生在更好地掌握知识点的同时,培养学生的组织和综合能力,此为能力点;第3层次的教学是培养学生的创新能力,通过“研究式”教学将研究变成学生的自觉思维。授课的3个层次如图1所示。

1 关于“研究式”教学的探索

研究的过程是发现问题、解决问题和评价结果的过程[1],“研究式”教学要培养学生的观察能力、定义能力、解决能力和论证评价能力,实现从传统“知识传递式”教学到在教师引导下的现象观察、真理探索和问题求解的“课题研究式”教学转换。学生通过对课程内容的“研究式”学习,激发学习热情,变被动接受为主动思考与探索,有效地提高学习积极性和效果。将发现问题、解决问题和评价结果的研究过程有机地融于教学过程中是研究式教学方法的关键。

1) 引导学生通过观察现象发现问题。

观察能力是研究者必须具备的基本素质,能通过观察现象发现问题是观察能力的体现。教师在以往教学中常常将问题及其解决的方法讲解到位,却忽略引导学生思考和分析问题的由来以及学生观察能力的培养。例如,在数据库概论课程的“数据库完整性”知识点的教学中,教师一般会详细地讲解数据库完整性的概念、3类完整性及违约处理等内容,却忽略引导学生观察和思考“系统为什么要考虑数据库完整性” “可能破坏数据库完整性的因素有哪些”等问题,特别是基于具体事例引导学生讨论这些问题。

2) 培养学生定义问题的能力。

在观察到问题之后,如何抽象并定义问题是研究工作的基础。数据库概论课程教学中有大量概念和定义的讲解,但教师不重视讲解从具体问题中抽象出概念和定义的方法。所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特征,忽略非本质的细节,把这些特征用各种概念精确地加以描述[2]。抽象一般分以下3种。

(1)分类(classification)。分类用于抽象现实世界中一组对象的类型。具体而言,分类就是为具有某些共同特性和行为的对象定义一个概念,它抽象了对象值和型之间的“is member of”语义。例如,在学生信息管理系统中,李明是学生,具有学生共同的特性和行为:学号、姓名、专业、选修课程,如图2所示。

(2)聚集(aggregation)。聚集用于抽象对象类型和组成成分之间的“is part of”语义,E-R模型中若干属性的聚集组成实体型,就是这种抽象,如图3所示。

(3)概括(generalization)。概括用于抽象对象类型之间的“is subset of”语义。例如,某商店的商品包括日用品、电子产品和农用物资等,而电子产品又包括冰箱、彩电和空调等,如图4所示,同时从图4可以看到分类和概括之间的区别。

在数据库概论课程的整个教学过程中,这3类抽象能力的示范和培养将有力地提升学生定义问题的能力。例如,通过定义数据库的3类完整性概念,培养学生的分类和概括能力。

3) 培养解决问题的能力。

一般而言,解决问题的能力包括推理、证明和设计的能力。表1是分别用于培养学生解决问题的推理能力、证明能力和设计能力的相关教学内容。

例1:在“数据库并发控制”教学中,首先通过实例分析“DBMS对并发事务不同的调度可能会产生不同的结果”,接着引导学生思考“什么是并发调度正确性的标准”“直观上串行调度是正确的”“执行结果等价于串行调度的调度也是正确的”,推出“可串行化(serializable)调度是并发事务正确调度的准则”。对于“如何判断可串行化”,依然需要推理能力。在教学中,教师可通过图文并茂的形式(如图5所示)帮助学生既理解概念,又学到方法。

例2:在“数据库完整性”教学中,首先引出问题“如何设计系统以实现数据库完整性维护”,然后解决3个基本问题:①如何表达完整性约束条件;②如何检查完整性约束条件及何时检查;③违反约束条件时如何处理,最后得出实现数据库完整性的系统需包括:①提供定义完整性约束条件的机制;②提供完整性检查的方法;③违约处理。通过这个例子我们可以看到,学生解决问题能力的培养可以有机地融于教学中。

4) 培养论证评价的能力。

所谓论证评价能力,就是引导学生思考一个数据库系统的各种设计方法好的标准是什么以及如何进行评价等问题。例如,在讲解数据库的封锁并发控制技术时,教师可使用图6形象地分析“采用封锁技术的调度”与“可串行化调度(即正确的调度)”之间的关系,在此基础上引出使用封锁技术的策略——两段锁协议。可见,论证评价不仅有助于理解“封锁技术”,更重要的是让学生记住封锁协议的意义。

3 “研究式”教学的实践

3.1 示例1:关系代数的除运算

关系代数是一种抽象的查询语言,它用关系运算来表达查询[3]。除运算是关系代数中学生最不易理解和掌握的一个知识点,采取“研究式”教学模式可以取得良好的教学效果。

1) 从引例出发,引导学生观察和发现引入“除运算”的必要性。

以学生—课程数据库为例,考虑查询“至少选修1号课程和3号课程的学生号码”。

假设有学生选课关系SC(见表1):

这个查询的关系代数表达式为:,但是如果查询要求是“选修了全部课程的学生号码”,同时全部课程是动态变化的,那么查询语句如何写呢?显然使用前述的关系运算难以表达,需要引入一个新的运算符。

2) 抽象相关的查询要求,定义关系代数的除运算。

分析包含“至少”“全部”等信息的查询要求及结果,发现这类查询的共性。使用图7抽象查询“至少选修1号课程和3号课程的学生号码”的运算及结果,可以看到“÷”运算表达的含义及结果。于是,定义关系代数的“除运算”如下:设有关系R(X, Y)和S(Y),其中X、Y可以是单个属性或属性集,则除法运算定义为

这就是说,关系R除以关系S所得的商是一个新的关系P(X),P是R中满足下列条件的元组在X上的投影:元组在X上分量值x的像集Yx包含关系集S。

3) 通过课堂和课后练习,提高学生应用“除运算”表达查询的能力。

假设有课程关系C(见表2):

应用除运算表达查询“选修了全部课程的学生号码”的表达式为:。如果查询要求是“选修了全部课程的学生学号和姓名”,查询表达式又怎样呢?类似的查询还有“查询至少选修‘刘力’老师所授全部课程的学生姓名”“查询全部学生都选修课程的课程号和课程名”等。

4) 以示例说明除运算不是基本运算,引进它并不增加语言的能力,但可以简化代数表达式。

如果记图7中除关系为K,那么有:

还有等价的表达式吗?教师可通过对等价表达式的思考,有效地加强学生对除运算的理解和应用能力。

3.2示例2:关系连接(join)操作的实现

教材中有些理论内容都是从以往的研究中得来的。示例1以“还原”课本理论的历史状态和研究过程的形式,进行“研究式”的教学;而另一种形式的“研究式”教学则是在讲解理论知识的基础上,引导学生进行进一步地、深层次地思考,如在新的应用背景、约束条件或技术条件下重新审视教材示例。

关系查询往往涉及多表,对多个表进行的查询称为连接查询,其中的连接操作是查询处理中最耗时的操作之一。对于连接操作的算法实现,教材一般仅就等值连接或自然连接最常用的实现算法进行介绍[2-3],包括:①嵌套循环方法(nested loop);②排序—合并方法(sort-merge join 或merge join);③索引连接方法(index join);④hash join方法。教师可在“研究式”教学中,引导学生思考和研究连接操作及其计算代价等内容。

1) 引导学生划分不同的连接操作,分析不同类型连接操作的异同。

分类:连接操作可分为一般(内)连接、等值连接、自然连接和外连接等。在各种连接中,还有单个表的连接、两个表的连接和多个表的连接;在外连接中又有左外连接、右外连接和全外连接等。

分析异同:一般(内)连接、等值连接和自然连接满足交换律和结合律,即:

连接的交换律:设E1和E2是关系代数表达式,F是连接运算的条件,则有:

连接的结合律:设E1、E2和E3是关系代数表达式,F1和F2是连接运算的条件,则有:

左(右)外连接显然不满足交换律,那么“自然左外连接操作满足结合律吗?”通过如下反例可证明不满足。

此外,选择对自然连接的分配律,在自然左外连接操作下,有以下的等式与不等式:

2) 引导学生分析与思考多个连接(join)的操作次序与计算代价的关系。

大多数查询将投影和选择下推后可以表示为多表连接查询,因此,无论是传统的数据库还是并行数据库,查询优化都是围绕着多表连接操作进行。

如n=5,此数是1 680。当n增大时,这个数字迅速增长。当n=7,此数变为665 280;当n=10,此数大于176亿!一般而言,对于n个关系,有(2(n-1))!/(n-1)!个不同的连接组合。

然后,讨论如何确定多表连接的操作次序,常用的策略包括以下几个。

(1)枚举法:多表连接中可能的连接组合称为问题的解空间,枚举法就是通过解空间中的每个可能解找到最优解,当解空间增大时求解效率相当低。

(2)启发式算法:寻求一种能产生可行解的启发式规则,找到最优解或近似最优解,但在不同的应用背景、限定条件或体系结构下会有不同的启发式规则,因此该方法不具有通用性,也不能保证所得的结果最优。

(3)搜索算法:在可行解集合的一个子集内进行搜索,搜索算法的随机性和盲目性不能保证得到最优解,该算法需要结合一些启发知识才能在一定程度上达到要求。

(4)遗传算法:这是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,它将原问题的解空间映射到位串空间中,然后再实施遗传操作,强调个体基因结构的变化对其适应度的影响。

除了以上的常用方法,还可以引导学生进行一系列研究,例如,围绕关系R,对于要执行的两个join操作Rx join R和Ry join R,假设它们的连接属性分别为Ax和Ay。那么,Rx join R先执行的总计算代价低于(等于) Ry join R先执行的总计算代价的充要条件为 |Rx|/|Ax| < (=) |Ry|/|Ay|。当|Rx|/|Ax| < |Ry|/|Ay|时,Rx join R应先于Ry join R执行,该关系记为Rx join R before Ry join R;当|Rx|/|Ax| = |Ry|/|Ay|时,不论Rx join R先执行还是Ry join R先执行,总计算代价都相等,该关系记为 Rx join R equal Ry join R。当围绕关系R存在多个join操作时,操作间的before关系存在传递性,即围绕关系R,对于要执行的3个相关的join操作Rx join R、 Ry join R和Rz join R,假设连接属性分别为Ax、Ay和Az,那么,若存在Rx join R before Ry join R和Ry join R before Rz join R,则Rx join R before Rz join R。

证明:由Rx join R before Ry join R

当围绕关系R存在多个join操作时,操作间的before和equa1关系也存在如下的传递性:

若存在Rx join R before Ry join R和Ry join R equal Rz join R,则Rx join R before Rz join R(证明略)。

当围绕关系R存在多个join操作时,操作间的equa1和before关系也存在如下的传递性:

若存在Rx join R equal Ry join R和Ry join R before Rz join R,则Rx join R before Rz join R(证明略)。

在进行了以上的形式化研究后,教师可以设计一个算法,确定多个相关连接的操作次序,传递关系的存在可以保证每一次优选出来的join操作在执行次序上优于下一次优选出来的join操作。

4 结语

总的说来,在数据库概论精品课程建设过程中,针对该课程的特点、学生的总体情况、授课教师多年在数据库方向研究的优势,笔者对“研究式”教学的内容、形式和方法进行了探索与实践。可以说,“研究式”教学在激发学生的兴趣、帮助学生深刻理解问题本身及其解决方法的基础上,调动了学生的学习积极性,有力地激发了学生探究新兴研究课题的兴趣,强化了学生在教与学中的主体地位。同时,“研究式”教学也促进了教师的相关科研工作,因此“教学与科研相结合”在“研究式”教学下具有自然结合的特点。

总之,“研究式”教学对培养学生的创新能力、增强学生学习和研究的动力、提高学生了解科研动态和新兴研究方向的兴趣等方面都有极其重要的促进作用,我们将在今后的教学过程中不断研究和总结,进一步完善“研究式”教学的质量。

教育期刊网 http://www.jyqkw.com
参考文献

[1] Tan P N, Steinbach M, Kumar V. 数据挖掘导论[M]. 范明, 范宏建, 译. 北京: 人民邮电出版社, 2006: 1-10.

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

[3] Silberschatz A, Korth H F, Sudarshan S. 数据库系统概念[M]. 杨冬青, 马秀莉, 唐世渭, 译. 北京: 机械工业出版社, 2008: 27-37.

(编辑:宋文婷)