ORACLE存储过程四篇

2024-08-24

ORACLE存储过程 篇1

1 存储过程

1.1 存储过程的概念

存储过程的本质是数据库中的一个对象,是SQL语言的集合。当编译好的代码在执行一次之后就会高速缓冲保存在oracle数据库能够将里,再次使用时不需要进行二次编译就能直接调用。因此存储过程能帮助数据库提高查询和存储的有效速度,并能有效降低数据库系统较复杂这个性能,提升整个系统的可维护性、可伸缩性、安全性以及重用性,从而达到提升整个应用系统性能的目的。此外,他也属于封装重复操作的一种方法,因此不管是编程能力还是提供参数变量能力都是极强的。

1.2 存储过程的分类

我们可以将oracle数据库的存储过程分为以下四种 :分别是触发器、存储函数、存储过程、对象类型。(1)触发器 :触发器是以数据表为基础而创建的,是一种能够为程序员提供完整数据信息的方法,它可以和一个或者多个数据修改操作进行相应的联系,如 :删除、更新、插入等。触发器与普通存储过程有一定的不同性,主要表现在执行过程,它的执行是在条件设定的基础上自行完成的。(2)存储函数 :从实质上看,存储函数和存储过程具有很大程度的相似性,但是两者的不同之处在于 :存储函数可以向调用者返回值,相同之处在于 :用户也可以借助于名称来对存储函数在“顶级”位置、PL/SQL包以及SQL上进行调用。(3)存储过程 :顶级的存储过程可以给客户提供不一样的指令,如使用任何的商业逻辑扩展SQL语句,然后借助于名称来对存储过程在“顶级”位置、PL/SQL包以及SQL上进行调用。(4)对象类型 :从9i版本开始,oracle数据库就已经开始在存储过程的开发工作中引入面向对象编程思想,在对象类型中,对变量操作状态进行维护,对存储的这些信息数据以及相关操作进行针对性的定义,并且具有较好自身数据保护性,及时在函数和过程中也不会被外来程序锁修改。

1.3 存储过程的优点

存储过程的优势可以从以下五个方面进行概述 :(1)可移植性 :完全不需处理编译版本或者操作系统中兼容性问题的出现,因为在oracle数据库中不需要考虑到平台等方面的问题,任何情况下都可以使用存储过程,而且只要确保该操作平台支持运行oracle数据库,就可以不需要任何改变地调用存储过程。(2)安全性 :存储过程的安全性主要表现在它能够阻止客户对oracle数据库进行的不恰当操作,系统管理员还可以使用权限来科学管理存储过程的进行,尽可能避免存储过程或者数据库中的数据出现被非授权用户访问的情况。(3)执行效率高 :随着用户数量的不断增加,存储过程对有关于SQL的需求也在不断增加,这种情况很快就会导致在运行过程中网络出现“瓶颈”,影响网络的正常运行。在对服务器中所有执行的SQL语句进行调用时也可以调用存储过程,这样在很大程度上可以减少网络出现拥挤,腾出更大的空间。(4)可维护性 :一般情况下,若任务的逻辑发生改变,本身一对一的存储过程指定任务的改变只会表现在存储过程上,不需要去改变客户端的代码,降低了软件的维护成本。(5)可重用性 :一个存储过程只需要编写一次程序,并且还可以在很多地方进行使用,如 :客户机应用程序、数据库触发器、SQL脚本等。

2 oracle 数据库中存储过程的开发实例

2.1 复杂业务逻辑的封装

通过实现PL/SQL的存储过程,就可以实现某学校教务系统学生选课的逻辑指令,同时存储过程还能够对学生的选修课程数量进行判断,如果超过规定值,则不能够继续选课。如果不适用这个代码,那就需要数据库终端拥有两个数据集,首先判断学生是否选课成功,然后在计算选课数量,如果在同一时刻选课的学生较多,就会在很大程度上给网络增加较大的符合,从而影响网络的顺利运行。但是目前使用PL/SQL可以有效解决这个问题,但是也需要服务器的帮助,这个服务器要具备强大的处理能力,从而确保如果网络的负荷非常高,学生的选课工作也可以顺利完成。

2.2 动态多表关联查询

