开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

oracle 数据库开发应用实例,招生录取系统,oracle与plsql教程打包下载

简介:
+关注继续查看
系统分析和准备
概述
通过计算机完成高等院校的招生录取工作,是一个复杂而又有代表性的数据库应用。其中涉及到大量考生和院校数据的录入、整理、存储以及由数据库应用程序来实现录取过程的自动化等工作。因为在校学生对高考录取过程都有一定程度的了解,所以我们选用这一项目来达到综合运用Oracle数据库的训练目的。因为这个系统比较复杂,所以我们通过设计和实现一个简化的“招生录取系统”来模拟招生录取的过程。 
系统首先要建立合理的数据结构和关系,并输入必要的基本数据,然后根据院校的招生要求和学生填报的志愿,实现对符合要求的考生的录取。通过对这一过程的模拟,我们可以比较全面地应用前面所学的知识和技能,并提高使用Oracle数据库技术解决实际问题的能力。
基本需求分析
先来做一个简单的需求分析。高考招生和录取工作,一般是由招生部门和院校合作完成的。招生部门和院校是该应用程序的使用者。该应用程序为考生只提供一些简单的查询功能。
1.院校
院校应提供招生的要求,如招生的人数、最低录取分数线以及对考生的其他条件的限制。
院校需要在录取结束后查询院校的录取名单。
2.招生部门
招生部门要收集和整理考生信息,建立考生信息库和院校信息库。考生信息库用于存取考生的基本信息,包括考生的高考成绩和报考志愿;院校信息库用于存取院校的基本信息和招生信息。
招生部门通过数据库中的院校信息和考生信息,由相应的数据库应用程序来完成一系列的数据加工处理过程,其中最主要的就是投档录取过程。所谓投档,就是把满足院校要求的考生档案信息发送给院校,由院校审查档案后决定考生的录取与否。为了简化录取过程,我们由系统投档程序来完成考生的录取工作,一旦考生满足院校招生条件,即视为被录取。被录取的考生,在数据库中要标识成录取状态,并记录录取院校的信息,在院校信息库中要回填录取人数的有关信息。
在录取过程中或录取结束后,招生部门要进行查询和统计,主要是在录取结束后统计所有院校的招生情况。
3.考生
考生在录取过程中需要查询其高考分数和录取状态。
10.1.3 功能分析设计
系统完成的主要功能有数据录入、投档和查询统计。
1.数据录入
数据录入要完成院校和学生信息表的数据输入及修改工作。
在本系统中,为了完成录取的模拟,可以虚拟10所院校,给出院校的基本信息和招生要求;虚拟至少50名考生,给出考生的基本信息以及考试成绩,并为每个考生填报2个院校志愿(一志愿和二志愿)。为了简化数据录入,可直接由SQL语句或其他工具完成,比如可以使用TOAD软件来完成。
2.投档过程
招生录取的原则是:一志愿要求优先录取,一志愿全部录取完毕后,才能开始二志愿的录取;二志愿录取对没有达到计划招生人数的院校进行补充录取。
根据以上原则,投档可分为一志愿投档和二志愿投档。一志愿投档是根据院校编号完成对一个学校的一志愿投档的;二志愿投档是根据院校编号完成对一个学校的二志愿投档的,二志愿投档应该在一志愿投档完成以后进行。一次完成全部院校的投档称为自动投档。自动投档一次完成对所有院校的一志愿或二志愿投档。如果使用自动投档,只需为一志愿和二志愿分别投档一次,即完成投档过程。作为补充,可以设计一个调剂投档功能,对一、二志愿没有被录取的考生,如果存在没有招满的院校,补充录取同意调剂的考生。
3.查询统计
在投档过程中或投档结束之后,根据院校编号显示院校的录取结果,即录取考生按分数排序的名单,同时应该显示考生的分数、录取的志愿等信息。
在录取结束之后,按院校的录取平均分数排名,显示所有院校的招生统计信息。
开发账户的创建和授权
在开发之前,要为新的应用创建模式账户,并授予必要的权限,以便创建表和其他数据库对象。为了能够创建账户和授权,必须使用具有足够权限的管理账户,可使用系统管理员账户来创建新的应用账户。
在users表空间上创建开发账户,增加一些权限。
步骤1:创建账户:
Sql代码
见附件
 
说明:从结果可以看出,深圳职业技术学院计划招生8人,已经录取8人。其中一志愿录取3人,二志愿录取5人。最高分数为589分,最低分数为455分,录取控制分数线为450分。
2.招生情况统计
显示按平均分降序排列的招生情况统计表:
EXEC COLLEGE_TOTAL;
执行结果:
Sql代码
院校编号 院校名称             招生人数 录取人数 男生人数 女生人数 最高分数 最低分数 平均分数 
1001        清华大学     5         5        3        2     689     627     660 
1002        北京大学        4        4        1        3        615    600        609 
1005        复旦大学        4         2        2        0     610     600        605 
1006        中山大学         5        2        0        2        608     587    598 
1003        武汉大学        6         6            2         4         617    560            595 
  1004        华南科技大学         3         2         1         1         595        588            592 
  1007        华南理工大学         4         4         3            1        585        532            557 
  1008        暨南大学         3         3            1         582        534        552 
  1009        深圳大学         6         5            3        2         555        502    522 
  1010        深圳职业技术学院 8        8         5        3         598        455        502 
  PL/SQL 过程已成功完成。
