数据库课程设计报告完整版样本.docx
- 文档编号:5927434
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:16
- 大小:1.17MB
数据库课程设计报告完整版样本.docx
《数据库课程设计报告完整版样本.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告完整版样本.docx(16页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告完整版样本
浙江科技学院
课程设计
课程名称 数据库原理
题目名称 教学管理系统
学生学院 电子信息工程学院
专业班级软件工程122
学号
学生姓名 陆昌柱
指引教师 王教师
6月26日
1、需求分析……………………………………………………………………………………2
1.1数据流图…………………………………………………………………………………2
1.2数据字典…………………………………………………………………………………3
1.3安全性和完整性规定……………………………………………………………………4
2、概念构造设计………………………………………………………………………………4
2.1E-R图…………………………………………………………………………………4
3、逻辑构造设计………………………………………………………………………………5
3.1关系模型…………………………………………………………………………………5
3.2关系模型设计…………………………………………………………………5
3.3顾客子模式………………………………………………………………………………5
3.4系统构造图……………………………………………………………………………6
3.5安全性…………………………………………………………………………………6
4、数据库物理设计…………………………………………………………………………6
4.1建立索引………………………………………………………………………………6
4.2数据库存储位置………………………………………………………………………6
4.3系统配备………………………………………………………………………………7
4.4模块设计………………………………………………………………………………7
5、数据库实行………………………………………………………………………………7
5.1创立数据库及数据对象(括号中为相应SQL脚本文献)……………………7
5.2数据备份和恢复方案………………………………………………………………7
5.3顾客界面设计和实现及有关应用程序编码………………………………………7
教学管理系统
1引言
1.1编写目
随着知识经济,科技不断发展以及科技在各领域不断进一步,越来越多行业和领域步入信息智能化阶段。
信息自动化解决也是提高效益,规范管理,迅速客观审查有效途径。
管理系统在当今教诲领域是一种不可缺少工具软件。
然而,一种好高质量软件少只有少,并为主线实现智能化,也不利于科学管理和审查。
因而,在本软件中心准备开发一种功能完善成绩管理系统。
2定义
1系统名称:
教师查询管理系统
2数据库管理软件:
navicatforMySQL
3数据库设计人员:
陆昌柱。
4数据库设计采用软件:
MicrosoftOfficeVisio
1、需求分析
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表两个键若都级联操作会构成环,因此级联不成功。
因此在这里建立两个触发器取代级联操作,从而实现数据库完整性。
2、概念构造设计
3.1E-R图
ER图
3、逻辑构造设计
4.1关系模型
4.1.1关系模型设计
学生(学号、姓名、性别、出生日期、入学成绩、所在系号、密码)
教师(职工号、姓名、性别、出生年月、所在系号、职称、专业及教学方向)
系(系号、系名称、系简介)
课程(课程号、课程名称、任课教师号、学时、学分、上学时间、上课地点、考试时间)
成绩(学号、课程号、平时成绩、考试成绩、总评成绩)
拥有(学号、系号)
属于(职工号、系号)
讲授(职工号、课程号、上学时间)
选修(学号、课程号、上学时间)
4.2顾客子模式
成绩视图(学号、学生姓名、教师号、教师姓名、课程号、上学时间、课程名、
平时成绩、考试成绩、总评成绩、)
选课视图(学号、课程号、上学时间、平时成绩、考试成绩、总评成绩、课程名、学时、学分)
记录视图(课程号、上学时间、课程名称、任课教师号、学时、学分、上课地点、考试时间、学号、学生姓名、学生性别、平时成绩、考试成绩、总评成绩)
4.3安全性
安全性实现重要是通过应用程序来实现,在程序中设定一种检查顾客名和密码机构,顾客要进入系统就先要输入授权了顾客名和密码方能进入。
4、数据库物理设计
5.1建立索引
为各个表主码建立索引。
学生(学号)
教师(职工号)
系(系号)
课程(课程号、上学时间)
成绩(学号、课程号)
5.2数据库存储位置
数据存储和数据解决
在综合考虑存取时间,存储空间运用率,维护代价3个方面因素,进行权衡,选取折中方案。
将易变某些与稳定某些、经常存取某些和存取频率较低某些分开存储。
5.3系统配备
(1)WindowsXP
(2)MicorSoftSQLServer(必须升级到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>每月进行一次数据库完整备份,涉及所有数据及数据库对象。
速度较慢,占用大量磁盘空间。
应当在整个数据库不进行其她事务操作时候备份可以提高数据备份速度。
<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; } 6、系统测试方案和测试报告 系统测试: 由于测试数据众多,窗口众多,就不一一截图,如下是某些测试截图: 1)学生管理测试窗口如下: 2)院系管理测试: 3)教工管理测试: 4)成绩管理: 8.1程序运营 系统使用简朴,依照可视化界面直接操作。 系统主函数放在类: EnterFrame中,通过登录界面登录进入MainFrame这个主界面程序。 运营EnterFrame,则出来登录界面如下: 本系统管理员顾客是root,密码也是root。 在程序运营前,先要导入数据库JDBC驱动程序包,在工程文献夹lib文献夹中有三个包,msbase,mssqlserver,msutil。 这样就可以运营程序了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 完整版 样本