开发应用程序的过程中,并不能通过处理数据表直接得到相关数据,而是需要以此为基础建立其他的过度临时表或者直接实施比较复杂的逻辑操作处理,用户才可以得到需要的数据,但是这种过程只能在存储过程中实现。在实际应用过程中,可以通过包或者包体来对某学校某学年或者某学期学生的补考名单进行针对性的查询。补考名单是一个较为内容多且杂的数据库,其中涉及到很多表格,同时还存在一定的传递性参数,使用动态多表开关联查询有利于动态查询操作的实现,最后还能够返回到记录集。

2.3 跨平台的开发

由于考虑到跨平台的开发以及数据库无关性等方面的因素,所以PL/SQL要被作为开放式语言的Java所取代,再加上Java语言的平台具有一定程度的开放性,所以可以沟通并且集成Web服务、J2WW、XML、SQL等多个领域。通过一系列的代码可以显示Java存储过程在异构数据库访问过程中的应用,在oracle数据库中可以直接在本地系统用户认证过程中结合使用fn Login函数,使之组成系统认证功能,由于fn Login函数和其他oracle函数没有大的差异,所以无需关心fn Login函数的实现细节以及核心功能的位置,从而可以轻易的实现多个数据库系统统一进行用户认证的目的。

3 存储过程的创建和调用

3.1 存储过程的创建

3.1.1 PL/SQL 语言

过去,oracle的开发人员都在使用PL/SQL语言来管理和构建大量数据阵列复杂的系统,而PL/SQL语言属于一种高级的数据库程序设计语言,可以在各种环境下访问oracle数据库,同时也是SQL的补充,可以在SQL中引入其他语言的过程性特征,包括整套的数据类型、异常处理结构、循环结构以及条件结构等,如 :变量、函数、过程、控制结构等。SQL和过程性特征相结合,可以最大限度的强化oracle的PL/SQL功能。由于其集成了结构化程序设计中的语言特征以及SQL查询语言的特征,所以可以集成数据库服务器端,以最佳性能完成一些比较复杂的逻辑程序和计算。此外,还吸收了编程语言的很多设计方面的优势,如 :例外处理、重载处理、信息隐蔽性以及数据封装性等。

3.1.2 Java 语言

Oracle 9i数据库集 成了一个 称为oracle JVM的Java虚拟机,而oracle中JVM是在集成数据库中,和SUN Java JDK Specification互相兼容的Java执行环节,在oracle JVM中允许数据库运行Java程序,这些程序也可以称为Java存储过程。在数据库中存放的Java程序可以借助于JVM直接运行,还可以在内置JDBC驱动器的辅助下,对PL/SQL函数和SQL函数进行调用。此外,oracle还为布置、调试、测试、开发Java存储过程 提供了oracleJDeveloper。Java存储过程借助于oracle服务器端内部驱动程序或者服务器层胖驱动程序,这是在oracle数据库中将Java程序创建为存储对象唯一的有效方法。

3.2存储过程的调用

在oracle数据库中,存储过程、存储函数、触发器、对象类型四种不同类型的存储过程都可以在不同的调用环境中进行调用,这些调用环境分别是 :(1)SQL语句,在任何SQL语句的内部,都可以对函数进行调用。(2)顶级CALL语法 :在使用CALL语句的环境下,可以使用顶级调用过程和顶级函数,而CALL语法是随着oracle 9i的发展而引进、使用的新型语法。(3)PL/SQL包、子程序、块 :可以在PL/SQL包、子程序、块对其进行调用,但是要注意Java存储程序自己可以在匿名的BEGIN……END块内进行调用。(4)触发器的隐式调用 :Java存储过程或者PL/SQL存储过程都可以在触发性执行的过程中进行隐式调用。

4存储过程的开发策略

