包 琼
(湖北经济学院,湖北 武汉 430205)
现代计算机技术的发展,信息管理技术水平的提高,使得人们越来越多地享受到信息技术带来的便利。不受空间、时间限制的海量数据的存储与共享,涉及教育、商贸、医疗、社交等各个领域,人们越来越离不开信息技术。除了掌握基本的计算机操作能力,对于日新月异的信息管理的技术的了解,也成为当代大学生必备的知识。计算机是如何进行数据管理从而解决现实世界问题的,信息技术是如何服务于人们的工作、生活、学习的,对于这些问题的了解有助于使人们有效的融入到这个高速发展的信息化社会中,并有效的享受信息化带来的种种好处,并为更有效的信息利用奠定坚实的基础。
目前,我校针对非计算机专业的本科学生,除了开设有教授计算机基本操作能力的《计算文化基础》课程,另一门重要的计算机相关的课程就是《数据库原理与应用》了。在《数据库原理与应用》课程中的教学中,采用Access软件为载体,向学生介绍如何利用计算机技术进行数据管理。相对于《计算机文化基础》的偏重操作性的教学而言,该门课程的教学更侧重理论与实践结合,因此教学难度相对更大些。
《数据库原理及应用》课程的教学目的并不仅仅是教会学生使用某种数据库管理系统软件(如:Access),更重要的是,以一个特定的数据库管理系统软件(Access)为载体,向学生介绍数据处理与数据管理的知识,使学生对于计算机的数据管理的能力有所了解,并能够对所享受到的现有的信息服务进行有效的理解;更进一步的能够将对相关的信息技术的理解与本专业的知识进行融合,并在相关专业领域的信息利用上提供良好的帮助。
从《数据库原理及应用》课程的多年教学中,发现学生在以下几个方面的理解上存在较大难度:
(一)对于现实世界与计算机中管理的数据的关系的理解存在问题
学生们往往会困惑计算机中管理的数据到底是从何而来的,为什么是这些数据而不是那些数据。其实,计算机中所管理的数据来源于现实世界,需要经过多次的抽象过程而得到。首先人们对现实世界的事物有一个认识的抽象,形成一种概念,然后需要将人脑中获得的这种概念,进一步抽象为计算机软件能够表示的数据形式,这就是数据模型的概念了。数据模型是数据库中数据组织的基础。如果学生不能很好的理解现实与计算机之间的关系,那么课程中很多的相关概念的理解就会存在问题,如关键字、参照完整性等。
(二)对于数据表的关键字、索引的理解上存在一定难度
为什么要指定关键字,关键字有什么用,指定关键字后对于表中数据会产生什么影响。主关键字与唯一索引之间的关系等等。在学生的自我实践过程中,由于对关键字、索引这些基本概念的理解的不透彻,导致在上机实践的过程中,不能有效地根据操作过程中系统提示的错误信息,进行相应问题的解决,往往表现为不知所措。
(三)对于表间关系的理解,尤其是参照完整性的理解难度较大
为什么数据库中的数据需要分解为多张不同的但是相互联系的表,为什么要这样分解。数据管理的基础是数据,数据如何组织在多张表中。按什么方式保证多张表间数据的一致性、有效性和正确性,是理解表间关系的要点。表的组织与数据的分解,表间参照的建立,是数据综合利用的基础。在实际教学过程中,学生经常在向表中随意输入数据,结果导致多张表间的数据无法相互印证,无法建立有效的参照关系,最后在多表查询时出现严重错误。
(四)存在学习上的误区,将数据库及其应用课程的学习等同于计算机文化基础课的学习
《计算机文化基础》的学习侧重于软件的使用,而《数据库及其应用》课程侧重于对于数据管理的基础知识和规范的理解和灵活运用,并在软件中得以实现。学生在学习过程中,往往会出现这种情况:进行查询设计时,根据实验指导书中的示例的查询结果去检测自己的实际操作结果的对错。问题是:学生在数据表中所输入的数据不一定与指导书中的数据完全一致,因此结果肯定是会有所不同的。因此,必须根据所建查询的实际完成的功能,然后结合实际的数据,进行结果正误的检查。
以上问题,究其根源,乃是对计算机数据管理中相关基本概念的理解存在偏差造成的。因此,该课程教学中如何通过案例明晰相关的理论基础,成为关键问题。
下面以数据表的设计以及表间关系的创建环节为例,介绍此部分内容的教学案例的设计与教学实施的要点。
(一)首先,设计一个初始的“学生”关系,关系模式描述为:学生(学号,姓名,性别,专业编号,专业名称,课程号,课程名称,学分,平时成绩,期末成绩),其中:学号与课程号一起构成了该关系的主关键字。
该关系表中存储有学生信息,课程信息,专业信息,成绩信息,以及学生所选的某门课程的成绩信息,学生所在专业的信息。对该关系进行分析,发现该关系中数据存在以下问题:
1.数据冗余太大:每门课程的课程名称信息重复出现,将浪费存储空间。
2.更新异常:当学生转专业时,对应学生的专业信息均须修改。
4.删除异常:如果删除了某个学生的所有信息,则可能相关课程的信息也删除了。
由于该关系中存在部分依赖关系:表中的“课程名称”字段不依赖于主键“学号+课程号”,而仅仅依赖于“课程号”(主键的一部分),姓名,性别,专业编号,专业名称也仅依赖于“学号”(主键的一部分)。因此,对学生关系进行分解,分解结果为3个关系,结果描述如下:
学生(学号,姓名,性别,专业编号,专业名称)
课程(课程号,课程名称,学分)
选课(学号,课程号,平时成绩,期末成绩)
经过分解后,目前“学生”关系中还存在一个传递依赖关系:“学号”—>“专业编号”,反过来不成立,且“专业编号”—>“专业”,则有:“学号”—>“专业”。 解决方法:对“学生”关系进一步分解:得到2个关系,结果描述如下:
学生(学号,姓名,性别,专业编号)
专业(专业编号,专业名称)
在高速公路工程建设过程当中,中心试验室通过对各项施工原材料进行合理的检测,能够将质量不过关的施工原材料及时淘汰,有效提升高速公路工程的施工质量。由于高速公路工程的施工规模比较大,工程中的各项施工原材料种类与数量不断增多,为了保证各项施工原材料得到更加高效的使用,中心试验室检测人员要对各项原材料进行科学的检测试验,针对质量不过关的原材料,要及时更换原材料或者重新购买。
经过这一系列的分解,最后得到的4个关系分别是:学生(学号,姓名,性别,专业编号);课程(课程号,课程名称,学分);专业(专业编号,专业名称);成绩(学号,课程号,平时成绩,期末成绩)。一般来说对于非计算机专业学生就介绍到此就可以了。
这个分解的过程就是关系规范化的过程,它能够解决单个关系进行数据管理所带来的一系列问题。至此数据分解的原因是就介绍清楚了。
(二)接着,引出下一个问题:当关系表分解后,各关系表之间如何保证数据的正确性、一致性的问题。
首先,这4个关系并不是孤立的4个关系,而是相互有联系。这4个关系是从最初的1张关系通过分解的过程得到。分解的过程可以对数据进行有效的分类管理,并有效解决更新、删除、插入异常等问题,但分解的结果应该仍然保持数据信息的应有的信息含量,不会因为分解而造成数据的丢失,也不会因为分解而造成无来由的数据的出现,分解之后关系中依然反映的是最初的现实世界的各项特征。在关系数据库中实体以及实体之间的关系都是通过二维表的形式表达的,应该是先有实体本身,然后才有实体之间的关系的存在。因此应该是先有课程实体的数据,然后才有学生选课以及成绩的信息,因此要求成绩关系中的课程号一定是客观存在的有效的课程号,即应该是课程关系中存在的课程实体的课程号属性,同理成绩关系中的学号一定是客观存在的有效的学号,即应该是学生关系中存在的学生实体的学号属性。也就是说,成绩关系中的课程号需要以课程关系中的课程号为参照,学号需要以学生关系中的学号为参照,因此需要指定它们之间的参照关系。于是引出外关键字和参照完整性的概念的介绍。关于设置参照完整性的意义就可以顺理成章的介绍给学生了,而且易于理解和掌握。在此基础之上可以通过实际数据的删除、更新、修改等操作,演示设置参照完整性后对数据表的操作所产生的影响,而且可以与参照完整性设置之前的情况进行一个对比。在参照完整性概念理解清楚之后,就可以进一步介绍级联更新与级联删除的概念了。
(三)在表间关系建立后,就可以开始转入下一个议题:各个关系是如何通过连接又重新组合到一起,得到人们需要的综合性的数据。于是就涉及到了多表查询中关于多表连接的概念的介绍了。在Access中多表的连接主要有inner join、left join和right join三种。通过对关系代数中笛卡尔集、以及内联接、自然连接等概念的循序渐进的介绍,通过上述4个关系中的数据,介绍inner join、left join与right join的不同应用。
上述3个内容一环扣一环,前面的内容是后面内容的基础。在教学过程中切不可省略数据表的分解过程的介绍,否则学生在理解数据库的数据管理上就会存在知识的欠缺,对于后面参照完整性乃至多表的操作均会存在不同程度的困惑。
在案例教学的实施过程中,应注意以下几个方面:
(一)案例内容应该是学生易于理解的。案例的设计中一方面要注意表结构的设计,另一方面表中数据集的设计同样重要。不同的数据,在教学中能够反映不同情况的分析结果。
(二)理论教学应该与实践环节密切联系。在上机实践的环节中,要求学生多注意看系统的错误提示信息,并进行分析,以提高对基本概念的理解。
通过不断改进的案例教学,笔者发现学生们对于计算机数据管理的概念的理解更透彻了。在数据表的创建、表间关系的创建以及涉及多表连接的内容的设计上出错的频率大幅下降。并且,学生们可以自己进行数据库的设计,并利用所设计的数据表完成有一定难度的查询了。
[1]金国鸣.高校非计算机专业Access数据库教学方法探讨[J].甘肃科技纵横,2011,(3).
[2]马晓荣.项目教学法在数据库教学中的研究与实践[J].陕西教育(高教版),2011,(6).