数据库专业课程设计方案报告教学标准管理系统java实现.doc
《数据库专业课程设计方案报告教学标准管理系统java实现.doc》由会员分享,可在线阅读,更多相关《数据库专业课程设计方案报告教学标准管理系统java实现.doc(20页珍藏版)》请在咨信网上搜索。
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 是Microsoft 企业推出SQL Server 数据库管理系统最新版本该版本继承了SQL Server 7.0 版本优点同时又比它增加了很多更优异功效含有使用方便可伸缩性好和相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 膝上型电脑到运行Microsoft Windows 大型多处理器服务器等多个平台使用。 1.2 Eclipse介绍 Eclipse是一个可扩展开放源代码IDE。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 联盟已经宣告将在中期公布其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 E-R图 系 系号 系名称 系介绍 属于 1 m 教 师 职员号 姓名 性别 生日 系号 职称 方向 拥 有 1 学 生 m 学号 姓名 性别 出生年月 入学成绩 系号 讲 授 m n 课程 课程号 课程名 职员号 课时 学分 上课时间 上课地点 考试时间 选修 m n 成绩 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 (必需升级到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、数据库备份方案: <1>每个月进行一次数据库完整备份,包含全部数据及数据库对象。速度较慢,占用大量磁盘空间。应该在整个数据库不进行其它事务操作时候备份能够提升数据备份速度。 <2>天天进行事务日志备份,事务日志备份是指对数据库发生事务进行备份,包含上次进行事务日志备份,差异备份和数据库完全备份以后全部已经完成事务。所需时间和磁盘空间要求较少 <3>每小时进行差异备份,是备份一次数据备份以来数据改变。 a) 恢复处理方案: 先恢复最近一次数据库备份,接着进行差异备份恢复,最终进行事务日志血仇恢复。 6.3 用户界面设计和实现及相关应用程序编码 本系统程序代码结构以下图所表示:关键是四个包: 1〉其中中frame包中包含一个layout包。frame包关键是视图层代码,主界面,登录界面,多种操作界面全部在其中。另外包含一个包layout,在其中有一个类,用于网格组布局封装了网格组布局部分代码。在MyAction中封装是主窗口里面全部菜单事件。 2〉在model包中关键处理是模型层,对数据操作封装其中。 3〉query一个类包含了对学生信息查询。 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; i<rsmd.getColumnCount(); i++) { addColumn(name[i]); } while(rs.next()){ Vector vdata = new Vector(); for ( int i = 1 ; i <= rsmd.getColumnCount() ; i ++){ vdata.addElement(rs.getObject(i)); } addRow(vdata); } }catch(java.sql.SQLException sql){ sql.printStackTrace(); }finally { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } 3)Updatabase一部分代码: public class UpdateDatebase extends ConneJdbc { private Statement stmt = null; private PreparedStatement pstmt = null; private String infoStr = null; private String sql; public UpdateDatebase() { } public boolean insert(DepData data) throws SQLException { String sql = "insert into department (depth_name,discription) values ('" + data.getDepth_name() + "','" + data.getDiscription() + "')"; pstmt = connection.prepareStatement(sql); pstmt.execute(); return true; } public boolean insert(StuData data) throws SQLException { sql = "insert into student values ('" + data.getStu_id() + "','" + data.getS_name() + "','" + data.getSex() + "','" + data.getBirthday() + "'," + data.getScore() +"," + data.getDepth_id() + ")"; pstmt = connection.prepareStatement(sql); pstmt.execute(); return true; } public boolean insert(Teadata data) throws SQLException { sql = "insert into teach_job values (" + 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(); return true; } public boolean insert(CourseData data) throws SQLException { sql = "insert into course (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(); return true; } 7、 系统测试方案和测试汇报 系统测试:因为测试数据众多,窗口众多,就不一一截图,以下是部分测试截图: 1)学生管理测试窗口以下: 2)院系管理测试: 3)教工管理测试: 4)成绩管理: 8、 安装和使用说明 8.1 JDK安装 先双击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.2 Eclipse安装 把压缩包解压到任意目录下即可。 8.3 数据库升级和数据导入 SQL Sever 安装完成后,请升级到SP3,双击chs_sql2ksp3.exe,解压到任一文件夹,再双击setup.bat,即可。数据导入请选择SQL Sever “附加数据库”功效,在企业管理器中,选中“数据库”,右键,选中“附加数据库”再按提醒选出要附加数据库即可。 8.4 程序运行 本系统使用简单,依据可视化界面直接操作。系统主函数放在类:EnterFrame中,经过登录界面登录进入MainFrame这个主界面程序。运行EnterFrame,则出来登录界面以下: 本系统管理员用户是root,密码也是root。 在程序运行前,先要导入数据库JDBC驱动程序包,在工程文件夹lib文件夹中有三个包,msbase, mssqlserver, msutil。这么就能够运行程序了。 9、 参考文件 参考资料: 《Java 关键技术》-第7版 《数据库系统概论》-王珊编第四版 《SQL Server 数据库应用技术》张水平编 《软件工程》-李代平编第二版 《Java API文档》电子版等- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 专业课程 设计方案 报告 教学 标准 管理 系统 java 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文