根据多次存储过程的应用经验,主要将oracle数据库应用系统使用存储过程的一些开发策略总结为以下几点 :(1)对于需要自动完成预先执行任务的应用程序,可以通过存储过程来完成,由于存储过程在启动以后就会自动执行,所以应用程序系统启动之后,不需要再进行手工操作,从而大大节约了人物、物力,也在很大程度上方便用户的使用 ;(2)对于需要对基本数据表进行较复杂中间过程逻辑处理的数据,通过存储过程可以返回用户需要的结果数据集 ;(3)用户和数据库如果数据的操作比较频繁时,可以通过存储过程来最大限度的减少网络负荷,同时,由于在调用服务器端的存储过程之前,该存储过程已经经过了解析,所以还可以在一定程度上提高脚本的运行性能 ;(4)对于需要集中进行控制和管理的逻辑和运算进行相应的处理时,要尽量在存储过程中进行,但是要在数据库服务器中保存一个存储过程的备份,以后对客户端进行调用时,就可以直接对存储过程进行便捷的执行和调用,可以起到便于应用程序维护以及版本管理的作用 ;(5)对于容易发生变化的业务规则,尽量通过存储过程来实现 ;(6)对于可以重复调用、运行效率较高的逻辑和运算处理,尽量通过存储过程来实现。

5结束语

ORACLE存储过程 篇2

深入分析, 数据库应用性能的优劣性的根本标准是其提供信息的质量、数量以及速度, 并根据三者的数据所进行的一种成本效益分析。可以从三个方面进行重点分析, 用户使用应用系统进行数据的处理能不能达到其所需要的服务, 同时系统为用户提供的信息是否正确、精确、安全以及可靠, 此外, 应用系统的优良性, 还可以通过可读性的强度来表示。其次, 应用系统应当保证其处理信息的效率与适应能力, 而效率问题可以以应用系统在信息处理任务时, 对时间以及资源的消耗作为判断标准, 而适应能力则主要是针对系统对整个环境变化时的适应性为判断标准。数据库应用系统的这些要求之间并非独立存在, 在某种程度上来说, 相互之间是有一定制约性的。可以从以下几个方面进行具体介绍, 一是JAVA数据库的功能, 其是一种常用的数据处理工具。在数据处理过程中, 对ORCALE系统的功能影响较大;二是数据应用程序的提高, 其中主要涉及的是应用程序中的算法和数据结构, 同时保证数据结构访问的合理性, 并且也将对应用系统的相关性能进行影响;三是提高硬件的优越性, 以及保证网络支撑环境;四是在系统运行过程中, 要对数据库的运行进行及时维护。以上因素都能够在一定程度上, 对数据库的相关性能进行影响, 有些能够通过人工对这些因素进行控制, 有些则不能, 需要在开发人员在了解JAVA的基础之上, 对数据进行优化, 从而达到配置的优越性。

2 ORCALE中基于JAVA对象关系数据模型的建立与优化

数据库的开发应当建立在一定需求分析基础上, 在开发过程中, 对功能的安排, 以及数据流的控制, 应当尽可能以客观情况进行介绍。在客观描述的基础上, 对实体对象进行抽象分析, 从而分析出不同实体对象之间的关系。这种关系通过一定的方式成为ORCLE支持的结构模型。因为基于JAVA的ORCLE数据库系统的主要特性便是一关系为基础建立起来, 因此实体对象之间的关系模型, 在整个数据库设计中, 是非常重要的一个环节。当数据库建立以后, 这种关系模型已经形成, 但是在对该数据库逻辑结构设计的过程中还需要对关系数据模型进行随时检测, 对这些关系数据模型的调整与优化, 在很大程度上影响数据库系统在性能方面上的保持与提高。目前为止, 任何版本的DMS支持的数据模型都可以采用逻辑记录存取方法, 该方法目前位置是数据优化理论中的重要基础。在学界这种方法被简称为LRA方法。LRA方法以3个参数来对不同数据库性能进行比较, 或者说比较中最为核心的一个标准。该标准是指采用这种方法, 在单位时间能够存取多少记录, 即这些记录的总数, 从而根据数据的总数来确定存储的数据量, 并且对低数据存储空间进行分配。

3 ORCALE中基于JAVA对数据存储结构的调整

