数据库课程设计报告教学管理系统java实现.docx

上传人:b****2 文档编号:17596558 上传时间:2023-07-26 格式:DOCX 页数:22 大小:724.26KB
下载 相关 举报
数据库课程设计报告教学管理系统java实现.docx_第1页
第1页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第2页
第2页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第3页
第3页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第4页
第4页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第5页
第5页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第6页
第6页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第7页
第7页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第8页
第8页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第9页
第9页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第10页
第10页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第11页
第11页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第12页
第12页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第13页
第13页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第14页
第14页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第15页
第15页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第16页
第16页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第17页
第17页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第18页
第18页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第19页
第19页 / 共22页
数据库课程设计报告教学管理系统java实现.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计报告教学管理系统java实现.docx

《数据库课程设计报告教学管理系统java实现.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告教学管理系统java实现.docx(22页珍藏版)》请在冰点文库上搜索。

数据库课程设计报告教学管理系统java实现.docx

数据库课程设计报告教学管理系统java实现

1、相关技术简介

1.1RDBMS简介

SQLServer是一个关系数据库管理系统它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的于1988年推出了第一个OS/2版本在WindowsNT推出后Microsoft与Sybase在SQLServer的开发上就分道扬镳了Microsoft将SQLServer移植到WindowsNT系统上专注于开发推广SQLServer的WindowsNT版本Sybase则较专注于SQLServer在UNIX操作系统上的应用在本书中介绍的是MicrosoftSQLServer以后简称为SQLServer或MSSQLServer。

SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。

1.2Eclipse简介

Eclipse是一种可扩展的开放源代码IDE。

2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。

集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。

为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。

Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。

Eclipse框架的这种灵活性来源于其扩展点。

它们是在XML中定义的已知接口,并充当插件的耦合点。

扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。

任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。

除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。

利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。

如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。

事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。

Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。

Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。

Eclipse联盟已经宣布将在2004年中期发布其3.0版软件。

这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。

缺点就是较复杂,对初学者来说,理解起来比较困难。

2、需求分析

2.1数据流图

说明:

1、用户请求包括:

(1)学生基本信息管理

新生信息录入。

学生信息修改:

按学号查询出某学生的信息并做信息修改。

(2)系基本信息管理:

系的基本信息输入、修改、删除

(3)课程信息管理:

课程信息的输入、修改、删除

(4)教职工信息管理:

教职工信息的输入、修改、删除

(5)选课管理:

每学期所选课程的学分不能超过15分。

学生可以同时选修一门或多门课程。

可以同时为多个学生选修某一门或某几门课程。

删除和修改选课信息。

(6)成绩管理

按课程输入和修改成绩。

按学生输入和修改成绩。

(7)信息查询

按学号、姓名、系号查询学生基本信息。

按职工号、姓名、系号查询教职工基本信息。

按系号、系名称查询系的基本信息。

按课程号、课程名称、上课教师姓名查询课程基本信息。

按学号、学生姓名、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况。

若查询涉及多门课程,则按课程分组。

每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩)。

