数据库课程设计报告-教学管理系统(+java实现).doc_第1页
数据库课程设计报告-教学管理系统(+java实现).doc_第2页
数据库课程设计报告-教学管理系统(+java实现).doc_第3页
数据库课程设计报告-教学管理系统(+java实现).doc_第4页
数据库课程设计报告-教学管理系统(+java实现).doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 相关技术简介1.1 RDBMS简介SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT 系统上专注于开发推广SQL Server 的Windows NT 版本Sybase 则较专注于SQL Server在UNIX 操作系统上的应用在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server 。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。1.2 Eclipse简介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开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和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.1 ER图系系号系名称系的简介属于1m教 师职工号姓名性别生日系号职称方向拥 有1学 生m学号姓名性别出生年月入学成绩系号讲 授mn课程课程号课程名职工号学时学分上课时间上课地点考试时间选修mn成绩p学号课程号成绩ER图4、 逻辑结构设计4.1 关系模型4.1.1 关系模型的设计学生(学号、姓名、性别、出生日期、入学成绩、所在系号、密码)教师(职工号、姓名、性别、出生年月、所在系号、职称、专业及教学方向)系(系号、系名称、系的简介)课程(课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间)成绩(学号、课程号、平时成绩、考试成绩、总评成绩)拥有(学号、系号)属于(职工号、系号)讲授(职工号、课程号、上课时间)选修(学号、课程号、上课时间)4.2 用户子模式成绩视图(学号、学生姓名、教师号、教师姓名、课程号、上课时间、课程名、 平时成绩、考试成绩、总评成绩、)选课视图(学号、课程号、上课时间、平时成绩、考试成绩、总评成绩、课程名、学时、学分)统计视图(课程号、上课时间、课程名称、任课教师号、学时、学分、上课地点、考试时间、学号、学生姓名、学生性别、平时成绩、考试成绩、总评成绩)历史表学生表系表课程表教师表成绩表学生号学生号教师号系 号课程号学生号上课时间课程号上课时间选课视图成绩视图统计视图4.3 安全性安全性的实现主要是通过应用程序来实现,在程序中设定一个检查用户名和密码的机构,用户要进入系统就先要输入授权了的用户名和密码方能进入。5、 数据库物理设计5.1 建立索引为各个表的主码建立索引。学生(学号)教师(职工号)系(系号)课程(课程号、上课时间)成绩(学号、课程号)5.2 数据库存放位置数据的存储和数据处理在综合考虑存取时间,存储空间的利用率,维护的代价3个方面的因素,进行权衡,选择折中的方案。将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。5.3 系统配置(1) Windows XP(2) MicorSoft SQL Server 2000 (必需升级到SP3)(3) Eclipse开发环境6、 数据库实施6.1 创建数据库及数据对象(括号中为对应的SQL脚本文件)1、 创建数据库的对象:create database teach;2、 创建表的过程如下:create table users(user_name varchar(15) not null,password varchar(15),popedom tinyint not null); create table department(depth_id smallint primary key,depth_name char(14),discription varchar(50);create table teach_job(t_id int primary key,t_name char(8),sex char(2),birthday smalldatetime,depth_id smallint foreign key references department(depth_id),job char(10),speciality char(16),direction char(16);create table course(c_id smallint primary key,c_name char(16) not null,t_id int foreign key references teach_job(t_id),credit smallint,period smallint,class_time smalldatetime,class_area char(10),exam_time smalldatetime);create table student(stu_id char(6) primary key,s_name char(8),birthday smalldatetime,score int,depth_id smallint foreign key references department(depth_id);create table score(stu_id char(6),c_id smallint,u_score int,exam_score int,total int,primary key(stu_id,c_id);6.2 数据备份和恢复方案事务故障的恢复是由系统自动完成的,对用户透明。系统故障的恢复由系统重新启动时自动完成,不需要用户干预。介质故障的恢复则由人干预完成,方法为重装数据库,然后重做已完成的事务。1、数据库备份方案:每月进行一次数据库的完整备份,包括所有的数据及数据库对象。速度较慢,占用大量磁盘空间。应该在整个数据库不进行其他事务操作的时候备份可以提高数据备份的速度。每天进行事务日志备份,事务日志备份是指对数据库发生的事务进行备份,包括上次进行事务日志备份,差异备份和数据库完全备份之后所有已经完成的事务。所需的时间和磁盘空间要求较少每小时进行差异备份,是备份一次数据备份以来的数据变化。a) 恢复解决方案:先恢复最近一次的数据库备份,接着进行差异备份的恢复,最后进行事务日志血仇的恢复。6.3 用户界面的设计和实现及相关应用程序编码本系统的程序代码结构如下图所示:主要是四个包:1其中中frame包中包含一个layout包。frame包主要是视图层的代码,主界面,登录界面,各种操作的界面都在其中。此外包含一个包layout,在其中有一个类,用于网格组布局的封装了网格组布局的一些代码。在MyAction中封装的是主窗口里面的所有菜单事件。2在model包中主要处理的是模型层,对数据的操作封装其中。3query一个类包含了对学生信息的查询。4此外在util中包含的是对数据库的所有操作。其中有对数据库的更改,把数据库的数据和表格模型相关联起来的等操作。主界面如下所示:5关键代码如下:由于代码太多,以下只写出很少的一部分代码1对数据库的操作:public class ConneJdbc protected static Connection connection = null;private Connection con = null; private ResultSet rs = null; private ResultSetMetaData rsmd = null;public ConneJdbc() 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.ClassNotFoundException classnotfound) classnotfound.printStackTrace(); catch (java.sql.SQLException sql) sql.printStackTrace();public Connection getCon() return connection;public Vector selectSql(String sql) Vector vdata = new Vector();try rs = connection.prepareStatement(sql).executeQuery();rsmd = rs.getMetaData();while (rs.next()vdata.addElement(rs.getObject(1); catch (SQLException e) e.printStackTrace();return vdata;public String selectOne(String sql) ResultSet rs = null; ResultSetMetaData rsmd = null;try rs = connection.prepareStatement(sql).executeQuery();rsmd = rs.getMetaData();if (rs.next()return (String)rs.getObject(1); catch (SQLException e) e.printStackTrace();return null;public boolean inTable(String user, String pa) throws SQLException Statement stmt = null;PreparedStatement pstmt = null;ResultSet rs = null;String sql = select password from users +where user_name= + user + and password=+ pa + ;rs = connection.prepareStatement(sql).executeQuery();if(rs.next()return true;else return false;2表格模型的处理:public class SqlTableModel extends DefaultTableModel private Connection con = null; private ResultSet rs = null; private ResultSetMetaData rsmd = null;public SqlTableModel(String sqlStr, String name) con = new ConneJdbc().getCon(); try rs = con.prepareStatement(sqlStr).executeQuery(); rsmd = rs.getMetaData(); for(int i=0; irsmd.getColumnCount(); i+) addColumn(namei); while(rs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论