当数据开发还处于物理设计阶段时, 需要选择对象最为合适, 最能够对存储空间起到优化作用的分配方式, 此时则需要采用实现已经设定好了的逻辑数据模型, 为了实现这一目的, 应用开发人员应当在了解RDMS数据存数结构以及一些其他的存数方法的基础, 对这些存储结构的方法和数据存取结构的优缺点有着充分的了解, 并且分析存储介质以及应用化境特征。较好的结果是, 保证存储空间的高利用率以及高效率, 并且尽量减少数据存储机构在运行时的维护成本。ORCALE所提高的两种基本存储结构, 不仅能够使得顺序存储结构变长还能够使主码索引存储结构变长, 顺序结构的变长方式主要是根据逻辑数据模型而实现, 而主码索引存储结构的局促结构则主要是同自然连接的若干相关表完成, 而这些相关表, 需要时常通过自然连接操作实现。从检索速度上来看, 单表检索速度属于比较快的一类。多表自然连接操作的速度也十分快, 主要原因是磁盘内能够读入较多的有效数据, 因此, 在进行多表检索的过程中, 具有相同记录的局促结构, 将会实现物理空间上的相邻存储, 这主要是聚簇结构的影响。这便影响多表检索的速度。但是这种方式也使得聚簇结构的空间大大消耗。而ORCALE所支持的数据模型中, 还有一类同聚簇结构较为相象的结构类型, 即哈希簇存储结构, 这种存储结构的优点在于能够将一些在数据列上有共性的表, 集合在一起。。并且以这些共同数据列的相同之处, 作为索引的关键词, 然后在哈希函数的计算基础上, 得到哈希值, 最终确定相应数据的存储问题, 从而加快相关表的存储速度。

ORCALE的特征在于其数据库同表控件相联系, 是在表空间中的安放的, 而表空间则是在物理层面的数据文件当中。针对一些较为大型的数据应用来说, 要根据具体实际情况的应用, 通过较多数据的表空间, 使这些数据能够在多个数据文件中储存, 其有利之处便是在于能够减少信息之间资源的抢占, 发生I/O竞争的情况。从相同的道理进行分析, 如果表空间能够被安排到不同的数据问卷当中, 也能够大大减少I/O竞争。不管是从创建表空间的角度来看, 还是在创建数据表的角度来看, 在选择存储参数的过程中, 都要遵循按需分配的原则, 并且尽量做到一次到位。当在特定情况下对存储参数进行设置以及存储空间进行安排与分配时, 应当注意以下事项。第一, 注意单位时间内数据量的安排工作;第二, 观察一定时间内, 数据量是否发生变化;第三, 保证数据存留的时间;第四, 明确系统的存储时间。还需要注意的是, 对存储空间进行安排的过程中应当依据实际情况, 不能够过度使用缺省的存储参数设置。

4 ORACLE中基于JAVA数据查询与运行时的优化

数据库是否实现了设计的优化, 只要在数据库运行过程中, 才能够观察出来。在对数据库的优化进行观察的过程中, 则需要进入数据库的欲行阶段, 在设计好之后, 运行之前, 应当保证数据库的调试, 经过调试之后, 数据库便可以进行运行阶段。当数据库运行了一段时间之后, 通过对运行过程的经验总结, 相关人员可以在征得设计开发人员的相关建议下, 对数据库系统在运行过程中的实际情况进行分析, 从而得出数据库在运行过程中的优化之处可以从以下几个方面展开工作。

第一, 对数据库磁盘I/O进行优化, 可以采用的方式有四种, 一是将表与索引分离开来为二者建立表空间, 并且所建立的表空间应当被安置在不一样的磁盘上。二是采用不一样的磁盘, 保存日志或者回滚段。三是可执行文件与数据文件应当分开放置, 并且放置的磁盘应当不一。四是以表与索引的访问频繁度为标准将一些较常访问的表以及索引单独列出来, 存储在特定的磁盘上。

第二, 在对回滚段和重做日志进行优化的过程中, 也要找到一些方法, 较为常用的方法有三类, 一是对回滚段进行合理监测, 预防之间发生争用现象;二是对于动态的分配空间要尽量避免使用;三是通过一定的手段, 针对重做日志, 要尽量减少转储过程中的I/O争用现象。

第三, 针对全局区域中的系统进行整体的访问与优化, 从而使得数据之间的存入能够较为方便进行, 从而提高存储的速度。但是如果整个内存空间较小, 而不能够实现对全局区的保存, 可以对全局区的系统进行分解, 将其中的一部分放置在磁盘中。通过特定方式, 可以使得在数据读取的过程中, 能够大大降低数据读取的效率。因此在优化过程中, 对系统全局区的优化工作十分重要, 应该给予充分的重视。可以从以下几个方面对其内容进行分析。一是对缓冲区的高速缓存进行处理;二是通过一定的方式对日志缓冲区进行调整;三是对其他数据进行调整, 数据字典、共享池、游标数等等。