(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表的两个键若都级联操作会构成环,所以级联不成功。

所以在这里建立两个触发器取代级联操作,从而实现数据库的完整性。

3、概念结构设计

3.1E-R图

ER图

4、逻辑结构设计

4.1关系模型

4.1.1关系模型的设计

学生(学号、姓名、性别、出生日期、入学成绩、所在系号、密码)

教师(职工号、姓名、性别、出生年月、所在系号、职称、专业及教学方向)

系(系号、系名称、系的简介)

课程(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)

成绩(学号、课程号、平时成绩、考试成绩、总评成绩)

拥有(学号、系号)

属于(职工号、系号)

讲授(职工号、课程号、上课时间)

选修(学号、课程号、上课时间)

4.2用户子模式

成绩视图(学号、学生姓名、教师号、教师姓名、课程号、上课时间、课程名、

平时成绩、考试成绩、总评成绩、)

选课视图(学号、课程号、上课时间、平时成绩、考试成绩、总评成绩、课程名、学时、学分)

统计视图(课程号、上课时间、课程名称、任课教师号、学时、学分、上课地点、考试时间、学号、学生姓名、学生性别、平时成绩、考试成绩、总评成绩)

4.3安全性

安全性的实现主要是通过应用程序来实现,在程序中设定一个检查用户名和密码的机构,用户要进入系统就先要输入授权了的用户名和密码方能进入。

5、数据库物理设计

5.1建立索引

为各个表的主码建立索引。

学生(学号)

教师(职工号)

系(系号)

课程(课程号、上课时间)

成绩(学号、课程号)

5.2数据库存放位置

数据的存储和数据处理

在综合考虑存取时间,存储空间的利用率,维护的代价3个方面的因素,进行权衡,选择折中的方案。

将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。

5.3系统配置

(1)WindowsXP

(2)MicorSoftSQLServer2000(必需升级到SP3)

(3)Eclipse开发环境

6、数据库实施

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>每月进行一次数据库的完整备份,包括所有的数据及数据库对象。

速度较慢,占用大量磁盘空间。

应该在整个数据库不进行其他事务操作的时候备份可以提高数据备份的速度。

<2>每天进行事务日志备份,事务日志备份是指对数据库发生的事务进行备份,包括上次进行事务日志备份,差异备份和数据库完全备份之后所有已经完成的事务。

所需的时间和磁盘空间要求较少

<3>每小时进行差异备份,是备份一次数据备份以来的数据变化。

a)恢复解决方案:

先恢复最近一次的数据库备份,接着进行差异备份的恢复,最后进行事务日志血仇的恢复。

6.3用户界面的设计和实现及相关应用程序编码

本系统的程序代码结构如下图所示:

主要是四个包:

1〉其中中frame包中包含一个layout包。

frame包主要是视图层的代码,主界面,登录界面,各种操作的界面都在其中。

此外包含一个包layout,在其中有一个类,用于网格组布局的封装了网格组布局的一些代码。

在MyAction中封装的是主窗口里面的所有菜单事件。

2〉在model包中主要处理的是模型层,对数据的操作封装其中。

3〉query一个类包含了对学生信息的查询。

4〉此外在util中包含的是对数据库的所有操作。

其中有对数据库的更改,把数据库的数据和表格模型相关联起来的等操作。

主界面如下所示:

〈5〉关键代码如下:

由于代码太多,以下只写出很少的一部分代码

1》对数据库的操作:

publicclassConneJdbc{

protectedstaticConnectionconnection=null;

privateConnectioncon=null;

privateResultSetrs=null;

privateResultSetMetaDatarsmd=null;

publicConneJdbc(){

try{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

connection=DriverManager.getConnection(

"jdbc:

microsoft:

sqlserver:

//127.0.0.1:

1433;DatabaseName=teaching",

"sa","");

}catch(java.lang.ClassNotFoundExceptionclassnotfound){

classnotfound.printStackTrace();

}catch(java.sql.SQLExceptionsql){

sql.printStackTrace();

}

}

publicConnectiongetCon(){

returnconnection;

}

publicVectorselectSql(Stringsql){

Vectorvdata=newVector();

try{

rs=connection.prepareStatement(sql).executeQuery();

rsmd=rs.getMetaData();

while(rs.next())

vdata.addElement(rs.getObject

(1));

}catch(SQLExceptione){

e.printStackTrace();

}

returnvdata;

}

publicStringselectOne(Stringsql){

ResultSetrs=null;

ResultSetMetaDatarsmd=null;

try{

rs=connection.prepareStatement(sql).executeQuery();

rsmd=rs.getMetaData();

if(rs.next())

return(String)rs.getObject

(1);

}catch(SQLExceptione){

e.printStackTrace();

}

returnnull;

}

publicbooleaninTable(Stringuser,Stringpa)throwsSQLException{

Statementstmt=null;

PreparedStatementpstmt=null;

ResultSetrs=null;

Stringsql="selectpasswordfromusers"+

"whereuser_name='"+user+"'andpassword='"

+pa+"'";

rs=connection.prepareStatement(sql).executeQuery();

if(rs.next())returntrue;

elsereturnfalse;

}

}

