大型数据库课程设计设计说明书教务管理系统起止日期:2014 年12月1日至2014 年12月7 日学生姓名关鹏举班级计算机1102班学号***********成绩指导教师(签字)计算机与通信学院2014年12月6日目录1 绪论.................................................................................................... 错误!未定义书签。
1.1 课题背景.................................................. 错误!未定义书签。
1.2 控件开发相关技术介绍...................................... 错误!未定义书签。
2 系统分析............................................................................................ 错误!未定义书签。
2.1 工作流程 (2)2.2 业务需求 (2)3 系统设计 (3)3.1 系统功能结构图 (3)3.2 模块功能设计 (5)4 系统数据库设计 (5)4.1 数据表E-R图 (5)4.2 数据表的设计 (7)4.3 数据库表的创建,向表中插入数据----------------------------------------------84.4 存储过程,触发器的设计 (18)4.4.1 存储过程 (18)4.4.2触发器 (21)5 总结和展望........................................................................................ 错误!未定义书签。
5.1 总结与展望................................................ 错误!未定义书签。
参考文献.................................................................................................. 错误!未定义书签。
致谢........................................................................................................ 错误!未定义书签。
课程设计检查表...................................................................................... 错误!未定义书签。
绪论1.1课题背景由于计算机与通信学院的不断发展壮大,教务管理工作的工作量越来越大,全部用员工来做这个工作不仅越来越浪费人力、物力、财力,而且也越来越难管理,迫切需要一个进行教务管理的软件系统。
鉴于这种情况,计算机与通信学院在信息化建设中把教务管理系统也纳入其中,利用网络进行教务管理工作不仅省部分人力、物力、财力,更重要的是利用网络可以提高工作效率,便于整个学院教务管理工作的管理。
计算机与通信学院教务管理系统是一个实际应用的软件系统,做这样一个软件系统,不仅可以使我们可以更加了解软件开发的过程,而且把学到的理论知识应用到实际的软件开发过程中,进一步了解、掌握理论知识,为以后的工作学习积累经验。
1.2控件开发相关技术介绍本系统相关开发的技术是利用专门的数据库,即Oracel数据库。
提起数据库,第一个想到的公司,一般都会是Oracle。
该公司成立于1977年,最初是一家专门开发数据库的公司。
Oracle在数据库领域一直处于领先地位。
1984年,首先将关系数据库转到了桌面计算机上。
然后,Oracle的下一个版本,版本5,率先推出了分布式数据库、客户/服务器结构等崭新的概念。
Oracle的版本6首创行锁定模式以及对称多处理计算机的支持……最新的Oracle8主要增加了对象技术,成为关系-对象数据库系统。
目前,ORACLE产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。
ORACLE是一种适用于大型、中型和微型计算机的关系数据库管理系统,它使用SQL(Structured guery language)作为它的数据库语言。
SQL主要包括数据定义、数据操纵(包括查询)和数据控制等三方面功能。
SQL是一种非过程化程度很高的语言,用户只需说明"干什么"而无需具体说明"怎么干"语言简洁、使用方便功能强大,集联机交互与嵌入于一体,能适应广泛的使用环境。
ORACLE数据库由三种类型的文件组成:数据库文件、日志文件和控制文件。
2 系统分析2.1 工作流程学生可以根据自己的学号查询自己的各科成绩,系统管理员可以增加学生信息和学生成绩的录入、老师信息的录入和修改。
2.2 业务需求(1)学生可以查询自己的信息;(2)老师可以查询自己的信息;(3)系统管理员可以增加/删除/修改学生/老师/系部/学生成绩/老师的信息;3 系统设计3.1 系统功能结构图本系统编写的目的,是实现一个教务管理系统,提高工作效率和方便学生老师查询自己的信息、系统管理员修改和录入信息。
由于程序的功能是和数据库相关的数据查询和数据操作,所以程序至少具有以下功能:1.对数据表的基本操作,如插入、修改、删除。
2.根据条件进行查询。
鉴于以上的功能,本系统的系统结构图如下:图3.1 系统结构图教务管理管理等级管理学生管理教师管理成绩管理系部管理课程管理员查询等级修改等级查询学生删除学生修改学生添加学生查询教师删除教师修改教师添加教师查询成绩删除成绩修改成绩添加成绩增加系部删除系部修改课程添加课程删除课程更新课程添加管理员删除管理员图2.2 后台功能结构3.2 模块功能设计系统功能设计是使整个系统能基本实现学生成绩等级的查询,学生管理,教师管理,成绩管理等管理功能,能够进行有效率的管理。
学生管理:学生信息的增加、修改、删除教师管理:教师信息的增加、修改、删除成绩管理:学生成绩的修改、删除4 系统数据库设计4.1 数据表E-R图图4.1 学生表E-R模型图图4.2 系部表E-R模型图图4.3教师表E-R模型图图4.4 课程表E-R模型图图4.5 学生成绩表E-R模型图图4.6 成绩登记表E-R模型图4.2 数据表的设计根据该系统的特点,本次设计采用Oracle数据库,数据库名称为JWGLXT,根据该系统的分析,包含以下几个表:4.3 数据库表的创建,向表中插入数据学生表create table students(student_id number(5) constraint student_pk primary key,monitor_id number(5),name varchar2(10) NOT NULL,sex varchar2(6) constraint sex_chk check(sex IN('男','女')), dob DATE,specialty varchar2(10));系部表create table departments(department_id number(3) constraint department_pk primary key, department_name varchar2(8) NOT NULL,address varchar2(40));教师表create table teachers(teacher_id number(5) constraint teacher_pk primary key,name varchar2(8) NOT NULL,title varchar2(8),hire_date DATE default sysdate,bonus number(7,2),//奖金wage number(7,2),department_id number(3) constraint teachers_fk_departments references departments(department_id));课程表create table courses(course_id number(5) constraint course_pk primary key,course_name varchar2(30) not null,credit_hour number(2));学生成绩表create table students_grade(student_id number(5) constraint students_grade_fk_students references students(student_id),course_id number(5) constraint students_grade_fk_courses references courses(course_id),score number(4,1));成绩等级表create table grades(grade_id number(1) constraint grade_pk primary key,low_score number(4,1),hight_grade number(4,1),grade varchar2(6));向学生表中插入数据:insert into students values(10205,NULL,'李秋风','男','25-11月-1990','自动化');insert into students values(10102,10101,'刘春平','女','12-8月-1991','计算机');insert into students values(10301,NULL,'高山','男','08-10月-1990','机电工程');insert into students values(10207,10205,'王刚','男','03-4月-1987','自动化');insert into students values(10112,10101,'张三','男','21-7月-1989','计算机');insert into students values(10318,10301,'张东宇','男','26-12月-1990','自动化');insert into students values(10103,10101,'王天仪','男','25-11月-1989','机电工程');insert into students values(10201,10205,'找风雨','男','25-10月-1990','自动化');insert into students values(10105,10101,'刘涵','女','03-8月-1991','软件');insert into students values(10311,10301,'张扬','男','08-5月-1990','计算机');insert into students values(10212,10205,'高淼','男','11-6月-1990','软件');insert into students values(10312,10301,'白菲菲','女','25-9月-1988','软件');insert into students values(10128,10301,'林志涵','女',NULL,'机电工程');insert into students values(10328,10101,'白皙','男',NULL,'软件'); 结果如下图所示:向系部表中插入数据:insert into departments values(101,'信息工程','1号公共楼'); insert into departments values(102,'电气工程','2号公共楼'); insert into departments values(103,'机电工程','电气楼'); insert into departments values(104,'软件工程','机电楼'); insert into departments values(105,'网络工程','3号公共楼');结果如下图所示:向教师表中插入数据:insert into teachers values(10101,'王丹','教授','01-9月-1970',1000,3000,101); insert into teachers values(10102,'孔世杰','讲师','01-9月-1971',800,2800,101); insert into teachers values(10103,'孙斌','高工','01-10月-1969',900,3000,102); insert into teachers values(10104,'赵坤','副教授','23-6月-1968',600,2400,102); insert into teachers values(10105,'杨文华','讲师','28-11月-1972',600,2800,103);insert into teachers values(10106,'韩冬梅','教授','08-6月-1970',800,2900,103); insert into teachers values(10107,'崔天','高工','24-9月-1973',700,2600,104); insert into teachers values(10108,'张科','副教授','11-12月-1969',1000,3100,104);insert into teachers values(10109,'王笑','工程师','01-10月-1968',1000,3200,105);insert into teachers values(10110,'张晓','教授','29-8月-1966',700,3000,105); insert into teachers values(10111,'赵天宇','副教授','06-7月-1971',800,2900,105);结果如下图所示:向课程表中插入数据:insert into courses values(10101,'计算机组成原理',4); insert into courses values(10201,'自动控制原理',4); insert into courses values(10202,'工程制图',3);insert into courses values(10301,'C++语言程序设计',3); insert into courses values(10401,'模拟电子技术',4); insert into courses values(10402,'数字电子技术',3); insert into courses values(10302,'理论力学',3);insert into courses values(10303,'离散数学',4);结果如下图所示:向成绩表中插入数据:insert into students_grade values(10102,10101,88); insert into students_grade values(10311,10201,90); insert into students_grade values(10112,10301,99); insert into students_grade values(10201,10101,100); insert into students_grade values(10318,10201,97); insert into students_grade values(10201,10201,89); insert into students_grade values(10128,10301,99); insert into students_grade values(10128,10303,99); insert into students_grade values(10103,10303,96); insert into students_grade values(10312,10301,99); insert into students_grade values(10212,10402,88); insert into students_grade values(10212,10401,100);insert into students_grade values(10318,10301,79); insert into students_grade values(10112,10202,89); 结果如下图所示:向成绩等级表中插入数据:insert into grades values(1,0,59,'不及格');insert into grades values(2,60,69,'及格');insert into grades values(3,70,79,'中等');insert into grades values(4,80,89,'良好');insert into grades values(5,90,100,'优秀');结果如下图所示:4.4存储过程,触发器的设计为了提高该系统的运行环境,后台有关数据的操作使用了存储过程和触发器。