第四, 确定数据库的优化对象, 如对表存储参数进行优化、采用并行查询的方式、通过表的动态存储调整进行分配等等。第五, 对存储查询进行优化时, 还需要注重相应应用程序的建立, 可以通过建立索引、采用较为规范的SQL语句以及客户端设置的优化实现。

参考文献

[1]王红艳, 李涛.ORACLE数据库集群技术的具体实施[J].电脑知识与技术, 2011 (02) .

[2]张学义, 王观玉, 黄隽.基于Oralce数据库SQL查询优化研究[J].制造业自动化, 2011 (02) .

[3]韩东晋, 李晋.Java的昨天, 今天和明天[J].信息与电脑 (理论版) , 2011 (01) .

[4]李可可.浅析Oracle数据库的性能优化方法[J].硅谷, 2011 (02) .

[5]刘星.Oracle数据库的性能优化与调整[J].科技资讯, 2011 (04) .

[6]陈博.开发人员如何优化ORACLE执行语句[J].硅谷, 2011 (04) .

[7]刘潇.基于JAVA的五子棋游戏设计与实现[J].电脑知识与技术, 2011 (06) .

[8]王慧慧.Oracle体系结构研究[J].软件导刊, 2011 (04) .

[9]周岚, 孔鲲鹏.Oracle中基于Java的存储过程开发研究[J].巢湖学院学报, 2010 (06) .

ORACLE存储过程 篇3

摘 要:基于存储过程的执行速度快、安全性高等优势,利用存储过程分析设计一种简易教学系统。在分布式应用环境下将对数据库的访问做在业务逻辑层上,通过存储过程实现对数据的所有操作处理,这样既可以降低整个应用程序的复杂性,也可以提高数据处理速度,方便用户操作。针对存储过程和MVC三层架构模式的优点,设计实现了简易教学系统,并给出了设计原理及实现方案。

关键词:存储过程;MVC三层架构模式;简易教学系统

中圖分类号:TP311 文献标志码:A 文章编号:1673-8454(2016)23-0086-04

一、引言

随着社会的发展,学校中教师和学生的规模不断扩大,使教师和学生信息数据量急剧增长,从而导致管理教师和学生信息的工作变得越来越繁杂,如何利用计算机技术帮助教师更快、更好地完成此类工作是非常有必要的。[1]通常情况下,对于基本信息的添加、删除、修改和查询等基本操作,使用Excel软件来完成也是可行的,但安全性不能保证,共享性体现不了,并且查询很不方便。尤其当涉及多个数据表格联合查询时,使用Excel软件进行数据处理会增加很大的工作量,在对其中一个数据表格进行处理时,也不能确保其它相关联的数据表格中数据的一致性。[2]因此,需要借助软件开发技术,编写小的应用程序,利用数据库技术对大量的数据进行保存、添加、删除、修改等操作,以便能够更好地利用数据资源。

Microsoft SQL Server是Microsoft研制开发的一款数据库管理系统,具有操作简单易学的特点,用户可以以很高的安全性、可靠性和可扩展性运行关键任务,具有很强的安全保密性。作为数据存储,SQL Server性能可靠,数据管理功能强大。[3]以其低价位、功能多、用户界面友好而被广泛地应用在大多数分布式Web应用程序中,是目前最常用的数据库系统之一。[4]

二、SQL应用与设计环境选择

SQL(Structured Query Language)语言是一个通用的、功能很强的关系数据库的标准语言,是一种介于关系代数与关系演算之间的结构化查询语言,其功能不仅仅是查询,用于存取数据以及更新、统计和管理关系数据库系统。

1.SQL语言对数据操作具有的优点[5]

(1)非过程化语言;

(2)统一语言,是所有关系数据库的公共语言。

SQL Server主要功能及其命令动词如表1所示:

数据定义是通过CREATE、DROP、ALTER命令,实现对基本表、视图以及索引文件的定义、修改和删除操作,还可以定义存储过程、触发器等模块。数据操纵是通过SELETE、INSERT、UPDATE、DELETE命令,实现数据查询和数据更新两种操作语句。其中,数据查询是指对数据库中的数据查询、统计、排序、检索、分组等操作,数据更新是指数据的插入、删除、修改等操作。数据控制是指对数据的操作权限控制。通过GRANT、REVOKE命令实现对数据库用户的授权和收权的存取控制,以保证数据的安全性。

对数据库的操作主要是通过以上SQL命令动词实现,但编写实现系统的程序代码时,考虑应用在分布式环境中,使用独立的SQL命令实现对数据库的访问,不利于数据的安全保护,因此会采用MVC框架结构和存储过程实现数据库访问。

MVC框架结构由模型(Model)、视图(View)和控制器(Controller)三部分组成。MVC结构将传统的输入、处理和输出功能映射到一个逻辑的图形化用户界面结构中。[6-9]MVC框架结构如图1所示。

模型(Model)表示业务逻辑操作等,在MVC中拥有最多的处理业务,负责在数据库中存取数据,能为多个视图提供数据操作。视图(View)是用于屏幕上的显示。模型进行操作之后,其结果通过视图来显示。控制器(Controller)用于管理用户与视图发生的交互。用户发出请求,控制器将相应的信息传递给模型进行处理,模型与视图匹配在一起,共同完成用户的请求。[6]他们各自处理任务。使应用程序的输入、处理和输出分开。

当前台页面发送数据请求时,控制层接受请求并调用相应模型去处理请求,由模型调用存储过程,在服务器端得到处理结果后,再将返回的数据在前台显示,模型调用的是存储过程,而不是SQL基本语句,屏蔽了数据库中表的结构、数据关联、用户使用权限等重要信息,提高了系统安全性。将业务逻辑封装在数据库系统的存储过程中,可以大大提高整个软件系统的可维护性,提高系统的共享性。合理编写存储过程,可以最大限度地利用SQL Server的各种资源。

2.SQL存储过程具有的优点

(1)执行速度快,改善系统性能

存储过程在服务器端运行,可以利用服务器强大的计算能力和速度提高执行速度。而且存储过程是预编译的,第一次执行后的存储过程会驻留在高速缓存中,以后直接调用,执行速度很快,如果某个操作需要大量的T-SQL语句或重复执行,那么使用存储过程比直接使用T-SQL语句执行得更快。

(2)减少网络流量

用户可以通过发送一条执行存储过程的语句实现一个复杂的操作,而不需要写上百条T-SQL语句,这样可以减少在服务器和客户端之间传递语句的数量,减轻了服务器的负担。

(3)增强代码的重用性和共享性

存储过程在被创建后,可以在程序中被多次调用,而不必重新编写。所有的客户端都可以使用相同的存储过程来确保数据访问和修改的一致性。而且存储过程可以独立于应用程序而进行修改,大大提高了程序的可移植性。

(4)提供了安全机制

如果存储过程支持用户需要执行的所有业务功能,SQL Server可以不授予用户直接访问表、视图的权限,而是授权用户执行该存储过程,这样可以防止把数据库中表的细节暴露给用户,保证表中数据的安全性。

鉴于SQL存储过程的以上优点,本文设计系统应用在网络环境中,采用存储过程处理数据,存储过程封装数据库操作,可以有效提高程序的性能。[8]调用存储过程时,通過指定存储过程的名字并给出参数(如果存储过程带有参数)来执行,避免了代码冗余,从而提高系统开发效率。

三、简易教学系统的设计

针对中学生的教学管理工作,在数据量比较大的情况下,使用存储过程将简单的查询组合在一起,将数据的处理转移到后台数据库中,基于存储过程和MVC三层架构模式设计实现简易教学系统,实现了学生、教师和课程信息的管理。本系统采用了Microsoft Windows 7操作系统、SQL Server 2008作为后台数据库,采用MyEclipse10开发环境,设计并实现了一套完善的简易教学系统。

1.系统功能分析

简易教学系统针对的是学校里的教师、学生以及课程模块的管理。[10-17]主要功能包括:学生基本信息管理、教师基本信息管理、课程信息管理、学生成绩管理、授课信息管理。其功能结构如图2所示:

学生基本信息管理:该模块实现了增加学生基本信息、修改学生基本信息、删除学生基本信息以及查询学生基本信息等。

