已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一个简化的“招生录取系统”的实现过程以下是实现这个系统的开发参考步骤:第一步内容:在Oracle平台下创建开发所用数据库使用DBCA创建一个数据库,如Enrollment_DB第二步内容:创建系统所需表空间(1)创建用户数据表空间(一个或多个)(2)创建索引表空间(一个或多个)(3)创建回滚表空间(根据需要决定是否创建)(4)创建用户临时表空间(根据需要是否决定创建)第三步内容:创建用户并授权在开发之前,要为新的应用创建模式账户,并授予必要的权限,以便创建表和其他数据库对象。为了能够创建账户和授权,必须使用具有足够权限的管理账户,可使用系统管理员帐户来创建新的应用账户。1、创建账户Create user student Identified by student Default tablespace test Default temporary tablespace temp_test;2、授予用户权限(1)连接数据库权限 Grant connect to student;(2)创建表权限Grant create table to student;(3)创建视图权限Grant create view to student;(4)创建序列权限Grant create sequence to student;(5)创建同义词权限Grant create synonym to student;(6)创建存储过程、函数权限Grant create procedure to student;(7)创建触发器权限Grant create trigger to student;(8)表空间使用权限Grant unlimited tablespace to student;(9)使用新账户登录 Connect student/student mydb;至此,已经做好了使用student账户进行开发的准备。第四步内容:创建数据表有院校信息表college和学生信息表student。院校信息表college的结构字段名称类型宽度约束条件简要说明院校编号Number4主键院校的编号院校名称Varchar230不允许为空院校的名称录取分数线Number3在300-700之间院校最低录取控制分数线招生人数Number3=10计划招生总人数录取人数number3默认初值为0已经录取的人数学生信息表st字段名称类型宽度约束条件简要说明编号Number5主键考生的编号姓名Varchar215不允许为空考生的姓名性别Varchar211-男,2女考生的性别编码总分Number3=700考生高考总分同意调剂Varchar21默认为0是否同意调剂,0-不同意,1-同意一志愿Number4外键,参照college表的院校编号一志愿的院校编号二志愿Number4外键,参照college表的院校编号二志愿的院校编号录取状态Varchar21默认为0状态:0-末录取,1-录取录取院校Number4外键,参照college表的院校编号录取院校的编号录取志愿Varchar21默认为空表示考生被哪个志愿录取,1-代表一志愿,2-代表二志愿,3代表调剂录取日期Date默认为空录取的日期操作人Varchar210默认为空对考生投档的账户udent的结构1、创建院校信息表collegecreate table college( college_id number(4) primary key, College_name varchar2(30) not null, Enroll_mark number(3) check(enroll_mark between 300 and 700), Recruit_number number(3) check(recruit_number=10),Enroll_number number(3) default 0)TABLESPACE test;2、创建学生信息表stCreate table student( stu_id number(5) primary key, Stu_name varchar2(15) not null, Stu_sex varchar2(1) check(stu_sex in (“1”,”2”); Total_Score number(3) check(score0 then dbms_output.put_line(院校|p_yxbh|已存在); else insert into college values(P_yxbh,P_yxmc,P_lqfsx,P_zsrs,0); commit; dbms_output.put_line(院校|p_yxmc|已插入成功); end if;exception when others then dbms_output.put_line(院校|p_yxmc|插入失败);end;(2)执行该存储过程。execute input_college(1011,吉林大学,570,5600);(3)执行结果:说明:如果院校编号已经存在,则提示不能插入,通过存储过程插入考生,可以正确显示插入过程的错误信息。下同。三、包的创建(根据需要,考虑是否需要创建包)四、触发器的设计通过触发器可以为数据提供进一步的保护。下面设计两种常见类型的触发器。1、分数修改触发器如果要自动记录对数据库的数据进行的某些操作,可以通过创建触发器来实现。在考生数据库中,高考的分数字段的内容十分重要,是录取的最重要依据,应该正确设置对其进行操作的权限,并做好操作的记录。权限可以通过高定特定的帐户进行控制,记录操作可以通过触发器来实现。通过触发器来记录对考生表高考分数字段的插入、删除和修改操作,记录的内容可以包括:操作时间、操作人帐户、执行的操作、考生编号、原分数和修改后的分类,以上内容记录到表Operation_log。表1-3: Operation_log表的结构字段名称类型宽度约束条件简要说明序号Number10主键记录编号,从1开始递增,取自序列帐户Varchar215不允许为空操作人帐户时间Date操作时间,取自sysdate操作Varchar210操作种类考生编号Number5考生编号原分数Number3修改前的分数新分数number3修改后的分数(1)创建如下的记录表create table operation_logsOperation_log( 序号 number(10) primary key, 账户 varchar2(15) not null, 时间 date, 操作 varchar2(10), 考生编号 number(5), 原分数 number(3), 新分数 number(3);(2)创建一个个主键序列operation_idcreate sequence operation_idincrement by 1start with 1maxvalue 9999nocyclenocache(3)创建和编译触发器create or replace trigger operationbeforedelete or insert or update of 总分on studentfor each rowbegin if inserting then insert into operation_logs values(operation_id.nextval,USER,sysdate,插入,:NEW.编号,NULL,:NEW.总分); elsif deleting then insert into operation_logs values(operation_id.nextval,USER,sysdate,删除,:OLD.编号,:OLD.总分,NULL); elseinsert into operation_logs values(operation_id.nextval,USER,sysdate,修改,:OLD.编号,:OLD.总分,:NEW.总分);end if;end;2、级联修改触发器还可以创建级联修改触发器update_college,以实现如下功能:当修改院校的编号时,自动修改学生表中与院校编号关联的字段内容。学生表共有3个字段与院校编号关联,即一志愿、二志愿和录取院校create or replace trigger update_collegeafterupdate of 院校编号on collegefor each rowbegin update student set 一志愿=:NEW.院校编号 where 一志愿=:OLD.院校编号; update student set 二志愿=:NEW.院校编号 where 二志愿=:OLD.院校编号; update student set 录取院校=:NEW.院校编号 where 录取院校=:OLD.院校编号;end;系统的测试和运行(需要显示出结果)通过系统的模拟运行,可以检验模块的正确性。在系统运行过程中,也要通过查询的方法跟踪检查系统的状态和数据。一、 运行准备通过在SQL *PLUS环境中使用SQL语句可以进行多种查询,来辅助录取过程获得信息。如果有必要的话,查询也可以设计成为存储过程,存储在数据库中,并可以进行调用。在这里,比较复杂不能通过SQL语句实现的查询或统计将通过存储过程或函数来实现,直接使用查询是进行测试的一种很好的方法,在这里也列出了一些可能用到的查询。1、 按姓名进行模糊查询查找姓王的考生:select 编号,姓名,性别,总分 from student where 姓名 like 王%;2、 按分数或分数段进行查询查询分数在600650分之间的考生:select 编号,姓名,性别,总分 from student where 总分600 and 总分650;3、 查询分数最高的考生查询总分最高的考生:select 编号,姓名,性别,总分 from student where 总分=(select max(总分) from student);4、 查询分数最高的考生报考的院校查询分数最高的考生一志愿报考的院校:select 编号,姓名,性别,总分,院校名称 from student s ,college c where s.一志愿=c.院校编号 and s.总分=(select max(总分) from student);5、 查询考生分数查询考生分数:execute show_score(10005);6、 查询招生人数最多的院校查询招生人数最多的院校:Select 院校名称,招生人数 FROM COLLEGE WHERE 招生人数=(select Max(招生人数) From COLLEGE);7、检查operation触发器的记录select * from operation_logs;二、投档过程1、初始化初始化程序为:set serveroutput on size 10000exec clearstatus;2、一志愿自动投档exec autoproc(1);3、查考生录取状态exec show_result(10005);4、二志愿自动投档exec autoproc(2);5、查询录取情况视图select * from status;三、统计报表1、院校录取考生列表显示深圳职业技术学院的录取考生列表,并按成绩排序exec student_list(1010);2、招生情况统计显示按平均分降序排列的招生情况统计表:exec college_total;四、结果分析系统招生录取过程中和结束后,应该对系统数据进行分析,检查是否存在投档错误,避免造成损失。如果发现问题,则要重新投档。检查没有被录取的考生一志愿报考的院校:select 编号,姓名,总分,院校名称 from student s,college c where s.一志愿=c.院校编号 and s. 录取志愿 IS NULL order by 总分 DESC;结果分析:排在后面的考生因为分数不够(低于最低的录取分数线450分)不能被录取,最前面考生要对其进行检查(以第一个考生10045为例)select * from student where 编号=10045;先检查一志愿的情况:select * from college where 院校编号=1005;如果第一志愿落选,继续检查二志愿情况:select * from college where 院校编号=1007;如果该考生达到了二志愿录取分数线而没有被录取,继续检查该考生为什么没有被二志愿录取。Select 编号,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第5章 决策与设计阶段工程计价
- 建筑计量计价模拟试卷一
- 期末测试卷(三)含答案-2025-2026学年四年级下册数学人教版
- 北京市房山区2026年高三第二次综合练习(二模)思想政治试卷(含答案)
- 宝玉石琢磨工安全实操竞赛考核试卷含答案
- 客运船舶驾驶员标准化水平考核试卷含答案
- 织袜工安全风险水平考核试卷含答案
- 过滤器组合钳工测试验证模拟考核试卷含答案
- 植保无人机驾驶员创新实践竞赛考核试卷含答案
- 电池制造工变革管理模拟考核试卷含答案
- 2026年抗菌药物考试题及答案
- 2026年山东省夏季高考《语文》作文专项练习及答案解析(全国I卷)
- 第二轮土地承包到期后再延长30年试点工作意见政策解读
- 四川省成都市 2026 届高三第三次诊断性考试试题(含答案)
- 2018年上半年全国事业单位联考D类《职业能力倾向测验》答案+解析
- 2026年北京市平谷区初三下学期一模道德与法治试卷和答案
- 医院屋顶光伏施工造价预算方案模板
- 广播安装施工方案(3篇)
- 特医食品管理工作制度
- 国开2026年《新媒体伦理与法规》形成性考核1-5答案
- 2026校招:安徽皖维集团面试题及答案
评论
0/150
提交评论