第10章数据库开发 应用 实例课件

上传人:w****i 文档编号:92767098 上传时间:2019-07-12 格式:PPT 页数:141 大小:651.50KB
返回 下载 相关 举报
第10章数据库开发 应用 实例课件_第1页
第1页 / 共141页
第10章数据库开发 应用 实例课件_第2页
第2页 / 共141页
第10章数据库开发 应用 实例课件_第3页
第3页 / 共141页
第10章数据库开发 应用 实例课件_第4页
第4页 / 共141页
第10章数据库开发 应用 实例课件_第5页
第5页 / 共141页
点击查看更多>>
资源描述

《第10章数据库开发 应用 实例课件》由会员分享,可在线阅读,更多相关《第10章数据库开发 应用 实例课件(141页珍藏版)》请在金锄头文库上搜索。

1、第10章 数据库开发应用实例,10.1 系统分析和准备 10.2表和视图的设计和实现 10.3 应用程序的设计和实现 10.4 系统的测试和运行 10.5 练习,10.1 系统分析和准备,10.1.1 概述 通过计算机完成高等院校的招生录取工作,是一个复杂而又有代表性的数据库应用。其中涉及到大量考生和院校数据的录入、整理、存储以及由数据库应用程序来实现录取过程的自动化等工作。因为在校学生对高考录取过程都有一定程度的了解,所以我们选用这一项目来达到综合运用Oracle数据库的训练目的。因为这个系统比较复杂,所以我们通过设计和实现一个简化的“招生录取系统”来模拟招生录取的过程。,系统首先要建立合理

2、的数据结构和关系,并输入必要的基本数据,然后根据院校的招生要求和学生填报的志愿,实现对符合要求的考生的录取。通过对这一过程的模拟,我们可以比较全面地应用前面所学的知识和技能,并提高使用Oracle数据库技术解决实际问题的能力。 10.1.2 基本需求分析 先来做一个简单的需求分析。高考招生和录取工作,一般是由招生部门和院校合作完成的。招生部门和院校是该应用程序的使用者。该应用程序为考生只提供一些简单的查询功能。,1院校 院校应提供招生的要求,如招生的人数、最低录取分数线以及对考生的其他条件的限制。 院校需要在录取结束后查询院校的录取名单。 2招生部门 招生部门要收集和整理考生信息,建立考生信息

3、库和院校信息库。考生信息库用于存取考生的基本信息,包括考生的高考成绩和报考志愿;院校信息库用于存取院校的基本信息和招生信息。,招生部门通过数据库中的院校信息和考生信息,由相应的数据库应用程序来完成一系列的数据加工处理过程,其中最主要的就是投档录取过程。所谓投档,就是把满足院校要求的考生档案信息发送给院校,由院校审查档案后决定考生的录取与否。为了简化录取过程,我们由系统投档程序来完成考生的录取工作,一旦考生满足院校招生条件,即视为被录取。被录取的考生,在数据库中要标识成录取状态,并记录录取院校的信息,在院校信息库中要回填录取人数的有关信息。 在录取过程中或录取结束后,招生部门要进行查询和统计,主

4、要是在录取结束后统计所有院校的招生情况。,3考生 考生在录取过程中需要查询其高考分数和录取状态。 10.1.3 功能分析设计 系统完成的主要功能有数据录入、投档和查询统计。 1数据录入 数据录入要完成院校和学生信息表的数据输入及修改工作。 在本系统中,为了完成录取的模拟,可以虚拟10所院校,给出院校的基本信息和招生要求;虚拟至少50名考生,给出考生的基本信息以及考试成绩,并为每个考生填报2个院校志愿(一志愿和二志愿)。为了简化数据录入,可直接由SQL语句或其他工具完成,比如可以使用TOAD软件来完成。,2投档过程 招生录取的原则是:一志愿要求优先录取,一志愿全部录取完毕后,才能开始二志愿的录取