说明:从结果可以看出,清华大学平均录取分数最高,为660分。该校计划招收5人,已经招满,其中男生3人,女生2人,最高分为689分,最低分为627分。
结果分析
系统招生录取过程中和结束后,应该对系统数据进行分析,检查是否存在投档错误,避免造成损失。如果发现问题,则要重新投档。
检查没有被录取的考生一志愿报考的院校:
Sql代码
SELECT 编号,姓名,总分,院校名称 FROM STUDENT S,COLLEGE C    
    WHERE S.一志愿=C.院校编号 AND S.录取志愿 IS NULL ORDER BY 总分 DESC;
执行结果:
Sql代码
编号 姓名                                    总分 院校名称 
--------------- ----------------------------- ----------- ------------------------------ 
         10045 张韦                                     553 复旦大学 
         10047 高飞云                                 540 复旦大学 
         10042 邓树林                                 485 北京大学 
         10030 国丹丹                                 415 深圳大学 
         10034 洪智力                                 378 武汉大学
后5名考生因为分数不够(低于最低的录取分数线450分)不能被录取,前3名考生要对其进行检查(以第一个考生10045为例):
Sql代码
  SELECT * FROM STUDENT WHERE 编号=10045;
执行结果:
Sql代码
编号 姓名                        性             总分             一志愿         二志愿    
    ---------------- --------------------- ------ --------------------- -------------- ---------------    
             10045 张韦                        2                 553 1             1005             1007
该生总分为553分,一志愿报1005,二志愿报1007。先检查一志愿的情况:
Sql代码
SELECT * FROM COLLEGE WHERE 院校编号=1005;
执行结果:
Sql代码
院校编号 院校名称                 录取分数线     招生人数     录取人数 
    --------------- ---------------------------------------------- ----------------- --------------- ---------------- 
             1005 复旦大学                                                            580                    4                    2
复旦大学虽然没有招满,但因该考生的分数低于复旦大学的录取分数线,所以一志愿落选正常。继续检查二志愿情况:
Sql代码
SELECT * FROM COLLEGE WHERE 院校编号=1007;
执行结果:
Sql代码
院校编号 院校名称             录取分数线     招生人数     录取人数 
--------------- ---------------------------------------------- ---------------- ---------------- --------------- 
              1007 华南理工大学                    520                    4                    4
该考生达到了华南理工大学的录取分数线。该校招生4人,录取4人。继续检查该考生为什么没有被二志愿录取:
Sql代码
SELECT 编号,姓名,总分,录取志愿 FROM STUDENT WHERE 录取院校=1007 ORDER BY 总分 DESC;
执行结果:
Sql代码
编号 姓名                                    总分 
  --------------- ------------------------------- ---------- 
         10017 罗惯通                                 585 1 
         10046 胡月                                     557 1 
         10006 杨煌                                     555 2 
         10041 林晨曦                                 532 1
该校有3名考生被一志愿录取,二志愿录取1人。按照一志愿优先的原则,10045号考生只能参加二志愿投档。该校二志愿缺额1人,按分数从高到低排序,考生杨煌的分数555高于考生张韦的分数553,故杨煌优先录取,达到录取人数4人,录取结束。
通过以上分析可知,张韦没有被录取属于正常情况。
对其他考生的情况分析可以模仿以上步骤进行。
系统改进
至此完成了高校招生模拟的全部工作。该系统在以下方面还有待于改进:
(1) 可按照模块功能以包的形式对模块进行分类,比如可以分为投档包、查询包和公用包。
(2) 可以设立多个应用账户,通过授予不同的系统权限对象及包的访问权限,来限定对数据的访问和操作。
(3) 进一步完成调剂投档的程序。
以上工作,有兴趣的读者可以进一步完善。
练习
设计开发“图书管理系统”,完成图书的入库、查询、出借、归还和信息统计工作。系统主要的表应该包括图书表、出版社表、图书出借表和读者表(参照第4章内容)。
系统的主要功能包括:
(1) 插入修改图书表、出版社表和读者表。
(2) 按图书名称、出版社、出版时间和作者检索图书。
(3) 对图书进行模糊检索。
(4) 出借和归还图书。
(5) 查询过期未归还的图书。
(6) 查询在借图书的有关信息。
(7) 热门图书统计(按出借次数统计)。
(8) 按日期查询新进图书。


本文转自 烂泥行天下 51CTO博客,原文链接:http://blog.51cto.com/ilanni/758055

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle 数据库直接执行本地sql文件、sql脚本实例演示
Oracle 数据库直接执行本地sql文件、sql脚本实例演示
39 0
Mac Oracle SQL Developer “欢迎使用“页卡死,解决办法
Mac Oracle SQL Developer “欢迎使用“页卡死,解决办法
67 0
Oracle之pl/sql编程(一)函数,过程,包
pl/sql是什么? pl/sql是oracle在标准sql语言上的扩展。不仅允许嵌入sql语言,还可以定义常量和变量,允许使用条件语句和循环语句,允许使用例外处理各种错误。
876 0
Oracle数据库应用系统调优方法
从以下几个方面:数据库服务器、网络I/O、应用程序等对整个系统加以调整,充分发挥Oracle的效能,提高整个系统的性能   Oracle数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显著下降的问题,为了解决这个问题,从以下几个方面:数据库服务器、网络I/O、应用程序等对整个系统加以调整,充分发挥Oracle的效能,提高整个系统的性能。
901 0
23704
文章
0
问答
文章排行榜
最热
最新