时间:2022-07-20 23:11:04
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇数据库系统概论,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
数据库是数据管理的最新技术,是计算机科学的重要分支。数据库技术不断地涌现新的研究方向,使得该系列课程已经发展成为内容丰富的数据管理课程群。 数据库系统概论课程是计算机科学与技术专业以及相关专业的核心课程和必修课程,课程内容构建了一个完整的数据库系统的框架,从而为进一步学习其他数据管理课程打下坚实的基础。然而该课程内容丰富,概念众多,不少知识点或前后重叠或前后不断地在深度广度上递进,形成了复杂的知识网络,对教师的授课和学生的理解掌握都提出了严峻的挑战。通过对比分析大量国内外相关课程教材和多年的教学研究实践发现,可以把该课程的章节结构看作纵向结构,课程中散落在各章的相关或重叠讲授或递进扩展的内容看作横向结构,以贯通式教学法为策略实施教学。本文中的贯通式教学旨在按照课程纵向结构教学的过程中,合理组织和设计横向结构的知识点,将其贯通于教学的全过程,对横向知识点的掌握由表及里,由理论到实践,拉出明确的线条,从而保证学习的清晰、流畅,降低课程学习的难度和内容繁杂带来的混乱,提高教学效果。
1采用贯通式教学的原因
(1) 课程内容形成复杂的知识网络。
数据库系统概论是一门很特别的课程。该课程内容丰富,概念众多,且不少知识点在前后章节有重叠(并不是简单的重复)和递进。孤立地按照章节授课会令学生对相关知识点产生混乱和迷惑的感觉:这个概念不是前面定义过么?这个理论不是前面有过分析么?有的概念随着课程的推进在不断被深化、细致化、具体化,如码的定义;有的理论随着知识的展开不断被讨论、验证,一咏三叹,如完整性等。
(2) 课程的掌握需要学生能将课程内容融会贯通。
一方面知识的掌握由点及面,比如横向结构的知识点在此章节处是这样的含义,在整个课程中是怎么样的?另一方面知识的掌握将由理论贯穿到实际应用,理论与应用相统一,比如知识点在理论章节是怎样描述的,后续章节又是怎样实现的?
(3) 课程学时不断减少,教学内容亟待有效整合。
随着教学改革的不断深入,各门课程的教学课时数在不断减少,以期留给学生更多开放学习时间。贯通教学采用步步深入的方法,有效整合教学内容,在不同章节只解决关于相关知识点的某个问题,前面讲过的只用不重复,后面要讲的前面不提,有效利用有限的课时去解决问题。
(4) 教学设计充满迷惑和障碍。
2009年4月17日至19日,教育部全国高校教师网络培训中心组织数据库系统概论课程骨干教师对数据库系统概论的建设进行了指导性培训,在最后的教学互动环节,仍然有教师对课程的教学内容如何组织按何种顺序讲授充满疑惑。所以,透过课程纵向结构的表象,透彻理解课程横向结构内容的联系,教师才能游刃自如地组织教学内容、安排教学进程。
2课程内容的结构分析
数据库系统概论课程具有明晰的纵向结构和潜在的横向结构。
分析和研究大量中外教材(部分见参考文献)[1-10],纵向结构大致相同。典型的情况是将数据库系统概论课程分成4大部分内容,每部分由具体章节构成。不同的教材每部分内容会各有增减或前后调整。课程纵向结构分析如表1。
分析和研究大量中外教材(部分见参考文献)[1-10],横向结构包括的知识点不尽相同(主要是国外的教材通常涉及到更多更细致的内容)[3-5],各知识点在不同章节呈现的深度广度也不尽相同,有的教材偏重于理论,比如王珊老师的数据库系统概论[1],而有的教材偏重于应用,比如何玉洁老师的数据库原理与应用教程[9],但典型的情况如表2分析。
以上分析是主要的例子但并不完全,但从以上的分析已足以见该课程内容的丰富和繁杂。
3贯通式教学的设计与实施
根据以上分析可以看出课程内容似纷繁复杂的网络,如果只采用经典的按照章节为序的纵向结构方式教学,那么一方面会因为各章内容丰富觉得知识点众多,另一方面又会因为时时出现似曾相识的知识点而迷惑;一方面会因为前面的一些知识点不能透彻描述而理解不清,另一方面又会因为似曾相识的知识点在后面再度出现而厌倦。在纵向结构的教学过程中始终辅之以渗透横向结构的贯通式教学,将把该课复杂的网络结构简化成纵向和横向两条线性结构,消除由于知识点结构复杂造成的学习障碍,降低课程的难度,提高学习的效果。
贯通式教学可以这样设计和实施:
(1) 分析并明确各横向结构知识点。整理出所有相关的知识点,明确它们在本课程中不同章节处出现时所承担的不同作用,所完成的不同功能。
(2) 设计各横向结构知识点在各章节教学过程中的任务。安排各相关知识点在第几章的授课中具体讲什么内容,讲到什么程度。
(3) 横向结构知识点讲课过程中进行回溯。回溯要简明扼要。学生回忆起学过的内容,教师又同时不必消耗太多课时,温故知新,温故求新。
(4) 横向结构知识点完成时进行总结,为进一步探索指明方向。
(5) 明确学生在每部分学完需要掌握的程度。由于教材的缘故,相关的知识点在描述上难免有部分重复。在学习初期,有些描述学生不能完全看懂,而随着教学内容的展开和深入,那些似曾相识的内容会让学生厌烦和懈怠。明确相应进度相关知识点的相应深度,可消除学生的疑虑和困惑。
(6) 课程完成时,分别从纵向结构和横向结构对课程的内容进行总结。纵向使学生理解掌握课程的内容和递进思想,横向使学生掌握各知识点基于课程整体递进时内容的深化和实现。
(7) 因为讲授的内容安排与进度会与教材不一致,所以我们准备了充分的教学辅助手段,如网络课堂,包括课件、作业和答疑,以提供给学生及时和持续的指导。
4贯通式教学的难点
贯通教学的难点首先在于课程纵向结构和横向结构的明确。纵向结构不难确定,通常可以使用教材的章节结构,而横向结构潜伏于各章内容之中,只有对课程进行大量深入的挖掘和分析才能获得。通过几年的教学实践总结有以下几个难点:
(1) 要求教师熟悉课程中所有教学内容,杜绝边教边学的现象。课程应建立合理的教学梯队,需要有经验的教师对新任课教师的传、帮、带。
(2) 透过表象看本质,不能就教材的安排而拘泥。教材是主要的教学参考书而不是僵化教条的条令。横向内容安排的深浅详略不用完全依照使用的教材,而要根据各部分内容展开程度的需要进行安排,这需要对授课内容进行细致的研究。
(3) 贯通教学对教材的内容和结构可能会有调整。从学习的初期看,学生的课程温习可能不是很顺畅,会给学生带来困惑和疑虑,但长期坚持跟随教师的授课掌握了课程的学习方法则会事半功倍。
5教学效果总结与评析
(1) 将课程复杂的网络结构简化成纵向和横向两条线性结构,降低了课程的学习难度,学生学习由难趋易。知识点有打碎有融合。打碎是为了学习的量少,降低难度,融合是为了知识点的融会贯通和有效应用。
(2) 数据库理论和应用相互促进。横向结构保证知识点既在理论部分分析讨论又在应用部分基于某种具体的DBMS进行实现,知其然知其所以然,增强了学生学习的兴趣。
(3) 实现了知识的顺利迁移。数据库理论是广谱的通用知识点,这种DBMS的功能这样实现,另外的DBMS势必主要也包括了这样的内容,掌握了理论将方便学习和移植,把学习一个DBMS的方法迁移到另一个不同的DBMS上去。这个在学生毕业设计中得到了明显体现。课程实验使用SQL Server环境,毕业设计使用Oracle或MySQL或DB2等,通过自学,学生们顺利完成了任务。
(4) 学生掌握了一种新的学习方法,从而增强了自主学习能力。沿着教材的纵向结构学习是一种本能,发现知识的横向结构、提取它,然后以此掌握知识的内涵并应用于实践则进入了学习的更高一层境界。这种能力,可以用于这门课程,当然也可以用于其他课程;可以用于学习功课,当然也可用于应用实践。
(5) 形成了一种新的对课程的理解和讲授方法。把一门课讲给学生不难,吃透一门课不容易,而透彻地教给学生就更不容易。理清课程的本质,融会两个结构的教学,将对这一类课程的教学带来新的突破。
参考文献 :
[1] 王珊,萨师煊. 数据库系统概论[M]. 4版. 北京:高等教育出版社,2006.
[2] 黄德才. 数据库原理及其应用教程[M]. 2版. 北京:科学出版社,2006.
[3] C.J.Date. 数据库系统导论[M]. 7版. 孟小峰,王珊,译. 北京:机械工业出版社,2000.
[4] Abraham Silberschatz, Henry F. Korth. 数据库系统概念[M]. 5版. 杨冬青,马秀莉,唐世渭,译. 北京:机械工业出版社, 2007.
[5] Patrick O’Neil.Database Principles, Programming and Performance[M]. 2nd.ed. 北京:高等教育出版社,2001.
[6] 叶小平,汤庸,汤娜,等 . 数据库系统基础教程[M]. 北京:清华大学出版社,2007.
[7] 施伯乐,丁宝康,汪卫 . 数据库系统教程[M]. 3版. 北京:高等教育出版社,2008.
[8] 陈志泊,李冬梅,王春玲. 数据库原理及应用教程[M]. 北京:人民邮电出版社,2002.
[9] 何玉洁. 数据库原理与应用教程[M]. 2版. 北京:机械工业出版社,2007.
[10] 苗雪兰,刘瑞新, 宋歌. 数据库原理及应用教程[M]. 3版. 北京:机械工业出版社,2007.
The Research and Application of Teaching Method in Introduction to Database System
LIN Yin, LU Ying, YANG Chang-chun
(College of Information and Engineering, Jiangsu Polytechnic University, Changzhou 213164, China)
关键词:COM;DCOM;多数据库系统;分布式
1、前言
随着计算机网络技术和分布式计算的飞速发展,越来越多的用户希望能够访问和处理多个不同数据源中的数据。在此情况下,出现了多数据库系统。多数据库系统(MuitidatabaseSystem,简称MDBS)的研究开始于80年代,至今已经有二十多年的发展历史,多数据库系统是多个现存的、自治的、异构的数据库系统的联合。多数据库系统在所有局部数据库系统之上构成全局系统管理层,提供外部用户接口,使用户能实现对异构数据库的透明访问。
通过分析发现,目前的多数据系统只是对异地数据库访问支持,有很大的局限性,而对多数据库系统中的事务管理、异构模式消解、全局视图维护等关键技术都没有提供很好的解决方案。
90年代,网络技术的发展使组件化程序设计的思想促使人们把多数据库系统与COM/DCOM结合起来。一方面,可以大大提高系统的可管理性、可维护性、可伸缩性和可集成性等,使多数据库系统的开发、使用和维护都变得简单;另一方面,这两者的结合也为先进的分布式组件对象技术提供了一个广阔的应用领域。因此,分布式组件对象技术在多数据库系统领域里得到广泛应用。
2、COM/DCOM技术
基于对大型软件开发的困难性、软件开发的协调性、软件复用、软件的互操作性、软件的跨平台性等问题的研究,Microsoft提出了COM/DCOM技术,并得到科学实践的验证及进一步发展。
COM/DCOM是建立在面向对象技术的基础之上,是面向对象技术的扩充和发展。它继承了面向对象技术的优点,克服了面向对象技术的缺点,提供了分布式计算环境。它采用面向对象的多层客户/服务器计算模型,该模型将分布在网络上的全部资源都按照对象的概念来组织,为网络上的大型软件开发建立全新的技术框架。因此,COM/DCOM是一种构造软件组件的二进制标准。
2.1COM简介
COM是一种构造软件组件的二进制标准,而面向对象技术是组件式设计思想的基础。它使得组件和客户端无需任何中介组件就能相互联系,其规范所定义的组件模型具有面向对象、语言无关性、进程的透明性、可重用性等特点。目前,COM自身得到了很大的发展,己经遍布于Microsoft的各种软件产品中。
在Windows系统平台上,一个COM组件或是一个DLL(动态连接库)文件,或是一个EXE(可执行)文件。一个组件程序可以包含多个COM对象,每一个COM对象可以实现多个接口。它们的关系可展现如图1所示。
图1 COM组件、COM对象和COM接口关系
2.2DCOM简介
DCOM是COM的无缝扩展,它充分利用基于COM的应用、组件开发工具及知识,并把它们转移到分布式计算的应用领域,实现了不同计算机上的组件对象与客户程序之间或组件对象之间在网络上的相互通信,具有平台无关性、协议无关性、语言无关性、组件位置独立性和可扩展等优点。它建立在分布式计算环境(DCE)的远程过程调用(RPC)之上,采用DEC RPC的NDR格式来进行数据分组和传输,并利用DEC PC的安全机制进行数据的安全认证和一致性检查。
DCOM的基本工作过程如图2所示。
图2 DCOM的工作过程图
3、基于COM/DCOM的多数据库系统结构
随着COM/DCOM技术的发展及标准化工作的完善,COM/DCOM已成为主流技术,符合COM/DCOM规范的产品也逐渐不断地被推出并开始被广为采用。COM/DCOM目前已经是一项比较成熟的分布式面向对象技术,COM/DCOM非常适用于多数据库系统的有效管理。
本系统模型采用了一种全新的解决方法,在应用服务器中直接提供支持,这种方案才能保证分布式程序的运行效率,特别是在于需要大量数据进行处理的系统相连上尤为明显。采用本系统模型可以拥有分布计算的支持,可应用服务器支持移动计算工作方式。该模式是数据库缓存更新的发展,用户与应用服务器相连并且从应用服务器上获得数据,然后将缓存在本地的数据更新,可对数据进行各种离线处理和分析,用户与应用服务器重新连接后,可以一次新的将离线所作的处理更新到数据库服务器中。
COM组件主要负责Web服务器和数据库服务器,通过间接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询并将查询结果格式转化成HTML页面,通过Web服务器返回给用户浏览器。
多数据库系统的体系结构如图3所示。
图3 多数据库系统的体系结构
4、系统实现
利用Visual C++中的ODBC技术可以极大地减少软件开发的工作量,提高了效率并增强了软件的可靠性。ODBC API是由ODBC提供的一组函数调用接口,其主要功能就是将SQL语句发送到目标数据库,然后处理这些SQL语句返回的结果。下面是通过ODBC API连接数据库的主要步骤及其所涉及到的重要函数。
4.1连接一个已经配置好的数据源
CDatabasem_database;
If(!m_database.IsOpen())
{If(!m_database.IsOpen(_T(""Test"")))
Assert(""不能打开该数据源"");
}
m_database.Close();
4.2动态连接数据库
由于与数据库的连接是通过Cdatabase类对象来实现的,所以可以通过赋予CrecordSet类对象参数m_pDatabase以连接不同数据库的Cdatabase对象指针,就可以动态地连接数据库:
void CDB::ChangeConnect()
{Cdatabase*pdb=m_pSet->m_pDatabase;
Pdb->close();
switch(m_id)
{
case 0:
if(pdb->Open(_T(""ES"")))
{AfxMessageBox(""打开失败"",""检查ODBC连接"";
exit(0);}
case 1:
if(!pdb->Open(_T(""Motor"")));
{AfxMessageBox(""打开失败"",""检查ODBC连接"";
exit(0);
}m_id=0;break;
}
}
4.3动态连接表
表的动态连接可以利用在调用CrecordSe:tOpen()函数时指定SQL语句来实现。
5、结束语
本文提出一种基于COM/DCOM的多数据库模型。COM/DCOM技术是解决多种异构数据库环境下的据库信息处理的一种有效的方法。由于其先进性、可扩展性、可配置性、灵活性、可靠性和先进的多层结构等的优点,它不但可以解决数据库异构的问题,更是解决操作系统异构的最有效的方法。我们有理由相信组件对象技术将是解决数据库系统集成的优良方案,在企业集成应用系统中将起到重要的作用,将是数据库技术的一个新的发展趋势。
参考文献:
[1]李瑞轩.多数据库系统原理与技术[M].电子工业出版社.2005.
[2]王珊,萨师煊.数据库系统概论(第4版)[M].高等教育出版社.2007.
关键词: 资源整合 异构数据库 互操作 联邦式数据库
1 引言
异构数据库互操作问题作为数据库领域的研究热点和难点课题,在国内外的学术界和工业界都引起了广泛的关注。自20世纪80年代以来,国外许多公司和科研单位对异构数据库的集成进行了大量研究,取得了不少成果,但国内对异构数据库集成的研究还处于开始阶段。
2 异构数据库互操作的概念
异构数据库(Heterogeneous Database)集成是数据库技术从完全集中到逻辑集中、物理分布(传统分布式数据库)乃至逻辑分布、物理分布(异构数据库)这一发展过程的结果,也是兼顾已有系统自治性并实现新的数据共享这一现实需求的有效手段。
异构数据库的异构特征包括两个级别:系统一级的异构和语言一级的异构,主要体现在以下几个方面。
(1)计算机体系结构的异构:各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。
(2)操作系统的异构:各个数据库系统的基础操作系统可以是Unix, Windows NT,Linux等。
(3)数据库管理系统的异构:一种是数据库概念模式的异构:有层次、网状、关系和面向对象4种;另一种是数据库物理模式的异构:指概念模式相同,但数据结构不同,比如Oracle与SQL Server同属关系型,但结构不同。
异构数据库互操作的实现包括三个功能要素:(1)为用户提供功能强大且操作灵活的互操作可视化界面,通过它用户可以直观地对多个异构数据库进行透明访问;(2)提供高级语言数据库访问调用级接口,至于调用级接口的实现层次可由设计者视具体清况而定;(3)支持环境开放性,可能的话还应该支持实现语言开放性。
异构数据库系统的目标在于实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享。异构数据库系统集成就是要将数据库系统的不同,操作系统的不同,操作平台的不同或者底层网络的不同进行屏蔽,使得用户就可以将异构数据库系统看成普通的数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样,对其进行透明的操作。
3 实现异构数据库互操作的途径
面对异构数据库的互操作需求,主要从两个方面同时进行努力:一是建立标准,即建立统一的数据库规范,消除由于标准的不完善而造成的各数据库系统间的差异;二是构建异构数据库互操作平台,实现对多个异构数据库的透明访问。
随着对数据库互操作问题的深入研究,基于不同角度,许多研究者提出了可行的异构数据库互操作途径,这些途径在实现互操作的深度、广度和高度上各不相同,都有各自所适应的特定环境和需求。从异构数据库的核心思想出发,把实现互操作的途径归纳为两大类。
3.1 系统级异构互操作
对于DBMS系统一级异构的网络环境下的数据库互操作,主要有四种实现途径。
(1)数据库网关(Database Gateway)
数据库网关是一种中继器,它能提供应用级的异构数据库集成的手段。网关的主要作用是转换和通信。
数据库网关可以建立比较稳定和透明的数据库互操作,但是其缺点也较为明显。诸如不关心如何屏蔽数据库之间的异构性,不支持事务处理,资源冗余,用户受限于数据库厂商,不能任意选择客户机平台及目标数据库等问题。
(2)公共协议/数据转换协议技术
公共协议是异构数据库进行通信时采用的公认的数据协议,即公认的系统间传递SQL请求和结果的形式。最常见的协议是ANSI/ISO的关系数据存取(RDA)标准、SGA(SQL Access Group)规范和IBM的分布式关系数据库结构(DRDA)。
数据库网关相比,公共协议更具有可扩充性和开放性,能较好地实现异构数据库的透明访问、支持多种网络协议和多种客户平台,是实现异构数据库互操作的有效途径之一。
公共协议/数据转换协议的缺点是协议本身的低效率带来的速度问题。
(3)公共编程接口
公共编程接口包括客户应用编程界面(CAPI)和服务器应用编程界面(SAPI)。CAPI是一组过程库,通常驻留在客户端,通过装载后端专用的驱动程序访问不同的数据库。SAPI提供一个应用编程界面,控制服务器与客户应用请求和目标数据库之间的交互。如Microsoft 的ODBC、Oracle的SQL*NET 以及IDAPI。其优点有:由于提供了统一的调用级接口,使用户免除了应用程序随数据库改变而改变的痛苦;通过API可使应用程序直接操纵数据库中的数据。数据库访问API的缺点是:针对每一个数据库都需要有一个与其对应的驱动程序;由于不同的驱动程序所支持的数据类型和对数据的操作都不相同,其完全透明地访问异构数据库的能力有限;实现效率过分依赖于驱动程序,而驱动程序将标准语法转换成相应数据库的命令语法要花费大量的时间。
(4)中间件技术(Middle Ware)
中间件是处于应用程序及应用程序所在系统的内部工作方式之间的软件,它的基本思想是在各后端数据源和前端应用程序之间建立一个抽象层。把应用程序与系统所依附软件的较低层细节和复杂性隔离开来,使应用程序开发者只处理某种类型的单个API,而其他细节则可以由中间件处理。这样就使系统对每个不同数据源的操作变成对单一的中间件的操作,而后再对中间件进行异构处理。使用中间件技术解决异构数据库集成的问题,将会给系统集成带来很多的好处。这是因为中间件不仅能够使得前端用户访问后端的异构数据库实现透明化,并且保证了访问接口的开放性,这样可以使系统在以后功能上的扩展更加方便。通过中间件来访问数据库的另一个好处就是所有的客户端的请求都发送到了中间件上,减轻了数据库服务器的负担,保证了数据库服务器的性能不会降低。同时,中间件的采用极大地提高了系统的可维护性,在系统内部的某个逻辑发生变化时,只要改变中间层的相应处理程序,前台用户界面不需要做任何的改动,这样就大大降低了系统维护的费用。
3.2 数据结构与语义级异构互操作
目前,对于数据结构和语义一级异构的数据库互操作的研究有紧密耦合和松散耦合两种思想,具体体现于多数据库系统、联邦数据库系统和分布式数据库系统三种方法。
(1)多数据库系统
所谓多数据库系统就是一种能够接受和容纳多个异构数据库的系统,允许各个异构数据库的“自治性”。多数据库系统是一个广义的概念,是相对于如集中式数据库系统或分布式数据库系统那种逻辑上具有同一管理系统而言的,它以多元和分布为主要特征。多元是指它多个彼此区别的集中式或分布式数据库系统;分布则是指数据分布在不同场地的数据库系统中,由各自的管理系统进行管理。
多数据库技术的目标是为在多个数据库之间实现互操作,解决数据库资源共享找到一种技术途径。一般采用分布、异构、自治三个特性作为尺度来刻画多数据库系统。使用这种方法,用户需要显式地指明所要访问的数据库。多数据库系统采用自下而上的方法来实现。
(2)分布式数据库(Distributed Database)
分布式数据库的基本思想是抛弃原有的数据库系统,在网络环境下建立分布的数据库系统,在体系结构、事务处理模型等方面重新设计从而解决信息共享与互操作问题。分布式数据库系统分为同质分布式数据库和异质分布式数据库。像 Oracle、Sybase、Informix 等都是同质分布式数据库系统,这类系统的实现相对来说比较容易一些。异质分布式数据库管理系统大多是在已有的一些数据库管理系统的基础上实现的。
(3)联邦式数据库(Federated Database)
联邦式数据库系统是网络技术和分布式数据库技术发展的必然结果,它是由一组能协调工作,又可以独立自治的部件数据库组成。它可以是原先不分布的,又可以是分布的,具有分布性、自治性、异构性三大特性。
联邦式数据库与分布式数据库系统的区别在于:分布式数据库系统虽然在物理上是分散的,但因为有统一的数据模型及全局数据模式,所以它在逻辑上却是集中的,因此用户感觉到的是一个完整的数据库。显然,这种系统可用于某个专用领域的系统,但不适于不同领域间的异构系统的集成。相反地,联邦式数据库系统是由在不同结点上松散耦合分布的异构成员数据库构成,各联邦成员间的一种松散结合。构成联邦成员的可以是一个集中式数据库,也可以是一个分布式数据库,它们可以根据需要(按某种组合)加入联邦或者根据需要退出联邦。联邦式数据库没有全局模式,各子系统(即联邦成员)按自己的需求建立各自的数据模式。其成员之间的数据共享关系,通过由协商确定的输入/输出模式来建立,单个成员有权拒绝或允许其它成员结点对它的访问。因此,它能够支持多库系统的分布性、异构性和自治性,使之产生满意的集成。
异构数据库的互操作技术使得数据库在原有技术领域发挥重要作用的同时,在未来新的应用领域也有着重要的影响,如地球观测系统 EOSDIS、电子商务、保健信息系统、数字出版、协同设计等领域。
参考文献
[1] 萨师煊,王珊.数据库系统概论.北京:高等教育出版社,2000.2.
[2] 张水平, 万映辉等.异构数据库的集成与互操作. 计算机应用研究, 2000(1).
[3] 郑振楣, 于戈等编著.分布式数据库. 北京: 科学出版社, 1998.
[4] 刘艳梅. 基于 COM/DCOM 组件标准实现异构数据库的联合使用: [博士学位论文]. 北京:北京理工大学, 2000.
[5] 唐巍, 周俊林, 李晓. 异构数据库集成方法初探. 计算机应用研究, 1999(8).
[6] 王艳君, 王运格, 吴丽红. 异构数据库间数据集成的方法. 烟台师范学院学报, 1999, Vol.15(4).
关键词:大数据时代;数据库课程体系;改革;教学模式
数据库的原理和应用一直以来都是高校计算机专业课程中的重要组成部分,具有较强的理论性和实践性。随着大数据时代的到来,大数据技术已经被广泛应用于学生的生活服务、课程体系开发及课堂教学系统中,这也给以关系数据库为主导的高校数据库教学提出了新的挑战。因此,在这样的大背景下,我国高校应当与时俱进,对数据库课程体系进行改革和创新,从而为社会发展培养出更多高素质信息技术人才。可见,加强对大数据背景下高校数据库课堂体系改革和教学模式创新的研究是非常具有现实意义的。
1大数据背景下数据库技术类课程体系的改革
1.1数据库系统
数据库系统是大数据背景下数据库技术中的“基础篇”,因此,高等院校应当增加对数据库系统讲授经典的关系数据模型及相应的数据管理技术的课时,将其作为必修课程,每周必须要安排3个课时。经典数据库技术主要包括数据库学科中重要和通用的基础理论和思路。课程重点应当包括关系数据模型、数据库逻辑设计、ER模型、查询优化、数据库表设计和事务管理等。同时还要简单地介绍关系代数、函数依赖、规范化的基本理念和思想及SQL语句、视图、存储过程、触发器等基本思想。这些理论知识在学期末采取闭卷考试的方式对学生的掌握情况进行考核。
1.2海量数据分析
在大数据背景下,数据库管理将面临着海量的数据,学生必须要学会对这些数据进行分析和处理。因此,高校应当将海量数据分析作为选修课程,每周安排3个课时。NoSQL数据管理技术是对关系型数据管理技术的补充,其中主要包括针对异构海量数据的存储、查询及分析等技术,是电子商务、社交网络和web搜索等新型应用的技术支持,同时这也是大数据背景下数据分析的主要技术。高校可以将NoSQL数据管理技术的应用作为大数据时代数据库技术的“提高篇”。该项课程应当采取课程和实验相结合的方式进行教学,在学期末采用实习报告的方式对学生进行考核。
1.3数据库系统实践
数据库是一门理论和实践相结合的课程,因此,高等院校数据库课程改革中必须要注重实践教学。将和数据库系统概论相对应的实验课程作为必修课,每周安排2个课时;将和海量数据分析相对应的实验课程作为选修课,每周安排3个课时。数据库系统实践课程可以采取以下方式进行:第一,以关系型数据库为实验平台,在实验室的计算机上完成,实验的主要内容包括数据库的设计、表格的设计、数据的查询处理、性能测试、事物的管理、视图以及存储过程和触发器等。第二,以分组的形式完成实验任务,实验的主要内容包括分布式集群的搭建、Hbase和Hive系统的配置和数据管理、Hadoop系统配置、MapReduce编程模型的应用、海量数据的存储和查询及海量数据的分析算法和性能测试等。
2大数据背景下高校数据库课程体系改革的实施与保障
2.1加强师资队伍建设
师资队伍是实施高校数据库课程体系改革的前提。目前,高等院校的数据库任课教师大多擅长传统的关系型数据库管理技术,但是缺乏对海量数据分析和数据系统实践的能力,这也使得师资队伍的建设成为实施数据库课堂体系改革的主要瓶颈。新的课程体系对于数据库任课教师的专业能力和水平提出了更高要求。因此,高等院校必须要根据海量数据分析和数据库系统实践的教学内容和要求,加强师资队伍建设。可以聘请企业精英作为讲师,也可以通过培训和自主学习提高现有师资的专业素养,从而提高高校数据库课程教学的团队水平。
2.2完善实践平台
实践平台是实施高校数据库课程体系改革的基础。目前,很多的高校计算机专业实验室都严重缺乏可供部署海量数据管理平台的分布式集群和相应的软件配置。因此,高等院校应当从实验课程的角度,通过借鉴“去IOE”的思路(由个人电脑或服务器所构成),配置实验项目和运行相关软件系统的硬件平台,从而满足学生实践操作的学习需求。另外,在课程教学过程中,应当使用开源软件,通过硬件设备为实验课程的顺利开展提供保障,从而不断完善数据库实验教学,提高学生的实践能力。
3大数据背景下教学模式改革分析
3.1传统教学模式特点
传统教育模式中,教师根据授课计划查阅相关资料及文献,以确保讲课过程的科学性,学生提前预习,从而使教师和学生在课堂上形成一个很好的融合,使授课顺畅有序进行。但是传统教学往往采用一种满堂灌的教学模式,忽视了学生的主观能动性,教学模式固定并且单一。从传统教学过程上来看,教师面对的是几十人的班级授课,学生学习水平参差不齐,教师只能按照学生的中等水平进行讲授,不能将学生的学习水平控制在自己能够控制的范围内。这样会导致水平高的学生认为教师讲得过于浅显而不想听,水平低的学生会觉得听不懂也不想听,教学效率相对较低。
3.2大数据背景下教学模式分析
首先,在大数据时代,学生可以通过在线学习途径获取知识,与传统课堂教学模式相比,在线意味着教育工作者可以提供不受时间和地点限制的教学活动。于是出现了慕课和微课等在线教学平台,充分利用了网络的交互特性,支持师生之间、学生与学生之间全天候地在线互动与交流。其次,传统教学模式中,为了提高教育的公平性和大众化,教师在固定的场所、在有限的教学时间对很多学生进行标准化、灌输式教学模式,无法因材施教到每个人,导致人才培养同质化现象非常严重,限制了学生创新意识的培养。但是,在大数据背景下的教学模式越来越个性化,教师在教学过程中开始关注学习者个性化培养模式,教师由灌输式教学模式转变为助学教学模式,为学习者提供服务和协作交流。最后,大数据背景下,教师不再需要完全按照教案的模式进行授课,而是自己精心设计一些教学资源,比如微课、慕课、反转课堂,同时可以充分借助一流教学名师的经验,给学生提供一个更好的教学环境,教师的职能由传统的以教学为中心转变为设计、组织、帮助和指导式教学,真正实现线上和线下混合学习,打造汇聚更多优质课程和学习者的学习社区平台。支持教师采用多种模式进行教学,借助视频等软件构建一个学习型社区,给学生提供一个重体验、强交互的学习环境,提高学生的学习质量和学习效率。
关键词 超大型数据库;性能优化;动态表分区
中图分类号TP392 文献标识码A 文章编号 1674-6708(2013)82-0222-02
0引言
基于内容的网络安全审计系统,为了进行事后统计分析和提供证据,需要将用户指定范围内所有采集到的数据信息存入数据库以及相对应的文件中。能够保存较长时间范围内的历史数据信息对于网络安全审计系统来说是非常重要的,通常情况下需要保存最近三个月的历史数据信息。
经过前期需求和数据测试分析,1G的电信网络中每天大约会增加6 000万个数据文件和数据记录,这样其存储的数据库规模非常大。数据库规模的不断变大,将会导致数据库系统性能的急剧下降,使得数据库维护的成本不断上升,甚至造成周期性的停机。
1表分区
表分区技术就是当数据库中的某个表变得特别大时,可以根据一定的条件或者规则,将一个大表划分为多个包含少量数据的分区,每个分区都是一个逻辑实体,是表的一个子集。通过将一个大表拆分成为多个更小的单个表,使得只访问一小部分数据的查询执行得更快。另外,对于这些小表可以更快地执行维护任务(如重建索引、数据备份或导入导出等)。
在超大型数据库中,通常不使用单个分区中的大数据集,而采用经过优化设计的本地分区和访问策略,能够使查询性能提高一倍以上,甚至几十倍。采用表分区技术的优点:
1)可以极大地缩短查询时间;
2)减少数据加载时间,改善数据库的可维护性;
3)解决从活动数据库中删除历史数据时出现的数据修剪问题。
2动态表分区
表分区按照实现的方式不同可以分为静态和动态两种。所谓静态表分区就是在数据库初始化的时候按照预定格式一次性生成所有分区。而动态表分区则是应用程序根据一定的规则动态创建所需分区,并对这些分区进行动态管理和维护。采用静态表分区技术的应用程序实现比较简单,但是可扩展性较差。采用动态表分区技术的应用程序实现要复杂一些,但是开发出来的应用程序可扩展性较好,能够根据不同的需求进行扩展。
静态表分区是目前超大型数据库系统解决方案中普遍采用的一种技术,到目前为止,还未见一种比较完善的基于动态分区的解决方案。另外,将基于动态分区的超大型数据库系统性能问题的解决方案应用到网络安全领域是一个需要特别研究的问题。
设计开发的网络安全审计系统产品定位于100M~1000M以上的高端网络用户(兼容中低端用户),其数据存储和处理规模非常巨大,为了使得产品具有更好的扩展性能,该系统采用动态表分区技术。
3多表查询
在采用分区视图技术实现多表联合查询之前必须动态创建一个包含多个成员表的分区视图。对于超大型数据库来说,动态创建几个表的分区索引视图需要大量的时间。另外,分区视图技术是通过使用联合查询运算符来实现的,很多个大数据量表的联合查询性能是比较低的,这将在下面的性能测试中进行说明。
采用临时表技术则没有多表联合查询的那些限制,实现也比较简单,性能比执行联合查询要好得多,但是产生的事务日志信息比较多。另外,采用临时表技术的时候还可以利用多表分页查询机制来控制每次数据查询时需要访问的数据范围以及返回的记录数,以提高数据查询的速度。对于性能要求比较高的超大型数据库应用程序来说,建议采用临时表技术来满足动态分区的数据库查询统计的性能要求。
4解决方案
本文采用一种如图2所示的解决方案,来解决基于动态表分区的网络安全审计系统超大型数据库的性能问题,并为开发人员提供独立于数据库设计的基于动态表分区的数据库通用访问接口。
此方案在普通数据库应用程序的基础上增加一个的基于动态表分区的访问接口的模块,并对该模块进行优化。
5结论
由于采取了动态表分区技术并对相关接口进行优化,使得网络安全审计系统的性能得到了很大提高。
在千兆环境压力测试中每秒能提交9000条左右的数据记录,各种数据库查询统计操作都能够得到快速响应,经相同环境下的压力测试其性能比同类产品都要响应迅速。
参考文献
[1]求是科技著.SQL Server 2000数据库管理与开发技术大全[M].北京:人民邮件出版社,2004
计算机基础教育的本质应该是计算机文化教育,计算机文化教育的目的与核心是为了提高被教育者的计算机文化素质与数字化生存质量。
一、从数据库应用看计算机基础课的教学
数据库技术是信息化社会的重要基础技术之一,是计算机科学领域中发展最为迅速、应用最为广泛的重要分支;《数据库系统应用》也是计算机应用基础课程的必修科目。
(一)数据库系统应用的背景:概念、市场及其发展
数据库可以理解为在一个或多个企业组织中,为多个用户服务的、在计算机上可运行的、有结构的数据集合。与文件相比,文件是面向单个程序的,而数据库则是面向整个需求的;数据库中的数据是有结构的,而文件中各记录之间是没有联系的。传统意义上,数据库系统是把有关的硬件、软件、数据和人员组合起来为用户提供信息服务的系统。
数据表示可以有不同的抽象层次。在数据库结构的描述中至少需要有三级抽象层:概念观点、逻辑观点和物理观点。数据模型(DataModel)是数据及其相互关系的代表,而数据及其关系又是关于现实世界的抽象。数据模型既代表了数据的逻辑观点,同时也代表了数据的概念观点。三种最流行的数据模型是层次模型、网状模型和关系模型。在最常用的关系模型中,包含有关系(Relation)、元组(Tuple)、属性(Attribute)等成分,其中,关系与逻辑记录值的集合相对应,元组与逻辑记录值相对应,属性与数据项、记录之间的联系也用关系来表示。那么,什么是好的关系模式?起码它不该有数据冗余、更新异常、插入异常和删除异常。这取决于数据依赖的概念,但在许多数据依赖的类型中,最重要的是函数依赖和多值依赖。
数据库技术的发展,曾使其产品分为文件系统、关系数据库、对象数据库以及关系-对象数据库等四大类,而目前世界上最大的系统软件市场依然是关系数据库,虽然它能解决的问题与对象数据库并不相同,但它们之间大有兼容、融合之势。未来最大的数据库市场是支持通用的应用(UniversalApplications),并支持简单和复杂的数据;同时,一些新的应用将驱动市场,如Web、DigitalFilm、DigitalKiosks和GPS等等。
(二)数据库系统应用课程教学的回顾:dBase-FoxBASE-VisualFoxPro
微机数据库管理系统dBaseⅢ曾是数据库技术中的杰出代表。dBaseⅢ具有关系数据库的基本特征,程序结构精巧,处理信息能力较强,运行效率较高;它的全屏幕编辑功能,操作简便;它的人机会话方式,易学易懂;它提供运行的辅助手段,方便用户,还有它的较强的适应环境的能力,使其应用极其广泛,因此它获得了“大众数据库”的美称。自从dBaseⅢ引进我国并成功汉化后,计算机专业人员和经济、管理等方面的技术工作者,经过几年的不懈努力,使汉字dBaseⅢ广泛应用于财务会计、物资、图书资料、科研项目、学生成绩、人事档案、生产调度、经营计划、财政税收、银行帐目等各个管理部门,建立了无数的小型信息系统,有力地促进了我国经济的发展和管理现代化的工作,使它成了名副其实的大众数据库,也因此随着IBM-PC淘汰AppleII,dBaseⅢ取代了dBaseII,自然而然地走进了大专院校的课堂。
和dBaseⅢ相比,FoxBASE+更胜一筹:可在UNIX、XENIX等多用户操作系统下运行;完全兼容dBaseⅢ;运行速度更快;可以使用数组来实现数组和数据库文件之间的数据交换,以方便对数据库文件中记录的操作;可以自定义函数,简化程序设计;可以保存和恢复屏幕图像;可以将多个命令文件合并成一个过程文件,减少读盘次数,提高运行速度;能自动调整内存分配,以便充分利用有效内存,提高速度;扩充了部分命令的功能,新增了若干命令;扩充了一些技术参数的范围,方便了程序设计。于是伴随着CPU的换代和DOS的升级,FoxBASE+理所当然地替代了dBaseⅢ。
FoxPro除了兼容性和扩大已有的命令、增加新的命令和函数、减少对用户的限制外,采用90年代的先进技术,支持鼠标器,使整个系统更易使用和操作。尤其是可将程序伪编译为非常接近机器语言的中间代码程序,增快其执行的速度。如果程序经FoxDistributionKit编译,生成exe文件,就可脱离FoxPro而直接执行。2.0以后的版本加入Rushmore优化技术,使速度显著提高;面向对象技术的应用使数据库的设计效果结构清晰、简单,便于实现OOP;数据库对象的独立性、自治性使其便于维护,从而需求变更时程序与数据库重用率高,修改少等等,也就高于同时期的其它产品。尤其是VisualFoxPro3.0作为第一个正式具有Windows95兼容标志的应用软件,一个32位的数据库开发系统,引进了可视编程和面向对象的概念,使用了真正的数据库概念和多媒体数据,具有更快速开发应用程序、面向对象和客户机/服务器的强大功能,曾被认为是多年来出现在关系数据库方面最重要的产品,甚至是一个革命性的软件产品。既具有Visual系列的功能强大、直观易用、面向对象等优点又兼具Windows和FoxPro的长处;提供的向导、设计器、生成器等工具,加之从界面到内核的完全汉化,使数据库的管理变得轻而易举,跟着Windows淘汰DOS,VisualFoxProForWindows换代FoxBASE也就顺理成章了。
但是对于“摩尔规律”作用下的IT世界,发展尤其是永恒的。随着微机的CPU从8086/8088到PentiumⅢ/Pentium4以及K7/K8……的发展,操作系统由Dos到Windows又到Windows95/98/2000/XP/2003……的升级,程序设计由面向问题到结构化又到面向对象再到可视化,内容由文字到图文并貌又到多媒体,应用由单机到网络又到全球互联网,计算机公共课的教学由Dos-Wps-Lotus123向Windows-Word-Excel转变,桌面数据库的情形自然该有本质性的飞跃,尤其是这样的数据库技术已不只是被数据库专家所拥有了。
(三)桌面数据库系统应用的新概念:Access和Office97/2000/XP
随着个人计算机的发展和普及,越来越多的人采用数据库的技术来管理数据、分析数据和获取信息。所以,编程简化把数据库的用户从传统的专业编程人员扩大到了所有的计算机用户。Access的问世和推广,使它在短短几年之间即取代了FoxPro在桌面数据库市场上的统治地位。Access在国际桌面软件中早已占有了超过半数的市场份额。
Access在1993年问世,是一个完全基于Windows环境的桌面数据库系统,它是与Windows同步成长起来的。在Access中,微软加入了一种先进的数据库机制,即JetEngine。这种机制取代了以前的文件格式的数据库引擎,为数据库的技术与应用提供了更广阔的发展空间。今天的用户可以在VB、VC以及新版的FoxPro中发现这种数据库机制。
在编程方面,Access从一开始就致力于把简化的编程环境和复杂的关系数据库理论巧妙结合;在市场销售方面,把Access和Office这样的提高企业工作效率的易用工具打包一同销售。
在Access中,智能化的编程环境和高效率的工具实现了有机结合。比如Access97采用了VB5.0的智能编程环境,所以编程风格与VB完全一致。同时与最先进、“全面”的Office集成,使得Access可以直接操作Office中的上千个对象,大大缩短了开发周期和提高了代码重用率。Access97同时具有较高的适应能力,可以把一个Access97的应用程序用简单的操作提升到MicrosoftSQLServer等大型客户/服务器数据库系统。而且Access采用与MicrosoftSQLServer相同的数据库引擎,使这种提升变得更为简单和直接。Access与Office一致的包含Internet/Intranet功能和标准,使用户数据库与网络的结合简单易行。
早先版本的Access并未能够完全汉化,所以在用户编程实践中,对汉字的操作始终是一个困难。从Access97开始进行了全面中文化,包括内核,所有界面,帮助体系(即Office助手),应用向导,甚至示例应用程序。所以,用户的使用就更加得心应手。全面中文化的Access包含在Office97/2000/XP……中文专业版中。
一般地,计算机应用基础课的教学从95年开始已由Dos-Wps-Lotus123向Windows-Word-Excel转变,数据库的教学也从FoxBASE换成了FoxProforWindows。似乎总是跟不上技术发展和时代前进的步伐。加上学生已强烈要求学习多媒体制作和Internet技术,所以把计算机应用基础课的教学开成Windows+Office(2000/XP)则不失为一种好策略。
二、计算机基础课教学的新尝试
计算机科技的最大特点是发展极快、应用更广。鉴于此,《计算机应用基础》课程就成为各大专院校学生的必修科目;而它的基本内容也就随着计算机的发展而不断更新着。从原来的BASIC语言、五笔字型、DOS、WordStar、WPS、Lotus1-2-3以及dBaseⅡ/Ⅲ到早期的Windows3.1/3.2、Word6.0、Excel5.0、FoxBASE/FoxPro又到Windows95/98/2000、Office97/2000……等等。时至今日,WindowsXP和OfficeXP已经风行全球并深入人心,WindowsServer2003……也似排山倒海之势袭来!由此看来这门课的具体内容还要“进化”,而且似乎还要永无休止地“进化”下去。
(一)现行计算机基础课教学的主要内容:Windows+Office
通常我们在计算机基础课程教学的开始,总要谈论三个问题:计算机能干什么?我们学什么?怎么学?狭义的答案是:计算机无所不能;我们学Windows和Office;上机。接着是尽可能多地电脑演示,以此来升华学生对电脑知识的学习兴趣。
因为Windows时代,计算机操作技术的学习早已不是那么困难,再也无须死记硬背那么多的命令和格式,只需用一个手指点击鼠标,利用菜单就可以打开一个又一个窗口并在窗口中得到五彩斑斓的世界。可是,这个过程却很难通过传统的方法用粉笔在黑板上来讲明白。
单就操作系统来说,从Windows3.2到Windows95的飞跃,从Windows95到Windows98的进化,从Windows98到Windows2000的换代,以及从Windows2000到WindowsXP的“体验”,都使“黑板+粉笔”的教学方式陷于绝境。但总有必要尽可能地把最新的知识和技能传授给学生。例如学了Windows95,还要讲讲InternetExplorer和Windows98、学了Office97还要谈谈FrontPage和Office2000,学了Word,不能不说我们的民族软件WPS,学了Windows98,还要欣赏一下已成为PC操作系统主流的Windows2000和WindowsXP……等等,还要把各种最新的流行软件及其应用介绍给学生,如此这般来全面激发学生学习和使用电脑的乐趣,教给学生学习电脑知识的方法,同时也使学生在课堂上所学的知识和本领不至于那么快地“过时”和“淘汰”。
另一方面,过去曾经有不少在《计算机应用基础》课中学了WPS并考试得了高分的大学生及研究生当毕业找工作打印简历时竟因电脑中装的是Word而一筹莫展,类似的事情似乎比比皆是、无休无止,这说明了我们在计算机基础教育中存在的一个更重要的桎梏和盲点:计算机文化素质问题。所以,在计算机基础课程的教学过程中着意培养和提高学生的计算机文化素质和数字化生存的质量才是一项最根本的任务。
实践证明,现行计算机基础课程的主要内容Windows和Office,尤其是今天的Windows95/98+Office97、或者Windows2000+Office2000或者WindowsXP+OfficeXP完全可以由学生自己通过学习软件(如《开天辟地》、《万事无忧》、《畅通无阻》、《得心应手》、《电脑总动员》……等等)甚至通过教学网络更甚至Internet来自学掌握,而且这也是华山一条路了。
(二)计算机基础课程教学的紧要课题:从技术教育向素质教育转化
鉴于计算机科技遵循“每18个月更换一代”飞速发展的事实以及全球互联网时代日新月异的网络文化的进步,在计算机基础课程的教学过程中,时刻注意计算机文化素质的教育,着力培养学生对计算机科学的新思想、新知识、新技术的理解和自学的能力,以使学生能够利用计算机来大大提高自己的学习效率及工作效率,甚至用计算机来实现自己的理想;着力培养学生在互联网时代的伦理精神以及信仰,构成了计算机基础教育的根本目标。
为了实现计算机文化素质教育的目标,有必要尽可能及时地、全方位地解决学生学习过程中的问题,所以问题的解答就不仅仅局限于课堂上、书本里、甚至校园内。比如通过电子邮件,通过OICQ、QQ、MSN,通过多媒体网络,甚至通过网站,本着实事求是,实学实用,理论联系实际的原则,注意反映学科的前沿内容,将思想方法和操作技巧传给学生。另外还需要鼓励和帮助学生装电脑、买电脑、租电脑甚至修电脑,营造电脑学习的环境。这无疑对教师自身的计算机文化素质提出了更高的要求。
“学为人师,行为世范”、“严于律己,宽以待人”等思想行为准则在这个时候才更充分地体现出来,真正地潜移默化进日常的计算机教学生活中,不断学习,不断充实,不断进步,跟上时代的步伐,成了教师自己的“数字化生活”。此外,教师还需把诸如远程教育、语音识别等尖端科技的知识和应用普及给学生,带领学生,走向时代的前列。
可是,不得不提的是,用电脑来上电脑课,或者用“电脑+投影仪”,在计算机教学过程中是不可替代的,当然最好是在机房里上这些计算机课程。尽管如此,真正的计算机文化素质教育还是要回旋到传统的模式上。
(三)计算机基础课程教学的新尝试:计算机文化概论
关键词:关系模型;关系模式;数据库系统原理;教学方法
数据库系统原理的教学既要注重理论也要注重实践,尤其是要让学员通过教学及实践加深对理论知识的理解,并指导实践[1]。为使学员更好地理解和掌握数据库系统原理的理论和技术,笔者提出在实际教学中以“关系模型组成及关系模式”为核心,以点成线、以线组面的教学方法,通过所构建的课程主干体系,呈现给学员一个脉络清晰、前后贯通、左右相连的知识结构。
1以关系模型组成引领基本性质、基本概念和基本操作的教学
关系模型组成是数据库系统原理开篇教学的核心。围绕其组成的三要素(单一的数据结构、数据操纵和完整性约束)并以此为始点,从三条线上展开结构的定义、数据的查询与更新、约束的内容及实现等的教学。这三条线可以构成一个面,既可以展示出相关的教学内容,也可以体现出教学内容之间的相互联系(如图1所示)。
1.1关系数据结构(二维表)――数据操纵的基础和完整性约束的对象
围绕关系数据结构可以展开关系数据结构的基本组成、基本概念、基本定义和基本性质的教学。关系数据结构(基本表)由元组构成,组成元组的是元组的分量,以此扩展到属性、码、维、基数、分量集合、象集笛卡儿积等概念。在了解关系的基本数据结构后,可以结合实例讲解关系的基本性质在后续讲授SQL语言知识时,将模式、基本表、视图、索引的定义给学员交待清楚;形成与关系数据结构相关联的知识信息。在与关系数据库组成的其他二个要素的联系上,重点强调关系数据结构为数据操纵奠定了数据基础并成为完整性约束的对象。
1.2数据操纵――数据集成和获取的基本途径
数据操纵这一结点可以从两方面展开,一是从专门的关系运算和传统的集合运算的角度介绍数据操纵的基本操作;二是从SQL语言的知识角度讲授数据操纵的具体实现。教师在教学中通过实例介绍专门的关系运算和传统的集合运算的基本概念,结合查询优化的理论比较不同查询方法的开销,使学员建立数据操纵的基本概念,掌握相关的理论知识。教师在讲授SQL语言的数据操纵时,介绍查询的分类和方法、数据更新(插入、修改和删除)的具体实现、完整性约束与数据操纵的联系及对数据操纵的影响。教师在教学方式上采用概念讲解、实例展现和现场操作的形式,使学员对所学的知识有更加清晰、直观的感受。
1.3完整性约束――保障数据正确性与安全性的重要手段
完整性约束是关系模型组成的第三个要素。该要素涵盖实体完整性、参照完整性和用户定义完整性三方面内容。教师在教学中重点突出两个规则(实体完整性规则和参照完整性规则)、两个定义(参照关系和被参照关系)和一个实现(用户定义的完整性);强调完整性约束的重要性和实际意义。在这条线上进一步延伸可以与数据库的安全性控制、在属性及元组上的约束条件检查和违约处理、触发器等相关知识联系起来,使之构成一个整体。
2以关系模式为核心展现关系数据理论的知识
关系数据库理论是数据库系统原理课程教学的重点和难点,其内容涉及的概念、定义、定理、推理较多,同时在教学中要求学员能够运用相关的理论知识解决在数据库应用设计中遇到的实际问题。为了在整体上建立关系数据理论的基本知识结构,在实际教学中,我们从关系数据结构出发,分析组成数据结构的属性、属性间的联系类型以及其间的内在关系,给出关系模式的基本形式和关系数据理论知识的联系结构(如图2所示),并由此引申出相应的定义、概念和方法。教师以分析关系模式的属性间的三种对应(一对一、一对多、多对多)关系为基础,探讨函数依赖,讲授其的概念和知识,并通过具体实例的分析将各种范式的内涵及运用方法呈现出来。以函数依赖集为基础,系统介绍公理系统、函数依赖集的闭包、属性集的闭包、最小覆盖等知识及其相关应用。以属性集和函数依赖集为基础,讲述模式分解的等价定义及其分解方法。教学探索的实践表明,围绕关系模式展开关系数据理论的教学能够使学员加深知识间的相互联系,有利于对知识的理解,为重点、难点知识的教学开辟了一条有效的途径[2-3]。
3以关系数据库的构造实践关系数据库的设计
以关系数据库的构造实践关系数据库的设计是数据库教学的重要实践环节。在数据库应用实践教学环节中,我们针对学员的具体情况采用构建基本模式、提出基本要求、分析潜在问题、寻找解决方案的方法,力求帮助学员在实践中运用所学理论知识,解决实际问题。
教学中我们以SQL Server2000作为实践平台,要求学员在几个侯选题目中任意选择其一进行设计实现。例如在学员信息管理系统题目中我们提出了该系统的基本模式(如表1-3所示)。
学员基本信息包括:学号、姓名、性别、出生日期、民族、籍贯、所属班级。
学员专业信息包括:专业、本学期所修课程。
学员成绩信息包括:课程、成绩。
要求系统具备以下基本功能:
① 设置专业及该专业对应的课程;
② 设置指定专业对应的班号;
③ 设置指定班号的学员记录;
④ 统计和查询学员成绩;
⑤ 查询学员成绩单。
在实践前,学员已经对关系数据的理论知识有了一定的了解,如何将课堂所学的知识真正地应用到实践中,则需要学员上机进行实践。实际情况是大部分学员根据题目要求设计了如表1、表2、表3所示的信息表(表中代表主码)。
在系统功能的实现时,学员会发现在连接查询过程中系统会报错。我们引导学员依据数据模式,从完整性角度分析产生错误原因。首先考察实体完整性。开始设计时学员大多采用学号、专业、课程作为三张表的主码,但在数据输入时发现对于学员专业信息表(表2)仅将“专业”作为主码并不能满足实体完整性约束,因为专业并不能唯一的确定元组,故设置“课程”同时为主码。同理,设置学员成绩信息表(表3)中的“成绩”也为主码。按照实体完整性规则的规定,这几个主码满足实体完整性的要求,均不为空;其次考察参照完整性,以上3个基本表在实体范畴内是存在联系的,每个学员都是学习某一确定专业,而且相同专业本学期所修课程都是一致的。在以学员基本信息表为主表的情况下,学员专业信息表并不能满足参照完整性的条件。进一步分析,假定同一个班的同学都是相同的专业方向,则学员所属班级和专业之间存在联系。为解决参照完整性的问题,我们引导学员对系统的基本模式进行补充和修改。在发现问题所在后,有的学员很快就提出了增加班级专业信息表(表4)并修改学员成绩信息(表5)的解决方案,构造出了如图3所示的参照关系图。
通过实践教学环节,学员对数据库的基本概念、基本要素等内容有了较深刻的理解,在设计数据库时能较为全面的考虑各基本表的定义以及它们之间的联系。通过数据库实例的练习,使学员也体会到了将数据库中的文件分散存储带来的好处,以及如何通过对不同硬盘读写提高数据库访问的速度[4]。
4结语
本文简要总结了在数据库系统原理课程教学中所采用的以“关系模型组成及关系模式”为核心的教学方法,并在实践教学环节中通过“构建基本模式、提出基本要求、分析潜在问题、寻找解决方案”开展教学实验,收到了较好的教学效果。随着数据库系统的不断发展变化,数据库系统原理课程的教学内容也会不断更新,这也会促使我们在教学工作中不断探索和改进教学方式、方法和手段,以适应新的发展变化的要求[5]。
参考文献:
[1] 郑月斋,韩双霞,丁霞军. 关于数据库规范化理论教学的思考[J]. 吉林教育,2009(2):23-23.
[2] 刘艳霞,张静. 数据库系统原理精品课程建设实践[J].科技信息,2009(16):11-11.
[3] 王珊,萨师煊. 数据库系统概论[M]. 4版. 北京:高等教育出版社,2006:169-197.
[4] 杨俊红. SQL Server数据库应用教程[M]. 北京:中国水利水电出版社,2008:1-20.
[5] David M.Kroenke. 数据库处理:基础、设计与实现[M]. 7版. 北京:电子工业出版社,2001:3-26.
Investigation of the Database Systems Teaching Based on Model and Relationship of the Formation
LÜ Ming, WANG Ping
(College of Mechatronics and Automation, National University of Defense Technology, Changsha 410073, China)
2013年元月安徽省高等教育自学考试课程安排表(本科):
时间 专业
星期六(1月12日)
星期日(1月13日)
上午(9:00--11:30)
下午(2:30--5:00)
上午(9:00--11:30)
下午(2:30--5:00)
金融(020106) 财务管理学(00067)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 英语(二)(00015) 概率论与数理统计(经管类)(04183) 基本原理概论(03709) 经济学(020115) 政治经济学(财经类)(00009)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 英语(二)(00015) 概率论与数理统计(经管类)(04183) 基本原理概论(03709)
会计(020204)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 英语(二)(00015) 概率论与数理统计(经管类)(04183) 基本原理概论(03709) 市场营销(020208)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 企业会计学(00055)
英语(二)(00015) 概率论与数理统计(经管类)(04183) 基本原理概论(03709) 企业财务管理(020213)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 英语(二)(00015) 概率论与数理统计(经管类)(04183) 基本原理概论(03709) 工商企业管理(020202) 财务管理学(00067)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 英语(二)(00015) 概率论与数理统计(经管类)(04183) 基本原理概论(03709) 律师(030108)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 法律(030106)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 监所管理(030109)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 行政管理学(030302) 财务管理学(00067)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 公安管理(030401)
中国近现代史纲要(03708) 大学语文(04729) 英语(二)(00015) 基本原理概论(03709) 餐饮管理(020119)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 教育学(040108)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 秘书学(050104)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 汉语言文学(050105)
唐诗研究(09073) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 英语(050201)
中国近现代史纲要(03708) 基本原理概论(03709) 新闻学(050305)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 劳动和社会保障(020232)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 物流管理(020229) 政治经济学(财经类)(00009)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 英语(二)(00015) 概率论与数理统计(经管类)(04183) 基本原理概论(03709) 经济法概论(财经类)(00043) 机电一体化工程(080307)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 工业工程(082205)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 计算机及应用 (080702) 数据结构(02331)
数据库系统原理(04735) 中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 计算机网络(080709)
高等数学(工本)(00023) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 计算机信息管理(082208) 数据结构导论(02142)
数据库系统原理(04735)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 计算机通信工程(080708) 数据结构(02331) 数据库系统原理(04735) 高等数学(工本)(00023) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 建筑工程(080806)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 护理学(100702)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 林业生态环境工程与管理 (090609) 政治经济学(财经类)(00009)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 数学教育(070102)
概率论与数理统计(一)(02010)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 物理教育(070202)
理论力学(二)(02040) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 化学教育(070302)
化学史(10859)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 政治教育(040203)
现代西方社会思潮述评(10862)
中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 历史教育(060102)
历史教育学(00775) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 地理教育(070702)
人文地理学概论(02094) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 体育教育(040302)
体育教育理与方法(10874) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 生物教育(070402)
植物生理学(02662) 中国近现代史纲要(03708) 英语(二)(00015) 基本原理概论(03709) 英语教育(050206)
中国近现代史纲要(03708) 基本原理概论(03709)
汉语言文学教育(050113) 中学作文教学(10878) 唐诗研究(09073) 中国近现代史纲要(03708) 中学语文教学法(04579) 英语(二)(00015) 基本原理概论(03709) 心理健康教育(040110)
青少年心理学(06052)
中国近现代史纲要(03708) 学校管理心理学(06180)
英语(二)(00015) 基本原理概论(03709) 艺术设计(050437) 现代艺术设计史(10885) CIS设计(10879) 视觉流程设计(10884) 设计心理学(04462) 旅游管理(020210) 旅游专业英语(06120)
导游业务(00195)
中国近现代史纲要(03708)
基本原理概论(03709) 广告学(050302)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 调查与分析(020121) 政治经济学(财经类)(00009)
中国近现代史纲要(03708) 线性代数(经管类)(04184) 概率论与数理统计(经管类)(04183) 基本原理概论(03709) 日语(050202)
中国近现代史纲要(03708)
英语(一)(00012) 基本原理概论(03709) 电子商务(020216)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 对外汉语(050140)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 人力资源管理(020218)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 软件工程(080720)
高级语言程序设计(一)(00342)
中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 移动商务技术(080787)
高等数学(工本)(00023) 中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 嵌入式技术(080789)
高等数学(工本)(00023) 中国近现代史纲要(03708)
英语(二)(00015) 基本原理概论(03709) 采购与供应管理(020282) 政治经济学(财经类)(00009)
关键词:数据库;高职教育;教学改革
1 引言
《数据库技术与应用》课程是高职计算机类专业学习数据库技术的一门专业核心平台课程,担负着培养学生数据库技术的基础知识和SQL语言基本应用能力,为信息系统和网站开发建立稳固的后台基础。而高职院校主要培养技术应用型人才,作为计算机技术开发离不开数据库,因此要培养满足企业需求的计算机技术人才,数据库技术必不可少。如何合理的组织课程教学,它是全体高职师生所面临的重要难题。数年的实践教学经验表明,对数据库课程构建以“实践为主,理论够用”的原则,抛开传统的章节式的理论讲解,通过项目案例式的教学模式,在项目实现过程中逐步牵引出相关理论知识的讲解,教学效果提高较为明显。
2 课程设置
根据高职教育的特色和要求,课程设置应本着“以就业为导向、以岗位为依据、以能力为本位”的理念,根据岗位需要,模拟企业工作模式对学生进行专门的岗位技能培训,使学生在充分了解企业需求的同时,既学习到知识技能,又获得相关的行业认证资格证书。依据岗位系列课程构建原则和基本思路,广泛开展市场需求调研,确立了本课程的职业岗位:数据库管理员,针对数据库管理员这一岗位进行能力分析,又确定了该岗位所需的知识能力体系:数据库知识技能、数据库应用技术、数据库开发技术。
3 课程实施
在课程实施过程中,依据所确立的知识能力体系,在教学方法上改变了由原来的主要针对教师的“教”切换到现在的主要针对学生的“学”和“做”,相比传统的教学授课模式,在该课程的内容组织、教学方法和考核方法上都有了突破和创新。
3.1内容组织
根据该课程设置所确立的知识能力体系结构内容的三大模块:数据库基础理论、数据库应用技术及数据库开发技术,如表3-1所示。不难看出各模块所涉及的知识点不同,但总体也基本涵盖了数据库技术课程里相关理论,通过对各模块的讲解及实现,使学生能够对数据库技术理论中常用和必用的知识有个比较系统的了解和掌握。
表3-1 数据库课程模块设计
模块设计教学内容设置技能训练项目数据库基础理论1.数据库技术概论SQL数据库安装与认识2.关系数据库数据库及表的建立、操作及关联3.关系SQL语言数据库的查询(含SQL命令)4.数据库设计方法数据库建模工具的使用数据库应用技术1.数据库管理SQL Server数据库及表的建立、维护2.数据库应用数据库的多表连接查询、视图及游标3.数据库编程数据库的编程、存储过程、触发器4.数据库保护数据库安全性控制、完整性控制数据库开发技术1.数据库开发(后台)2、数据库开发(前台)SQL Server图书数据库开发综合实训
数据库应用系统设计综合实训
在各教学模块实施过程中,尽量引导学生密切联系实际,把与学生相关的图书管理、学生成绩管理等案例进行分析统计,这样能让学生在学习知识时产生亲切感,避免由于抽象带来的厌学情绪。
3.2 教学方法
(1)采用合作学习教学法,可以增强学生学习的兴趣。合作学习教学法是教师依据学生的能力、所具备的知识等相关因素,将学生分成小组形式进行教学的一种方法。小组成员彼此相互合作,互相激励,主动积极地参与学习,从中既可以建构出自己对学习内容的系统知识,又能够完成整个小组的共同目标。这样,不仅增强了学生学习的兴趣,还提高了他们与人合作的能力。适用模块:数据库基础理论。
(2)采用案例教学法,可以提高理论知识的教学效果。由于数据库原理及应用课程的理论部分比较抽象难懂,学生在学习的过程中容易产生厌倦的心理。而案例教学法符合人们的认知规律,它注重学生的创新能力和解决实际问题能力的培养,它能循序渐进地引导学生掌握相应的知识和技能,可大大缩短教学情景与实际情境的差距。适用模块:数据库应用技术。
(3)采用任务驱动教学法,可以培养学生的自学能力。任务驱动教学法的基本过程可分为提出任务、分析任务、学生自主学习、交流讨论、解决问题及总结经验等几个阶段。其核心是在教师精心为教学设计的任务驱动下,学生通过各种学习形式完成任务。在此过程中,学生始终处于主体地位,教师是学生学习的组织者、服务者和导航者。其结果是学生既学到了知识,又培养了分析问题、解决问题的能力,更重要的是提高了学生的自学能力。适用模块:数据库开发技术。
3.3 考核方法
本课程是一门专业课,考核着重基本知识和应用能力两方面,考核方法分期末闭卷和课程设计两个环节组成,所占比重均为50%。
* 闭卷考试:要求学生在学完本课程以后,能比较系统的了解数据库的基础理论知识,为以后更深入的学习数据库相关课程打下良好的基础。
* 课程设计:是高职课程教学的要求,该课程是计算机专业非常重要的实践性环节之一,学完后进行一次全面的综合练习,以SQL Server 2005作为后台数据库,以所学的任一门高级语言作为前台开发工具,完成一个小型数据库应用系统的设计开发。本课程设计主要在于巩固学生对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高学生综合运用所学知识的能力。
4 结语
数年的教学实践结果表明,采用新的案例项目式的教学方法,学生的学习目标更加明确,学习兴趣普遍得到提高,补考率明显下降,学到的知识更加实用,但是,这种新的教学方法也存在一定的难度和不足,如对教师的教学水平和实验实训场所硬件设备都提出了更高的要求,校企合作需要更加深入,才能培养出更加优秀的人才。
参考文献:
[1] 数据库系统概论,萨师煊,王珊,2000.3,高等教育出版社
【关键词】数据库技术 信息管理系统
1 数据库技术
随着我国网络技术的不断发展,信息技术建立在网络技术的基础之上也获得了良好的发展,对于企业来说,能够通过使用数据库技术实现文件传输,并且还可以使用数据库技术进行数据信息的存储,网络技术的发展为发展数据库技术的产生与发展打下了坚实的基础。因此,当前大部分企业的网络数据已经不再局限于数据处理,有很大一部分的企业会对这些数据进行分析,并且充分使用这些数据进行再次利用或者是做决策,因此,数据库技术就是在这种情景以及情况之下产生了。
1.1 人工阶段
大概是上个世纪五十年代,世界上才刚刚开始出现计算机,但当时计算机无论软件,还是硬件等设备的发展都不成熟,尚未实现计算机实现存储功能。在那个时期,人们使用的存储办法大部分还是使用纸带进行记忆,因为在那个时候,计算机软件以及硬件方面都还没能实现使用存储卡记忆。在那个时候也没有专门的软件系统进行数据处理以及管理,而且程序员在进行程序设计的时候既要规定具体数据的结构,还要进行设计和数据存储有关的物理结构,这种物理结构主要包含了存储结构以及输入输出方式,还有存取方法等等方面。
1.2 文件系统阶段
在文件系统阶段,首先人们对文件进行记录、存数,然后将记录、存储的数据文件通过管理系统进行集中管理。这个操作系统能够给使用者提供便捷的使用界面。当发生数据及程序分离的情况时,能够顺利剥离二者,从而达到降低数据及程序间相互依赖的依存度,并且数据和程序之间是呈现独立状态的。实现用户程序及数据分开存储,存储路径各不相同,并且每个应用程序都可以实现数据共享,便捷、高效的完成了以单个文件为基础单位的一种数据共享。
1.3 数据库系统阶段
目前使用最广的就是数据库系统阶段,我国现今大部分的企业在数据存储及管理都是以计算机系统为媒介。截至目前,我国的数据库系统也经历一段相当长时间的发展了。企业使用的数据库系统基本能够满足数据存储及办公需要,方便办公及时查询,而且还能够针对这些数据进行分析,为企业创造更大的使用价值,及经济效益。当前,在我国企业中使用范围人数最多的便是数据库系统。
2 数据库技术在管理信息系统中的作用
2.1 数据组织
数据库功能存储指的是将来自于不同数据库的数据分开进行存储,并且在存储的实现是根据不同的主题对数据进行组织以及归类的。我们都知道数据库技术具有强大的信息存储以及信息归类和划分功能,使用数据库技术能够在按照既定的程序之下对数据作出抽取以及转换,还有装载等等作用。
2.2 打破MIS “业务处理”的局限性
以往运用MIS数据处理技术大多是为了完成“业务处理”,但在世界范围内随着科技的不断兴旺发达,计算机技术以及数据库技术都发生着翻天覆地的变化,改变了先前只是使用MIS技术进行业务处理的局面。采用此类技术可以进行数据分类,充分改变了原先数据库不能够改变原来计算机内部存储的数据进行归类的缺陷。这一系统能够充分实现数据信息归类,这对于使用数据的人来说显得更加的便捷和有序,通过归类搜寻就可以找到自己所需要的信息,对信息进行利用以及分析都显得更加便利。因此,数据库技术作为系统分析过程当中最明显的优势,这同时也是进行系统分析的基础。
2.3 数据库技术有效解决数据组织与存储
数据库技术的应用解决了以往计算机信息处理过程中繁琐的数据组织与存储问题。譬如在数据统计活动中,如果利用数据库技术就可便捷的实现存储数据的共享工作,同时又可有效规避数据漏洞的发生,并能够改善数据检索处理速度。
以现代化互联网络信息技术为基础,并采用数据库技术系统,能够实现越来越多的领域都开始依靠使用数据库进行数据存储以及记录,越来越多的领域都开始依赖数据库技术。这些都在不断推进数据库技术不断发展。
3 数据库技术发展的趋势
3.1 面向对象的数据库技术将成为下一代数据库技术发展的主流
当前,我们在日常工作中采用的数据库技术已经出现不能满足经济发展的问题,也根本没办法通过数据库系统功能来描述当今现实社会,但是目前使用计算机技术系统的人们已经接受了先前使用数据库技术理念以及习惯,现在很难改变原有的习惯去接受新知识和新方法,因此,今后这种专门针对用户的数据库技术发展前景将十分广阔。
3.2 面向对象的数据模型
关系数据库将会成为未来用户使用数据库技术的标准,在不久的未来,这种面向特定对象的关系数据库将展现出不同类型不同复杂程度的数据模型,可以因为这种数据库技术还没有形成一个统一的统计模型以及计算理论公式,因此总体来说都是缺少数据逻辑的,仅能选择平面数据模型进行处理。为更好地应对未来数据库技术发展的需要及适应发展趋势,因此要对平面数据进行逻辑处理,同时还需要对数据进行立体逻辑处理。
3.3 非结构化数据库的建立
非结构化数据库与结构化数据库最大的不同点在于能够实现对原本建立的数据库结构进行突破,解决数据定义受限制的情况,并且能够完成重复字段及子字段行加工变成长字段,然后进行数据处理,对数据进行存储和管理。
4 小结
随着数据、计算机硬件及数据库等的发展及应用,实现了数据库技术与系统的产生与发展。数据、计算机硬件、数据库等为数据库技术的发展提供了技术支持平台;随着数据库的不断应用与发展,反作用于数据、计算机硬件,同时也促进了它们的进步。伴随着互联网络的出现,扩大了数据库的使用范围,给数据库技术应用领域带来了快速发展的契机与挑战。
参考文献
[1]西尔伯沙茨(Silberschatz.A.).计算机科学丛书:数据库系统概念(原书第6版)[M].机械工业出版社,2012.
[2]王珊,萨师煊.数据库系统概论(第4版)[M].高等教育出版社,2006.
[3]加西亚-莫利纳(Hector Garcia-Molina)、Jeffrey D.Ullman、Jennifer Widom,杨冬青.数据库系统实现(第2版)[M].机械工业出版社,2010.
关键词:数据库;优化;规范;查询
随着数据库技术的发展,越来越多的数据库应用系统和信息管理系统被开发、使用。而很多数据库应用系统和信息管理系统中,查询功能的要求是必不可少的,也是所占的比例最大的。数据库的查询功能优化规划好的话,整个系统的效率会有很大的提高,由此可见查询优化规划的重要性。要想整个数据库的查询得到很大程度的优化,就必须要从需求、设计到使用都要进行规划和技术改进。
一、详细的需求分析是优化的基础
数据库设计是从系统的需求出发,结合软硬件相关要求,设计合理能否符合系统需要功能的数据的集合。数据库设计中最基本的是数据库模式的设计。但是,设计一个完善的比较优秀的数据库系统往往是一个反复且周期性的过程。
二、利用规范化是优化的关键
在数据库的设计周期中,需要进行逻辑结构设计,这个时候必须进行关系模式的规范化来达到优化数据库的目的。所谓关系规范化就是按统一标准对关系进行优化,从而最大程度上能消除关系数据库中的数据冗余、添加、删除和修改等操作异常以提高关系的质量,不好的关系操作时会有3个问题:1.冗余度大;2.插入异常;3.删除异常。
规范化理论认为,关系中的各属性是相互关联的,他们互相依赖、互相制约,构成一个结构严谨的整体。按照属性间相关的关系,可大概分类为函数依赖、多值依赖和连接依赖。其中按照函数依赖又可分为部分依赖、完全依赖和传递依赖,根据这三类函数依赖等可得到规范化等级主要有5种,即第1范式(1NF),第2范式(2NF),第3范式(3NF),BC范式(BCNF)和第4范式(4NF),满足这些范式条件的关系模式可在不同程度上避免冗余、插入和更新异常问题。
那么如何进行规范化呢?具体做法是:确定数据依赖,按照数据依赖的理论,逐一分析这组关系模式,确定他们属于第几范式,进行模式分解,逐步消除非主属性对码的部分依赖和传递依赖。在分解过程当中必须遵守以下2条原则:
1.无损分解原则无损分解就是在关系分解过程中,既不丢失数据也不增加数据,同时还能保持原有的函数依赖。
2.相互独立原则所谓独立是指分解后的新关系之间相互独立,对一个关系内容的修改不应该影响到另一关系。
三、规范化的收尾工作
关系分解必须从实际出发,并不是范式等级越高,分解得越细就越好。若把关系分解得过于琐碎,虽然对于消除数据冗余和更新异常等有好处,但在进行查询操作时往往又需要进行链接,降低查询效率。相反的若是范式等级太低,虽有利于查询,但会造成相关数据冗余、更新异常等情况。因此我们应该根据实际应用进行相关范式的设计。
四、查询使用中的优化技术
应用项目的实施中,许多程序员在利用一些前端数据库开发工具开发数据库应用程序时,只注重用户界面的华丽,并不重视查询语句的效率问题,导致所开发出来的应用系统效率低下,资源浪费严重。因此,如何设计高效合理的查询语句就显得非常重要。
实际应用中许多程序员认为查询优化是DBMS的任务,与程序员所编写的SQL语句关系不大,这是错误的。一个好的查询计划往往可以使程序性能提高数十倍。查询计划是用户所提交的SQL语句的集合,查询规划是经过优化处理之后所产生的语句集合。在实际的数据库产品的高版本中都是采用基于代价的优化方法,这种优化能根据从系统字典表所得到的信息来估计不同的查询规划的代价,然后选择一个较优的规划。虽然现在的数据库产品在查询优化方面已经做得越来越好,但由用户提交的SQL语句是系统优化的基础,很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效,因此用户所写语句的优劣至关重要。下面重点说明改善用户查询计划的常用解决方案。
1.合理使用索引
索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:
在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。
在频繁进行排序或分组的列上建立索引。
在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。如果待排序的列有多个,可以在这些列上建立复合索引(compoundindex)。
2.避免或简化排序
应当简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时,优化器就避免了排序的步骤。
3.消除对大型表行数据的顺序存取
在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。比如采用顺序存取策略,一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。避免这种情况的主要方法就是对连接的列进行索引。还可以使用并集来避免顺序存取。
4.避免相关子查询
一个列的标签同时在主查询和where子句中的查询中出现,那么很可能当主查询中的列值改变之后,子查询必须重新查询一次。查询嵌套层次越多,效率越低,因此应当尽量避免子查询。如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。
5.避免困难的正规表达式
LIKE关键字支持通配符匹配,技术上叫正规表达式。但这种匹配特别耗费时间。例如:SELECT*FROMcustomerWHEREzipcodeLIKE“98___”即使在zipcode字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。如果把语句改为SELECT*FROMcustomerWHEREzipcode>“98000”,在执行查询时就会利用索引来查询,显然会大大提高速度。
6.使用临时表加速查询
把表的一个子集进行排序并创建临时表,有时能加速查询。它有助于避免多重排序操作,而且在其他方面还能简化优化器的工作。
7.尽量不要使用or使用or会引起全表扫描,将大大降低查询效率。
8.字段提取要按照“需多少、提多少”的原则
避免“select*”,尽量使用“select字段1,字段2,字段3........”。实践证明:每少提取一个字段,数据的提取速度就会有相应的提升。提升的速度还要看您舍弃的字段的大小来判断。
五、结语
数据库查询优化是一项综合性工作,受到各种各样因素的制约,有些要求往往是彼此矛盾的。因此设计者必须根据实际情况,综合应用上述技术,在基本合理的总体设计的基础上,对数据库查询做一些优化调整,力求最大限度地提高操作效率,减少异常等,满足用户各种各样的要求,实现数据库的查询优化设计。
参考文献:
[1]萨师煊.数据库系统概论[M].北京:高等教育出版社,2000
[2]王能斌.数据库系统原理[M].北京:电子工业出版社,2000
关键词:SQL;优化策略;数据库性能;谓词
中图分类号:TP301.6文献标识码:A
文章编号:1004-373X(2010)04-152-02
Optimization of SQL Query
ZHANG Min1,2
(1.Northwest University,Xi′an,710069,China;
puter Faculty Working Office,Xi′an Fanyi University,Xi′an,710105,China)
Abstract:Database performance issue has been the decision-makers and technical staff of the focus of common concern,affecting database performance is an important factor in the low-SQL query efficiency.In order to improve the implementation of database application system efficiency,from analysis of the process of query processing relational database query optimization techniques to start the discussion,pointing out that the relational database query optimization as a general principle.Optimization strategy in several studies,in time and space to improve the performance of the system,to a certain extent to improve efficiency of the query.
Keywords:SQL;optimization strategy;database performance;predicate
0 引 言
查询是数据库中最基本、最常用、最复杂的操作。在数据库的管理信息系统中,查询操作是所有数据库操作中所占据比重最大的操作。当数据库系统积累到一定程度,若查询时采用单条顺序扫描,那么扫描一遍所有的记录可能就得花上几十分钟,甚至几小时,这样的系统就失去了现实的使用价值。采取什么样的查询策略,使查询时间降为几分钟或者几秒钟,就是这里需要研究的查询优化问题。
1 优化原理[1]
查询优化力图找出给定表达式等价,但执行效率更高的一个表达式,一个查询往往会有许多实现方法,关键是如何找出一个与之等价的且操作时间又少的表达式,查询优化关注的问题是怎样省时、省空间以及效率高。优化的核心问题是尽可能减少查询中各表的参与加工的数据量,从而达到优化时间和空间的目的。
2 SQL优化的方法
2.1 模糊匹配的避免
LIKE关键字支持通配符匹配,技术上称为正则表达式。但这种匹配特别耗费时间,尽量避免使用模糊匹配。例:
SELECT*FROM student WHERErxscoreLIKE′4′
即使在rxscore 字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。
可改写为:
SELECT*FROM student WHERE rxscore>′400′
这样,在执行查询时就会利用索引来查询,显然会大大提高速度。
2.2 逻辑表达式的等价变换
由于执行引擎对各种谓词的处理方法不同,因此把逻辑表达式重写成等价的且效率较高的表达式是提高查询效率的有效方法,同时也是切实可行的[2]。通过查阅大量的文献资料以及大量的实验,分析了RDBMS执行引擎对各种谓词执行效率的不同,总结出以下几种逻辑表达式转换规则:
2.2.1 将多个OR连接的表达式转化为ANY表达式
当条件表达式中同层次上出现由连接词OR连接的表达式,并且OR所连接的表达式的左表达式相同且谓词符号也相同时,那么可以将这些表达式合并为一个右表达式用ANY来描述的表达式。例:
rxscore>400 OR rxscore>score+50 OR rxscore>score×2
可改写为:
rxscore>ANY(400,score+50,score×2)
2.2.2 将ANY或ALL转化为简单的比较表达式
当谓词的右表达式为ANY或ALL的形式,并且ANY(ALL)包含的各表达式均有固定值,并且可以比较大小,则可根据谓词符号 (仅限于比较大小的操作符 ) 将ANY(ALL)重写为简单的比较表达式。例:
x>ANY(100,200,300)可改写为:x>100;
x>ALL(100,200,300)可改写为:x>300
2.2.3 将BETWEEN…AND转化为AND连接的表达式
可以把由 BETWEEN expr1 AND expr2的形式重写为用AND连接的两个表达式,效率往往有一定的提高。例:
rxscore BETW EEN 300 AND 400
可改写为:
rxscore>=30 AND rxscore
2.2.4 将IN谓词表达式转换为OR连接的谓词表达式
例:年龄IN(20,30,40)
可写为:年龄=20 OR年龄=30 OR 年龄=40
以上提到的4类谓词重写规则均有其特定的条件,在条件满足的情况下才可以使用。对于简单谓词的重写,每条规则提高的效率可能不太明显,但如果查询语句的WHERE条件同时使用多条规则进行重写时,效率的提高将非常可观。
2.3 子查询合并
子查询合并是将某些特定的子查询重写为等价的多个表的连接操作。子查询合并的作用在于能使查询语句的层次尽可能地减少,从而可提高查询的效率。子查询合并的一般规则为:
(1) 如果外层查询的结果没有重复,即SELECT子句中包含主码,则可以合并其子查询,并且合并后的SELECT子句前应加上DISTINCT标志;
(2) 如果外层查询的SELECT子句中有DISTINCT标志,那么可以直接进行子查询合并;
(3) 如果内部子查询结果没有重复元组,则可以合并。
例:查询选修002号课程的学生基本信息。
用子查询的方法如下所示,例:
SELECT student.sno,sname,age FROM student WHERE sno IN(SELECT sno FROM sc WHERE cno=′002′)
可改写为:
SELECT student.sno,sname,age FROM student,sc WHERE student.sno=sc.sno AND cno=′002′
2.4 用集合运算来代替逻辑运算
0R在嵌套查询中,表的顺序存取对查询效率可能产生致命的影响,避免这种情况的方法就是对连接的列进行索引。例如两个表:student(sno,sname,age)和sc(sno,cno,score)。如果两个表要做连接,就要在“sno”这个连接字段上建立索引。还可以使用并集来避免顺序存取,尽管在所有检查列上都有索引,但某些形式的WHERE子句强迫优化器使用顺序存取。下面的查询将强迫对student表执行顺序操作:
SELECT*FROM student WHERE sno>′23005′AND sno
OR xb=′计算机系′
虽然在sno和系别名上都建有索引,但是在上面的语句中优化器还是使用顺序存取的方法扫描整个表。因为这个语句要检索的是分离的行的集合,所以应该改为如下语句:
SELECT*FROM student WHERE sno>′23005′AND sno
UNION SELECT*FROM student WHERE xb=′计算机系′
2.5 多表连接优化
最能体现查询复杂性的就是多表连接,多表连接操作往往要耗费大量的CPU时间和内存,因此多表连接查询性能优化往往是SQL优化的重点与难点[3]。
2.5.1 充分利用连接条件
在某种情况下,两个表之间可能不只一个的连接条件,这时在WHERE子句中将连接条件完整的写上,有可能大大提高查询速度。例:
SELECT SUM(A.AMOUNT) FROM A,B WHERE
A.CARDNO=B.CARDNO SELECT SUM(A.AMOUNT) FROM A,B WHERE A.CARDNO=B.CARDNO AND
A.ACCOUNTNO=B.ACCOUNTNO
这里,第二句将比第一句执行快得多。
2.5.2 先筛选后连接
当查询多个数据表时,要先过滤后再连接。例:
SELECT*FROM A,B WHERE A.INTID=B.INTADID AND A.INTID>1 AND YEAR(B.DATDATE)=2500
SELECT*FROM A,B WHERE A.INTID>1 AND YEAR(B.DATDATE)=2 500 AND A.INTID=B.INTADID它们的执行效率相差很大。第一个查询语句首先将两个数据表按照用户ID进行连接,然后再将符合条件的记录筛选。由于两个数据表进行连接时记录有些是以后还要筛选掉的,这显然会占用更多的时间,且多个数据表连接是笛卡儿积运算,消耗的时间会随着记录个数的增加很快地增长。第二个查询语句克服了这个缺点,首先筛选出符合条件的记录,减少了进行连接的记录个数,然后再执行连接查询,大大提高了查询效率。
3 结 语
查询优化要抓住关键问题,对于数据库应用程序,重点在于如何提高SQL的执行效率。在数据库的开发和维护过程中,查询的优化设计可以提高系统性能,对于数据量大的数据库系统尤为重要。以上介绍的几种优化策略使查询在时间和空间上提高了系统的性能,在一定程度上提高了查询效率。
参考文献
[1]王珊,萨师煊.数据库系统概论[M].4版.北京:高等教育出版社,2006.
[2]丁宝康,董健全.数据库实用教程[M].2版.北京:清华大学出版社,2003.
[3]范剑波,张晓云.网络数据库技术与应用[M].西安:西安电子科技大学出版社,2004.
[4]刘志成,彭勇.数据库系统原理与应用[M].北京:机械工业出版社,2007.
[5]罗运模.SQL Server数据库系统基础[M].北京:高等教育出版社,2006.
[6]宋瀚涛,李新社.数据库编程与应用[M].北京:电子工业出版社,1998.
[7]史嘉权.数据库系统概论[M].北京:清华大学出版社,2006.