数据库专业课程设计方案报告教学标准管理系统java实现_第1页
数据库专业课程设计方案报告教学标准管理系统java实现_第2页
数据库专业课程设计方案报告教学标准管理系统java实现_第3页
数据库专业课程设计方案报告教学标准管理系统java实现_第4页
数据库专业课程设计方案报告教学标准管理系统java实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

相关技术介绍RDBMS介绍SQLServer是一个关系数据库管理系统它最初是由MicrosoftSybase和Ashton-Tate三家企业共同开发于1988年推出了第一个OS/2版本在WindowsNT推出后Microsoft和Sybase在SQLServer开发上就分道扬镳了Microsoft将SQLServer移植到WindowsNT系统上专注于开发推广SQLServerWindowsNT版本Sybase则较专注于SQLServer在UNIX操作系统上应用在本书中介绍是MicrosoftSQLServer以后简称为SQLServer或MSSQLServer。SQLServer是Microsoft企业推出SQLServer数据库管理系统最新版本该版本继承了SQLServer7.0版本优点同时又比它增加了很多更优异功效含有使用方便可伸缩性好和相关软件集成程度高等优点可跨越从运行MicrosoftWindows98膝上型电脑到运行MicrosoftWindows大型多处理器服务器等多个平台使用。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开发者自己编写开放源代码插件,这类似于微软企业VisualStudio和Sun微系统企业NetBeans平台。Eclipse为工具开发商提供了愈加好灵活性,使她们能愈加好地控制自己软件技术。Eclipse联盟已经宣告将在中期公布其3.0版软件。这是一款很受欢迎java开发工具,这中国用户越来越多,实际上实用它java开发人员是最多。缺点就是较复杂,对初学者来说,了解起来比较困难。需求分析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表两个键若全部级联操作会组成环,所以级联不成功。所以在这里建立两个触发器替换级联操作,从而实现数据库完整性。概念结构设计E-R图系系系号系名称系介绍属于1m教师职员号姓名性别生日系号职称方向拥有1学生m学号姓名性别出生年月入学成绩系号讲授mn课程课程号课程名职员号课时学分上课时间上课地点考试时间选修mn成绩p学号课程号成绩ER图逻辑结构设计关系模型关系模型设计学生(学号、姓名、性别、出生日期、入学成绩、所在系号、密码)老师(职员号、姓名、性别、出生年月、所在系号、职称、专业及教学方向)系(系号、系名称、系介绍)课程(课程号、课程名称、任课老师号、课时、学分、上课时间、上课地点、考试时间)成绩(学号、课程号、平时成绩、考试成绩、总评成绩)拥有(学号、系号)属于(职员号、系号)讲授(职员号、课程号、上课时间)选修(学号、课程号、上课时间)用户子模式成绩视图(学号、学生姓名、老师号、老师姓名、课程号、上课时间、课程名、平时成绩、考试成绩、总评成绩、)选课视图(学号、课程号、上课时间、平时成绩、考试成绩、总评成绩、课程名、课时、学分)统计视图(课程号、上课时间、课程名称、任课老师号、课时、学分、上课地点、考试时间、学号、学生姓名、学生性别、平时成绩、考试成绩、总评成绩)历史表历史表学生表系表课程表老师表成绩表学生号学生号老师号系号课程号学生号上课时间课程号上课时间选课视图成绩视图统计视图安全性安全性实现关键是经过应用程序来实现,在程序中设定一个检验用户名和密码机构,用户要进入系统就先要输入授权了用户名和密码方能进入。数据库物理设计建立索引为各个表主码建立索引。学生(学号)老师(职员号)系(系号)课程(课程号、上课时间)成绩(学号、课程号)数据库存放位置数据存放和数据处理在综合考虑存取时间,存放空间利用率,维护代价3个方面原因,进行权衡,选择折中方案。将易变部分和稳定部分、常常存取部分和存取频率较低部分分开存放。系统配置WindowsXPMicorSoftSQLServer(必需升级到SP3)Eclipse开发环境数据库实施创建数据库及数据对象(括号中为对应SQL脚本文件)创建数据库对象:createdatabaseteach;创建表过程以下: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));数据备份和恢复方案事务故障恢复是由系统自动完成,对用户透明。系统故障恢复由系统重新开启时自动完成,不需要用户干预。介质故障恢复则由人干预完成,方法为重装数据库,然后重做已完成事务。1、数据库备份方案:<1>每个月进行一次数据库完整备份,包含全部数据及数据库对象。速度较慢,占用大量磁盘空间。应该在整个数据库不进行其它事务操作时候备份能够提升数据备份速度。<2>天天进行事务日志备份,事务日志备份是指对数据库发生事务进行备份,包含上次进行事务日志备份,差异备份和数据库完全备份以后全部已经完成事务。所需时间和磁盘空间要求较少<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<rsmd.getColumnCount();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()+",'"+dat

温馨提示

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

评论

0/150

提交评论