计算机基础实验的设计与应用

2014-10-13 05:02李艳玲
长治学院学报 2014年5期
关键词:学号反例表达式

李艳玲

(长治学院 计算机系,山西 长治 046011)

0 引言

“Access”是一门实践性很强的计算机课程,是国内多数高校非计算机专业的公共基础课,也是全国计算机等级考试的科目之一,相当一部分学生们有浓厚的学习愿望[1]。如何设计新型实验模式,培养学生的学习兴趣是值得思索的问题。

在长治学院理科类非计算机专业的Access教学中,我们尝试一系列改革,引入了新的实验设计案例,提高学生的动手能力和分析问题的能力,提升学生的自信心和成就感。

1 反面案例在实验教学中的巧妙设置

根据瑞士心理学家皮亚杰认知发展理论的教学观,错误是有意义的学习所必需的。在Access教学过程中,运行有错误的实例,提出“为什么?”,然后解决问题,告诉学生“不能这样做”[2]。反面案例的设置帮助学生积累经验教训,加深印象,做实验时少走弯路,从而起到事半功倍的效果。

1.1 参照完整性

讲解参照完整性与表之间的关联时,巧妙运用反例提高学生解决问题的能力。实际上数据库中的每个表之间是相互独立存在的。只有通过某些字段,才能在表与表之间建立关系,参照完整性则是数据表之间联系的规则。Access使用参照完整性确保相关表中记录之间关系的有效性,防止意外删除或更改相关数据。笔者通过学生管理数据库讲授参照完整性包括的两方面内容:

(1)子表中不能增加主表里没有的记录。

即成绩表中不能出现学生表里没有的学生,教学中可以设置反例说明该规则。在学生表和成绩表之间建立一对多的关系,“学生”表的学号字段已设置为主键。我们在成绩表中输入一条记录:“07403202,04,99,T03”,该学生信息在作为主表的学生中不存在,表内容如图1所示。

图1 学生表和成绩表内容

当我们实施学生表和成绩表的参照完整性约束时,系统提示不能实施参照完整性,如图2所示。此时,教师启发学生思考:第一,参照完整性约束规则对父表和子表的要求是什么?让学生理解父表中没有的记录,子表是不能添加的,也就是两个表中不能出现“学号”不相等的记录。第二,哪条记录不符合参照完整性约束?通过引导,多数学生能找出学号为“07403202”的学生记录在父表中是不存在的。第三,如何解决才能正确建立这个关系?当然是在“学生表”中增加或者在“成绩表”中删除或修改该记录。

图2 不能实施参照完整性反例

(2)父表中不能删除建立了参照完整性的子表内容。

我们已正确建立“学生表”和“成绩表”的参照完整性规则,教学中设计的反例是删除学生表中“07403201,白华,女,英语0702,陕西,团员,1996/4/16”的记录。系统提示不能“删除或改变该记录”,如图3所示。原因是“成绩表”中包含了“学生表”的相关记录,不能删除或更改。然后引导学生通过勾选“级联删除”解决问题,当选中“级联删除复选框”时,删除父表中的记录,Access将自动删除相关表的相关记录。最后再引出对于另一个复选框“级联更新”的讲解,加深学生对“参照完整性”、“级联更新”和“级联删除”的理解和认识。

图3 不能删除记录反例

1.2 分组查询的反例

数据查询是数据库的核心操作,SQL语言提供了SELECT语句进行数据查询,该语句是SQL语言的核心,功能强、变化形式多[3]。SQL可以通过合计函数进行分组计算查询,我们可以从学生、成绩两个表中查询每个学生的学号、姓名和总分信息。学生可以很容易说出相应的SQL语句:SELECT学生.学号,姓名,sum(成绩)AS总分FROM学生 INNER JOIN成绩 ON学生.学号=成绩.学号 GROUP BY学生.学号。但是,系统提示"查询中不包含作为合计函数一部分的特定表达式'姓名'"。在出现警告信息后,引导学生观察哪里出现错误了,应该怎样改正。

接下来教师可以重新强调一下分组查询要注意的地方,当我们采用GROUP BY短语按某字段进行分组查询时,输出选项中除了可以包含分组字段外,其他输出选项必须是合计函数或含有合计函数的计算字段。学生就会理解SELECT后的'姓名'既不是分组字段,也没有包含合计函数,所以会出错。最后启发学生输出选项中的姓名换为合计函数FIRST(姓名)AS姓名或者按学号姓名分组,将其改为:GROUP BY 学生,学号,姓名。

2 表达式实验在Access上的高效实现

表达式的应用是学习Access过程中的一个难点。它不仅用于查询和筛选准则,还用于有效性规则以及其他计算,由字段名、常量、运算符和函数按规则组合而成,以产生某种运算结果。尽管在所有的教材中,对表达式的描述篇幅都不长,但是表达式的应用贯穿于整个Access的学习过程,学好它是掌握Access知识的关键。

而传统的教学方法对学生完成“表达式实验”并不理想,抽象的常量、函数、运算符等运算对象的讲解不够直观,学生感觉枯燥,影响教学效果。我们把表达式的讲授安排在SQL部分,化抽象为形象,提高学生的实验兴趣,实践证实这是一种高效的学习方式。

在Access中,可以应用SQL语句来实现数据的查询与管理。建立表结构语句是CREAT TABLE,SQL数据查询可以通过SELECT语句实现。SELECT语句中包含的子句很多,其语句格式为:Select<输出选项>From<数据来源表>[Where<筛选条件>][Group by<分组项目>[having<分组筛选条件>]][Order by<排序项目>]。我们在练习表达式时将其简化为Select<表达式>[From<表名>]。当表达式与表记录无关时,省略方括号中的缺省项。我们可以用如图4所示实例说明各种不同数据类型,利用SELECT语句直观形象,对结果的显示也是一目了然。同样的方法可以运用在学生练习数学表达式中,通过SQL求解一元二次方程的根。首先创建“abc”表,其中包括a,b,c三个字段,均为双精度float类型,表结构如图5所示。此时的表达式与表相关,用“SELECT-FROM”结构显示所有方程的根,如图5所示。

图4 数据类型实例

图5 求解方程实根

3 结 语

通过新方法的尝试,笔乾在指导学生实验的过程中,明显感觉到学生的错误减少了,在面对问题时可以自己动手解决,并能拓宽所学的知识面。结果表明,上机时很少有学生出现玩游戏、看视频等行为,所以科学设置实验方案,能极大地激发学生的学习兴趣,将学生引导到正确的轨道[4][5]。

[1]高翔.任务驱动法在“Access 数据库技术”教学中的实践[J].计算机教育,2009,(23):139-141.

[2]从反面案例谈学生解决问题能力的培养-以程序设计基础Access课程为例[J].计算机教育,2013,12(22):12-15.

[3]马桂芳等.数据库技术及应用(Access)[M].北京:人民邮电出版社,2013.

[4]万华,常珊,涂淑琴.数据库“Access”实验教学改革与实践[J].中国电力教育,2013,(31):145-147.

[5]刘义良.计算机实验教学课堂行为管理的实践及应用[J].实验室研究与探索,2011,30(20):170-172.

猜你喜欢
学号反例表达式
几个存在反例的数学猜想
一个混合核Hilbert型积分不等式及其算子范数表达式
表达式转换及求值探析
我们来打牌
浅析C语言运算符及表达式的教学误区
尝试亲历的过程,感受探究的快乐
活用反例扩大教学成果
利用学具构造一道几何反例图形
学生学号的妙用
与56号说再见