教师基本信息管理:该模块实现了增加教师信息、删除教师信息、修改教师信息以及查询教师信息等。可以统计某一地区教师信息,教师性别统计及某年龄段的统计。可以根据身份证的前四位查询该地区教师的信息等。

课程信息管理:该模块实现了增加课程信息、修改课程信息、删除课程信息以及查询课程信息。

学生成绩管理:该模块实现了增加学生成绩、修改学生成绩、删除学生成绩、查询学生成绩、查询学生排名、统计选修科目等。学生也可以查询某门课程的成绩,不及格门数统计以及总评成绩等。

授课课程信息管理:该模块实现了增加授课信息、修改授课信息、删除授课信息以及查询授课信息等。

2.系统数据库设计

(1)数据库表设计

本研究中,系统后台数据库主要设计了5个数据表——学生信息表、教师信息表、课程信息表、学生成绩表和授课信息表。各数据表及其主要字段如下所示(下画线代表主键):

学生信息表(学号、姓名、性别、身份证号、民族、班级号、入学时间、家庭地址、政治面貌)

教师信息表(工号、身份证、姓名、性别、民族、年龄、出生地址、专业、职称)

课程信息表(课程号、课程名、开课学期、学分)

学生成绩表(学号、课程号、成绩、学期、学年)

授课信息表(工号、课程号、班级号、课程名、授课地点、授课学期、周学时)

(2)存储过程设计

存储过程是一组为了完成特定功能的SQL语句集,[9-11]存储在服务器上的一组预编译的Transact-SQL语句,是一种封装重复任务操作的方法。存储过程因其执行效率高、与事务处理结合、运行更安全等优点,在数据库应用程序中被广泛采用。创建存储过程的语法为:[12]

CREATE PROCEDURE <过程名> [;<版本号>]

[@<参数名><参数类型>[=<默认值>][OUTPUT]…]

[WITH RECOMPILE | ENCRYPTION | RECOMPILE,ENCRYPTION]

AS

在上面的CREATE PROCEDURE语句中,尖括号“< >”里的内容是必须要有的。方括号“[ ]”里的内容是可选的,参数的命名必须加“@”符号。方括号里符号“|”是或的关系,两边的选项可以任选一项。

存储过程创建后,以编译的形式存储于数据库服务器端,供应用程序调用。如果不调用,存储过程是不会执行的。通过调用存储过程时,实参的数量、顺序、类型要与定义存储过程时的形参的数量、顺序、类型相匹配。

存储过程按返回的数据类型,可以分为两类:[13-14]一类简单存储过程相当于SELECT语句,用于查询数据,查询到的数据以结果集的形式返回;另一类存储过程是通过输出参数返回信息,或不返回信息只执行一个动作。

根据不同的功能需求,本研究系统设计了如下存储过程。

简单存储过程主要包括:

> 查询所有学生的信息。

> 统计不同性别的学生人数。

> 统计所有课程都合格的学生信息。

> 查询所有教师的基本信息。

带参数的存储过程,向存储过程指定输入、输出参数的主要目的是通过参数向存储过程输入和输出信息来扩展存储过程的功能。通过使用参数,可以多次使用同一存储过程并按用户要求查找所需要的结果。

学生基本信息管理:

> 查询某学生的基本信息。

> 根据身份证,计算某学生的年龄。

> 修改某学生的家庭住址。

> 删除某学生的信息。

教师基本信息管理:

> 统计某教师的基本信息。

> 统计教师信息表中某地区的教师信息和人数。

> 统计某年龄段的教师人数。

对于课程信息管理:

> 查询某课程的基本信息。

> 修改某课程的学分。

> 删除某课程的基本信息。

对学生成绩表:

> 查询某学生的所有成绩以及该学生所选修课程门数。

> 查询某学生所有不及格成绩,并统计不及格课程门数。

> 查询某学生所学课程的总评成绩及班级排名。

> 查询某学生某门课程的成绩。

> 查询某门课程的统计信息(最大值、最小值、平均值、总人数)。

> 查询某课程所有比平均成绩高的学生姓名及成绩。

> 统计某门课程不及格学生人数。

> 统计某课程在某分数区间的学生成绩。

四、系统实现

