1浙江科技学院课程设计课程名称数据库原理题目名称教学管理系统学生学院电子信息工程学院专业班级软件工程122学号1120290062学生姓名陆昌柱指导教师王老师2015年6月26日2目录1、需求分析……………………………………………………………………………………21.1数据流图…………………………………………………………………………………21.2数据字典…………………………………………………………………………………31.3安全性和完整性要求……………………………………………………………………42、概念结构设计………………………………………………………………………………42.1E-R图…………………………………………………………………………………43、逻辑结构设计………………………………………………………………………………53.1关系模型…………………………………………………………………………………53.2关系模型的设计…………………………………………………………………53.3用户子模式………………………………………………………………………………53.4系统结构图……………………………………………………………………………63.5安全性…………………………………………………………………………………64、数据库物理设计…………………………………………………………………………64.1建立索引………………………………………………………………………………64.2数据库存放位置………………………………………………………………………64.3系统配置………………………………………………………………………………74.4模块设计………………………………………………………………………………75、数据库实施………………………………………………………………………………75.1创建数据库及数据对象(括号中为对应的SQL脚本文件)……………………75.2数据备份和恢复方案………………………………………………………………75.3用户界面的设计和实现及相关应用程序编码………………………………………7教学管理系统1引言1.1编写目的随着知识经济,科技的不断发展以及科技在各领域的不断深入,越来越多的行业和领域步入信息的智能化阶段。信息自动化处理也是提高效益,规范管理,迅速客观审查的有效途径。管理系统在当今教育领域是一个不可缺少的工具软件。然而,一个好的高质量的软件少只有少,并为根本实现智能化,也不利于科学的管理和审查。因此,在本软件中心准备开发一个3功能完善的成绩管理系统。2定义1系统名称:教师查询管理系统2数据库管理软件:navicatforMySQL3数据库设计人员:陆昌柱。4数据库设计采用软件:MicrosoftOfficeVisio20031、需求分析2.1数据流图说明:1、用户请求包括:(1)学生基本信息管理新生信息录入。学生信息修改:按学号查询出某学生的信息并做信息修改。(2)系基本信息管理:系的基本信息输入、修改、删除(3)课程信息管理:课程信息的输入、修改、删除(4)教职工信息管理:教职工信息的输入、修改、删除(5)选课管理:每学期所选课程的学分不能超过15分。学生可以同时选修一门或多门课程。可以同时为多个学生选修某一门或某几门课程。删除和修改选课信息。(6)成绩管理按课程输入和修改成绩。按学生输入和修改成绩。(7)信息查询按学号、姓名、系号查询学生基本信息。学生或管理员等教学管理系统管理员增删改信息取得信息取得信息选课教师取得信息管理成绩4按职工号、姓名、系号查询教职工基本信息。按系号、系名称查询系的基本信息。按课程号、课程名称、上课教师姓名查询课程基本信息。按学号、学生姓名、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况。若查询涉及多门课程,则按课程分组。每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩)。(8)统计报表成绩登记表,内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)、选课学生名单(学号、姓名、性别),每个学生的平时成绩(空格)、考试成绩(空格)和总评成绩(空格),按学号排序:顺序输出所有课程的成绩登记表。按课程号、课程名称、教师姓名输出对应课程的成绩登记表。2、以上的用户请求经应用程序的转化,化为对数据库中的相应的表或视图的操作,数据库再把处理的结果(或都是错误信息)返回结应用程序。3、应用程序把结果返回给用户,该结果可能为一个对表操作的结果(如插入,删除等),也可能为一个查询的结果,甚至可能为一个错误的信息。2.2数据字典根据题目的需求,教学系统主要是对学生,教职工,学院,课程,成绩等的管理。由此分析得到如下数据结构:数据库的表结构的设计,数据项如下,表名分别为:users,score,department,student,teach_job,course:2.3安全性和完整性要求安全性和完整性要求:通过设置外键,建立它们之间的关系,并使它们级联更新相关的字段,级联删除相关的记录。对于构成了环的级联更新或删除,而不能建立级联更新或删除的,通过建立触发器,使得它们保持数据的完整性。通过不同权限的人登录而设置其对数据的增删改的权限增强数据的安全性。本系统的外键设置和级联操作有:外键:stuent表的depth_id。course表的t_id。score表的stu_id和c_id等。由于score表的两个键若都级联操作会构成环,所以级联不成功。所以在这里建立两个触发器取代级联操作,从而实现数据库的完整性。2、概念结构设计3.1E-R图5ER图3、逻辑结构设计4.1关系模型4.1.1关系模型的设计学生(学号、姓名、性别、出生日期、入学成绩、所在系号、密码)教师(职工号、姓名、性别、出生年月、所在系号、职称、专业及教学方向)系(系号、系名称、系的简介)课程(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)成绩(学号、课程号、平时成绩、考试成绩、总评成绩)拥有(学号、系号)属于(职工号、系号)讲授(职工号、课程号、上课时间)选修(学号、课程号、上课时间)4.2用户子模式系系号系名称系的简介属于1m教师职工号姓名性别生日系号职称方向拥有1学生m学号姓名性别出生年月入学成绩系号讲授mn课程课程号课程名职工号学时学分上课时间上课地点考试时间选修mn成绩p学号课程号成绩6成绩视图(学号、学生姓名、教师号、教师姓名、课程号、上课时间、课程名、平时成绩、考试成绩、总评成绩、)选课视图(学号、课程号、上课时间、平时成绩、考试成绩、总评成绩、课程名、学时、学分)统计视图(课程号、上课时间、课程名称、任课教师号、学时、学分、上课地点、考试时间、学号、学生姓名、学生性别、平时成绩、考试成绩、总评成绩)4.3安全性安全性的实现主要是通过应用程序来实现,在程序中设定一个检查用户名和密码的机构,用户要进入系统就先要输入授权了的用户名和密码方能进入。4、数据库物理设计5.1建立索引为各个表的主码建立索引。学生(学号)教师(职工号)系(系号)课程(课程号、上课时间)成绩(学号、课程号)5.2数据库存放位置数据的存储和数据处理在综合考虑存取时间,存储空间的利用率,维护的代价3个方面的因素,进行权衡,选择折中的方案。将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。历史表学生表系表课程表教师表成绩表学生号学生号教师号系号课程号学生号上课时间课程号上课时间选课视图成绩视图统计视图75.3系统配置(1)WindowsXP(2)MicorSoftSQLServer2000(必需升级到SP3)(3)Eclipse开发环境5、数据库实施6.1创建数据库及数据对象(括号中为对应的SQL脚本文件)1、创建数据库的对象:createdatabaseteach;2、创建表的过程如下:createtableusers(user_namevarchar(15)notnull,passwordvarchar(15),popedomtinyintnotnull);createtabledepartment(depth_idsmallintprimarykey,depth_namechar(14),discriptionvarchar(50));createtableteach_job(t_idintprimarykey,t_namechar(8),sexchar(2),birthdaysmalldatetime,depth_idsmallintforeignkeyreferencesdepartment(depth_id),jobchar(10),specialitychar(16),directionchar(16));createtablecourse(c_idsmallintprimarykey,c_namechar(16)notnull,t_idintforeignkeyreferencesteach_job(t_id),creditsmallint,periodsmallint,class_timesmalldatetime,class_areachar(10),exam_timesmalldatetime);createtablestudent(stu_idchar(6)primarykey,s_namechar(8),birthdaysmalldatetime,scoreint,depth_idsmallintforeignkeyreferencesdepartment(depth_id));createtablescore(stu_idchar(6),c_idsmallint,u_scoreint,exam_scoreint,totalint,primarykey(stu_id,c_id));6.2数据备份和恢复方案事务故障的恢复是由系统自动完成的,对用户透明。系统故障的恢复由系统重新启动时自动完成,不需要用户干预。介质故障的恢复则由人干预完成,方法为重装数据库,然后重做已完成的事务。1、数据库备份方案:1每月进行一次数据库的完整备份,包括所有的数据及数据库对象。速度较慢,占用大量磁盘空间。应该在整个数据库不进行其他事务操作的时候备份可以提高数据备份的速度。82每天进行事务日志备份,事务日志备份是指对数据库发生的事务进行备份,包括上次进行事务日志备份,差异备份和数据库完全备份之后所有已经完成的事务。所需的时间和磁盘空间要求较少3每小时进行差异备份,是备份一次数据备份以来的数据变化。a)恢复解决方案:先恢复最近一次的数据库备份,接着进行差异备份的恢复,最后进行事务日志血仇的恢复。6.3用户界面的设计和实现及相关应用程序编码本系统的程序代码结构如下图所示:主要是四个包:1〉其中中frame包中包含一个layout包。frame包主要是视图层的代码,主界面,登录界面,各种操作的界面都在其中。此外包含一个包layout,在其中有一个类,用于网格组布局的封装了网格组布局的一些代码。在MyAction中封装的是主窗口里面的所有菜单事件。2〉在model包中主要处理的是模型层,对数据的操作封装其中。3〉query一个类包含了对学生信息的查询。4〉此外在util中包含的是对数据库的所有操作。其中有对数据库的更改,把数据库的数据和表格模型相关联起来的等操作。主界面如下所示:9〈5〉关键代码如下:由于代码太多,以下只写出很少的一部分代码1》对数据库的操作:publicclassConneJdbc{protectedstaticConnectionconnection=null;privateConnectioncon=null;privateResultSetrs=null;privateResultSetMetaDatarsmd=null;publicConneJdbc(){try{Class.forName(com.micro