APP下载

数据库查询语句教学中使用数据生成过程演示

2015-02-12史胜利

阴山学刊(自然科学版) 2015年1期
关键词:数据处理



数据库查询语句教学中使用数据生成过程演示

史 胜 利

(包头师范学院 信息科学与技术学院,内蒙古 包头 014030)

摘要:针对《数据库应用》课程教学中查询语句,作者在教学中总结出了一种数据生成过程演示的方法。该方法把复杂的查询语句分解为多个操作步骤,通过手工构造出每个操作对数据处理的结果,把整个查询过程手工演示出来。这种方法可使抽象的查询语句变得具体化、程序化,有助于学生学习和掌握查询语句的使用。

关键词:查询语句;数据处理 ; 数据库应用

查询语句看似简单,一句代码就可单独执行得到结果,但其实由表数据得到查询结果是有一个复杂的处理过程。在使用中查询语句往往由多个子句组成,每个子句完成特定的功能,各子句依次处理数据,得到最终的结果。不同的子句组合的代码,数据处理过程也不同,子句的组合多种多样,也造成数据处理过程复杂多样,对于刚学习的学生可能感觉数据的处理过程没有固定的步骤、规律可依,复杂多变,学习起来有一定的难度。所以在教学中使学生熟悉数据处理的流程、能自己动手清晰地完成数据处理过程非常必要。学生明白了数据处理过程,就会对各子句的功能有更深地认识,更好的理解各子句的关系,才能读懂复杂的代码,才能在写代码时有清晰的思路。但是我们现在课本和教师的教学中对数据处理过程讲解的内容较少。本文提出了一个方法,通过手工演示数据处理过程,使学生熟悉查询语句的对数据的处理过程,熟悉各子句的特点,使学生在学习中提高效率。

1数据处理过程描述

下面讲述一下教学过程中总结出的数据处理过程。

查询语句中各子句对数据的处理有一定的顺序性,我们先看一下各子句执行的顺序性。查询语句包括的子句有:select子句、 from子句、 where子句、 order by子句、group by子句、 having子句、子查询子句,其中为了处理需要,可以将where语句中的筛选条件分为连接条件和普通筛选条件,from子句中如果涉及到多个表,就隐含着多表的表连接,以下把两表的无条件连接作为一个处理过程,并称为表的交叉连接[2]。对数据的处理可以按以下的顺序来进行,首先是表的交叉连接,然后是表连接条件筛选,接着依次是普通筛选条件、group by分组、select列运算、having筛选、order by排序[3]。

1.1举例描述数据处理过程

下面举例说明各子句的顺序性。例子是以oracle数据库中scott用户下的emp表和dept表为基础作查询。

查询语句:

Select emp.deptno,dname,avg(sal) from emp,dept where emp.detpno=dept.detpno and sal>2000 group by emp.deptno,dname order by dname

(1)

查询语句(1)的数据处理可通过以下过程实现:

①首先是emp和dept的交叉连接,表的交叉连接就是依次取一个表中的每行记录,与另一个表中的所有记录连接组合成新的记录,最终组合成一个大表。如果emp是一个有7个字段14行记录的表,dept是一个有3个字段4行记录的表,交叉连接后就得到一个14*7行记录、10个字段的大表。交叉连接后的大表中的记录是由用于连接的两个表中的数据任意连接而成,大表中的一条记录由两部分组合成,这两部分分别来自于用于连接的两个表中的数据,而这两个表的数据可能是不相关的,这就造成交叉连接后的大表中的很多数据是无用的数据。但是在有表连接的查询语句中,两表的连接是其它操作的基础,并且可以根据连接规则很容易构造出交叉连接后的大表,后续的操作就可以在这个大表的基础上有条理的进行。

②接着是表连接条件“emp.detpno=dept.detpno”在前面交叉连接表基础上筛选数据,然后是普通筛选条件“sal>2000”筛选,这两个筛选都是针对每一个记录判断是否满足筛选要求,这样经过筛选后只留下需要的数据记录。

③接着是“group by emp.deptno,dname”分组,分组的意义在于为统计函数做准备,就是后续的统计函数会依据分组后的结果对每组做统计操作,分组操作实质是要把分组字段值相同的记录排列到一块儿,如果不考虑顺序性,分组操作可按分组字段排序来实现。