通过以上分析设计,完成了简易教学系统。系统界面主要由3部分组成:一是显示系统的名称界面,功能是显示系统的标题;二是功能的导航,目的是链接到各个具体功能界面、对系统的各个功能进行的管理操作;三是结果显示,目的是能够显示所有功能的内容,是对教学信息系统模块进行具体操作。

系统存储过程示例如下:

(1)查询某学生某门课程的成绩。功能是根据学生姓名和课程名查询学生这门课程的成绩。

(2)查询某学生所有不及格的成绩,并统计不及格课程门数。功能是根据学生姓名查询不及格的科目成绩,并统计不及格科目。

系统界面如图3所示:

五、总结与展望

本文讨论了SQL基本数据处理与存储过程数据处理的特点,并在介绍存储过程优点的基础上,结合MVC三层架构模式,分析、设计并实现了基于存储过程的简易教学系统,可以方便管理教师和学生信息,为类似教学信息系统的设计与实现提供借鉴。但是,该系统在界面优化、细节设计等方面还存在一些不足,比如增加管理员和学生登录界面,而且可以增加考勤模块,通过管理学生的日常考勤,可以统计学生的最终成绩。下一步将在本文研究的基础上,展开考勤方面的研究,以进一步优化和完善系统功能。

参考文献:

[1]杨开城.教学系统分析技术的初步研究[J].中国电化教育,2007(8):1-5.

[2]郑少兰.电子表格与SQL Server的结合应用[J].电脑知识与技术,2006(35):17-18.

[3]石道生,张士军,孙山.SQL Server数据库触发器与存储过程技术在自定义数据表中的应用[J].计算机与现代化,2004(3):22-24,27.

[4]陈一明.SQL Server数据库应用技巧探讨[J].科学技术与工程,2008(12):3334-3337.

[5]苗雪兰,刘瑞新,宋歌.数据库系统原理及应用教程(第3版)[M].北京:机械工业出版社,2011:1-325.

[6]康建萍.基于MVC模式的Struts框架研究与应用[J].电脑知识与技术(学术交流),2007(2):49-51.

[7]张计龙,张成洪,张凯,宓詠,郭超,郭家银.基于改进MVC的高校人事管理系统[J].计算机工程,2004(8):191-194.

[8]白杨.探究SQL SERVER存储过程[J].电脑知识与技术,2011(34):8769-8770,8776.

[9]王鹏,王晓亮,张喆,吴仁彪.基于存储过程的通航飞行数据处理系统[J].计算机工程与设计,2015(4):1084-1089.

[10]王翠娥.基于WEB的教学系统的设计与实现[D].电子科技大学,2013.

[11]常红梅.基于存储过程的数据库安全性实践初论[J].网络安全技术与应用,2015(4):112-114.

[12]季刚.基于存储过程的主从服务器数据库同步的实现[J].计算技术与自动化,2012(3):114-116.

[13]陈潇.SQL Server2008数据库存储过程的应用[J].软件工程师,2015(6):18-19.

[14]张申勇,蔡培茂,廖继勇,乐小燕,孙细斌.浅析SQL Server中视图、存储过程和函数的异与同[J].电脑知识与技术,2011(23):5570-5573,5577.

[15]李衛华,颜建军.基于MVC模式的人事管理系统的设计与实现[J].三明学院学报,2009(4):416-419.

[16]徐红,李睿,李进,曾珂.基于存储过程的计费查询统计系统设计与实现[J].现代电子技术,2005(13):76-78.

[17]沈黎.基于网络数据库的存储过程和触发器应用研究[J].西南师范大学学报(自然科学版),2016(3):51-55.

ORACLE存储过程 篇4

-11-11oracle 视图权限 oracle 创建视图权限不足

2012-11-11oracle 声明游标(不具备字段)规则应用

-03-03Oracle数据库索引的维护

-04-04oracle监控某表变动触发器例子(监控增,删,改)

-07-07[Oracle] 分析AWR报告的方法介绍

2014-06-06Oracle 11g自动诊断信息库(Automatic Diagnostic Repository,AD

2007-03-03Oracle 9i轻松取得建表和索引的DDL语句

2007-04-04Oracle轻松取得建表和索引的DDL语句

上一篇:维修定位下一篇:锅炉汽温调节