5、;二志愿录取对没有达到计划招生人数的院校进行补充录取。 根据以上原则,投档可分为一志愿投档和二志愿投档。一志愿投档是根据院校编号完成对一个学校的一志愿投档的;二志愿投档是根据院校编号完成对一个学校的二志愿投档的,二志愿投档应该在一志愿投档完成以后进行。一次完成全部院校的投档称为自动投档。自动投档一次完成对所有院校的一志愿或二志愿投档。如果使用自动投档,只需为一志愿和二志愿分别投档一次,即完成投档过程。作为补充,可以设计一个调剂投档功能,对一、二志愿没有被录取的考生,如果存在没有招满的院校,补充录取同意调剂的考生。,3查询统计 在投档过程中或投档结束之后,根据院校编号显示院校的录取结果,即录取考

6、生按分数排序的名单,同时应该显示考生的分数、录取的志愿等信息。 在录取结束之后,按院校的录取平均分数排名,显示所有院校的招生统计信息。 10.1.4 开发账户的创建和授权 在开发之前,要为新的应用创建模式账户,并授予必要的权限,以便创建表和其他数据库对象。为了能够创建账户和授权,必须使用具有足够权限的管理账户,可使用系统管理员账户来创建新的应用账户。,参见第1章中创建STUDENT账户的过程,在users表空间上创建开发账户,增加一些权限。如果该账户已经存在,则只需补充一些系统权限即可。 步骤1:创建账户: CREATE USER STUDENT IDENTIFIED BY STUDENT D

7、EFAULT TABLESPACE USERS; 步骤2:授予用户权限。 连接数据库权限: GRANT CONNECT TO STUDENT; 创建表权限: GRANT CREATE TABLE TO STUDENT;,创建视图权限: GRANT CREATE VIEW TO STUDENT; 创建序列权限: GRANT CREATE SEQUENCE TO STUDENT; 创建同义词权限: GRANT CREATE SYNONYM TO STUDENT; 创建存储过程、函数权限: GRANT CREATE PROCEDURE TO STUDENT; 创建触发器权限: GRANT CREAT

8、E TRIGGER TO STUDENT;,表空间使用权限: GRANT UNLIMITED TABLESPACE TO STUDENT; 步骤3:使用新账户登录: CONNECT STUDENT/STUDENTMYDB; 至此,已经做好了使用STUDENT账户进行开发的准备。,10.2 表和视图的设计和实现,10.2.1 院校信息表 1院校信息表结构设计 名称:COLLEGE。 字段结构如表10-1所示。,表10-1 院校信息表COLLEGE的结构,字段含义说明: 院校编号:为该表的主键,是从1001开始的4位数。 院校名称:院校的全称,必须填写。 录取分数线:是院校确定的考生最低录取分数线

9、,低于录取分数线的考生不能被录取。 招生人数:是院校计划招生的人数。 录取人数:在某院校录取过程中回填的已经被录取的一、二志愿人数的和。当录取人数等于招生人数时录取结束。 有关数值型数据的范围限定可以通过添加约束条件实现。,2表的创建 使用以下脚本创建院校信息表COLLEGE: CREATE TABLE COLLEGE( 院校编号 NUMBER(4) PRIMARY KEY, 院校名称 VARCHAR2(30) NOT NULL, 录取分数线 NUMBER(3) CHECK(录取分数线 BETWEEN 300 AND 700), 招生人数 NUMBER(3) CHECK(招生人数 = 10),

10、 录取人数 NUMBER(3) DEFAULT 0 );,3数据的插入 使用以下脚本插入虚拟的10所院校数据: INSERT INTO COLLEGE VALUES(1001,清华大学,620,5,0); INSERT INTO COLLEGE VALUES(1002,北京大学,600,4,0); INSERT INTO COLLEGE VALUES(1003,武汉大学,550,6,0); INSERT INTO COLLEGE VALUES(1004,华南科技大学,530,3,0); INSERT INTO COLLEGE VALUES(1005,复旦大学,580,4,0);,INSERT