④接着是“Select emp.deptno,dname,avg(sal)”子句分组统计平均值,这样运算后得到的每一行记录是由emp.deptno和dname的分组字段值、以及该组的avg(sal)平均工资值组成。

⑤然后在上一步操作结果基础上再进行“having avg(sal)>3000”筛选,选出满足条件的记录。

⑥最后是“order by dname”对筛选的结果进行排序。

经过这一系列处理过程得到的数据就是查询语句执行的结果。

1.2数据处理过程分析

上面例题中对数据的处理过程可以推广到所有类似的查询语句中。在类似上面有表连接的查询语句中,可将处理过程分解为上面提到的几个步骤,每个步骤对数据的处理都可以通过手动的操作数据构造出来。表的交叉连接结果可通过移动组合数据构造出来,数据筛选、分组可通过移动数据得到,统计平均值、总和可通过函数运算得到。按照各步骤的顺序手动的对数据进行处理,这样构造出的结果和查询语句实际执行后的结果是一致的。如果在教学中演示出数据的构造过程,会使抽象的数据处理过程具体化、程序化,更有说服力,使学生更容易理解。

2数据构造演示方法

教学时给学生演示数据构造的过程要注意的问题是演示过程清晰,并且花的时间要尽量短。我选择在excel中处理数据。在进行演示前,首先把需要的表以excel文件形式准备好。对于两个表的交叉连接操作,通过一行一行的复制数据就可完成。对于数据筛选操作可以先筛选,把符合条件的记录标记为一种彩色,等全部筛选完以后再统一选取被标记的记录复制到结果区。对于分组操作,如果不介意分组后的顺序,可以根据分组字段使用excel中的排序操作来完成。对于统计函数,如计算平均值、总和等,或者是一些算数运算,可以使用excel中的函数和公式来完成。总体来说,excel中提供的功能很方便我们来完成查询语句中的各种数据构造。

这种数据生成过程的演示除了在给学生讲解时使用,也需要学生通过练习掌握这一方法。让学生在excel中自己构造查询结果,通过练习使学生亲自体验一下这种方法的正确性,从而能对查询语句中的各子句有深入的理解,并在阅读代码和书写代码时熟练的使用这一方法思考问题。

3总结

查询语句是学生学习数据库应用的重点和难点,一个复杂的查询语句可分解为有序的几步操作,这些操作对数据的处理都可通过简单的手动操作演示出来,通过手动演示数据处理过程可以使学生感觉到看似复杂的语句有规律可循,使抽象的数据处理过程具体化、简单化。学生如果掌握了这一方法,在面对复杂的查询代码时会对代码的结构清晰明了,在写代码时也会思路清晰,也可根据数据处理过程不断检验自己的代码和要求之间的吻合度,从而逐步提高自己的能力。

〔参考文献〕

[1]程录庆.提高数据库系统教学质量的几点思考[J] .计算机教育, 2011,(16).

[2]安博教育集团.Oracle数据库系统[M] .电子工业出版社, 2012.

[3]孟宪虎,马雪英,等.大型数据库管理系统技术应用与实例分析—SQL Server 2005(第2版)[M] .电子工业出版社, 2011.

Using the Data Generating Process Demonstration

in the Query Statement Teaching of Databse Application

SHI Sheng-li

(Faculty of Information Science and Technology,Baotou Teachers College,Baotou 014030)

Abstract:According to the database application course teaching on the query statement, the author in teaching summed up the method of a data generating process demonstration. The complex query is decomposed into several steps. Through constructing the data processing results on each operation by hand, the query process would be manual demonstrated. This method can make abstract the query statement becoming concrete and procedure, used to help students to learn and master the query statement.

Key words:query statement;data processing; database application

中图分类号:G250.74-45

文献标识码:A

文章编号:1004-1869(2015)01-0066-02

作者简介:史胜利(1977-),内蒙古五原人,硕士,讲师,研究方向:信息安全,数据库应用。

收稿日期:2014-11-04

猜你喜欢

数据处理
验证动量守恒定律实验数据处理初探
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
ADS-B数据处理中心的设计与实现
MATLAB在化学工程与工艺实验数据处理中的应用
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
大数据处理中基于热感知的能源冷却技术
Matlab在密立根油滴实验数据处理中的应用
我国首个“突发事件基础数据处理标准”发布