2》表格模型的处理:

publicclassSqlTableModelextendsDefaultTableModel{

privateConnectioncon=null;

privateResultSetrs=null;

privateResultSetMetaDatarsmd=null;

publicSqlTableModel(StringsqlStr,String[]name){

con=newConneJdbc().getCon();

try{

rs=con.prepareStatement(sqlStr).executeQuery();

rsmd=rs.getMetaData();

for(inti=0;i

addColumn(name[i]);

}

while(rs.next()){

Vectorvdata=newVector();

for(inti=1;i<=rsmd.getColumnCount();i++){

vdata.addElement(rs.getObject(i));

}

addRow(vdata);

}

}catch(java.sql.SQLExceptionsql){

sql.printStackTrace();

}finally{

try{

con.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

}

3)Updatabase的一部分代码:

publicclassUpdateDatebaseextendsConneJdbc{

privateStatementstmt=null;

privatePreparedStatementpstmt=null;

privateStringinfoStr=null;

privateStringsql;

publicUpdateDatebase(){

}

publicbooleaninsert(DepDatadata)throwsSQLException{

Stringsql="insertintodepartment(depth_name,discription)values('"

+data.getDepth_name()+"','"+data.getDiscription()+"')";

pstmt=connection.prepareStatement(sql);

pstmt.execute();

returntrue;

}

publicbooleaninsert(StuDatadata)throwsSQLException{

sql="insertintostudentvalues('"

+data.getStu_id()+"','"+data.getS_name()+"','"

+data.getSex()+"','"+data.getBirthday()+"',"

+data.getScore()+","+data.getDepth_id()+")";

pstmt=connection.prepareStatement(sql);

pstmt.execute();

returntrue;

}

publicbooleaninsert(Teadatadata)throwsSQLException{

sql="insertintoteach_jobvalues("

+data.getT_id()+",'"+data.getT_name()+"','"

+data.getSex()+"','"+data.getBirthday()+"',"

+data.getDepth_id()+",'"+data.getJob()+"','"

+data.getSpeciality()+"','"+data.getDirection()+"')";

pstmt=connection.prepareStatement(sql);

pstmt.execute();

returntrue;

}

publicbooleaninsert(CourseDatadata)throwsSQLException{

sql="insertintocourse(c_name,t_id,credit,period,class_time,"+

"class_area,exam_time)values("

+"'"+data.getC_name()+"',"

+data.getT_id()+","+data.getCredit()+","

+data.getPeriod()+",'"+data.getClass_time()+"','"

+data.getClass_area()+"','"+data.getExam_time()+"')";

pstmt=connection.prepareStatement(sql);

pstmt.execute();

returntrue;

}

7、系统测试方案和测试报告

系统的测试:

由于测试的数据众多,窗口众多,就不一一截图,以下是部分的测试截图:

1)学生管理测试窗口如下:

2)院系管理测试:

3)教工管理测试:

4)成绩管理:

8、安装和使用说明

8.1JDK的安装

先双击JDK的安装可执行文件,按提示把JDK安装到指定的目录下,然后在“控制面板”->“系统”->“高级”->“环境变量”中新建或修改如下几个环境变量:

(注意,安装的JDK的位置不同,设置也不同,只要设为相应的目录下的相应文件即可)

●用户变量中,path变量需要新增值“C:

\j2sdk1.6.0\bin;.”

●系统变量中,CLASSPATH变量需要新增值“C:

\j2sdk1.6.0\lib\tools.jar;C:

\j2sdk1.6.0\lib\dt.jar”

●系统变量中,HOME_PATH变量需要设置值“C:

\j2sdk1.6.0”.

8.2Eclipse的安装

把压缩包解压到任意的目录下即可。

8.3数据库的升级与数据的导入

SQLSever2000安装完成后,请升级到SP3,双击chs_sql2ksp3.exe,解压到任一文件夹,再双击

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2