11、INTO COLLEGE VALUES(1006,中山大学,560,5,0); INSERT INTO COLLEGE VALUES(1007,华南理工大学,520,4,0); INSERT INTO COLLEGE VALUES(1008,暨南大学,510,3,0); INSERT INTO COLLEGE VALUES(1009,深圳大学,500,6,0); INSERT INTO COLLEGE VALUES(1010,深圳职业技术学院,450,8,0); COMMIT; 说明:以清华大学为例,院校编号为1001,录取分数线为620,招生人数为6,已录取人数初值为0。 注意:插入的数据如

12、果违反约束条件就会发生错误。,4检查插入的数据 使用以下查询命令检查插入结果: SELECT * FROM college; 执行结果略。 10.2.2 学生信息表 1学生信息表的设计 名称:STUDENT。 字段结构如表10-2所示。,表10-2 学生信息表STUDENT的结构,字段含义说明: 编号:为该表主键,是从10001开始的5位数值,可以使用序列自动填充。 学生性别:只能是1或2,1代表男,2代表女,使用约束条件控制。 总分:为高考的总分数,约束条件是小于等于700分,假定满分为700分。 同意调剂:默认值为0,表示不同意调剂,值为1代表同意调剂。同意调剂的考生,在一志愿、二志愿录取

13、结束后,可以参加调剂录取。,一志愿:为考生填写的一志愿院校的编号。该字段参照院校表(COLLEGE)的院校编号。 二志愿:为考生填写的二志愿院校的编号。该字段参照院校表(COLLEGE)的院校编号。 录取状态:默认为0,代表没有录取,录取时改为1,代表已经录取。 录取院校:默认为空,在录取时填入录取院校的编号。该字段参照院校表(COLLEGE)的院校编号。,录取志愿:为1、2或3,代表考生被录取的志愿,1代表一志愿录取,2代表二志愿录取,3代表通过调剂被录取。 录取日期:默认为空,在考生被录取时,填入系统时间。 操作人:默认为空,在考生被录取时,填入投档账户名。 有关数值型数据的范围限定可以通

14、过添加约束条件实现。,2表的创建 以下脚本创建考生信息表STUDENT: CREATE TABLE STUDENT( 编号 NUMBER(5) PRIMARY KEY, 姓名 VARCHAR2(15) NOT NULL, 性别 VARCHAR2(1) CHECK(性别 IN(1,2), 总分 NUMBER(3) CHECK(总分=700), 同意调剂 VARCHAR2(1) DEFAULT 0,一志愿 NUMBER(4), 二志愿 NUMBER(4), 录取状态 VARCHAR2(1) DEFAULT 0, 录取志愿 VARCHAR2(1) DEFAULT NULL CHECK(录取志愿 IN

15、(1,2, 3), 录取院校 NUMBER(4) DEFAULT NULL, 录取日期 DATE, 操作人 VARCHAR2(10), CONSTRAINT FK_1 FOREIGN KEY (一志愿) REFERENCES COLLEGE(院校编号),CONSTRAINT FK_2 FOREIGN KEY (二志愿) REFERENCES COLLEGE(院校编号), CONSTRAINT FK_3 FOREIGN KEY (录取院校) REFERENCES COLLEGE(院校编号) ); 3数据的插入 在插入数据中使用序列,可自动生成考生编号。 步骤1:创建序列STUNO_SQU: CR

16、EATE SEQUENCE STUNO_SQU START WITH 10001 INCREMENT BY 1 NOCACHE NOCYCLE;,步骤2:使用以下脚本插入50名虚拟考生数据: INSERT INTO STUDENT(编号,姓名,性别,总分,一志愿,二志愿,同意调剂) VALUES (STUNO_SQU.NEXTVAL, 陈文政,1,598,1010,1001,0); INSERT INTO STUDENT(编号,姓名,性别,总分,一志愿,二志愿,同意调剂) VALUES(STUNO_SQU.NEXTVAL,李敏,2,460,1009,1010,1); INSERT INTO STUDENT(编号,姓名,性别,总分,一志愿,二志愿,同意调剂),VALUES(STUNO_SQU.NEXTVAL, 黄宾,1,627,1001,1002,0); INSERT INTO STUDENT(编号,姓名,性别,总分,一志愿,二志愿,同意调剂) VA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号