数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告
本科生课程设计
课程名称
数据库课程设计
课程编号
学号
学生姓名
所在专业
计算机科学与技术
所在班级
计科1114
指导教师
成绩
教师签字
年月日
课程设计时间:
2013年12月18日
至2013年12月21日
目录
设计总说明I
第1章需求分析3
1.1.具体功能3
1.2.数据流图3
1.3.数据字典3
1.3.1.学生基本信息数据字典3
1.3.2.课程信息数据字典4
1.3.3.学生选课数据字典4
第2章概念结构设计4
第3章逻辑结构设计7
第4章物理结构设计7
4.1.建立索引的依据7
4.2需要建立索引的属性8
4.3确定数据库的存储结构8
第5章系统实现8
优缺点及自我评价8
参考文献8
设计总说明
(1)系统开发目的
学生信息管理系统主要用来管理学生基本信息和选课信息。
本系统是一个简单的学生信息管理系统,系统管理的心声主要是学生基本信息、课程信息和学生选课信息。
系统的目的是有效地处理这些信息,同时为用户提供信息检索、信息修改和保护功能。
(2)开发内容
学生信息管理系统是学校有效管理学生的重要工具,它的任务主要有以下几项:
◆学生基本信息管理,主要负责管理学生基本信息。
◆学生选课信息管理,主要负责管理学生选课信息。
◆课程信息管理,主要负责课程信息。
◆系统管理,主要负责管理用户信息和用户登陆。
(3)开发要求
学生信息管理系统是学校管理学生的有效方法,也是学生学生查询信息的有效
途径。
一个好的学生信息管理系统应具有以下这些目标:
◆ 能够管理所有学生的信息。
◆ 能够快速地进行学生的各类信息查询,包括基本信息和选课信息的查询。
◆ 减少学校管理学生的工作任务,降低管理成本。
(4)开发环境及工具
操作系统:
WIN7
数据库管理系统:
SQLServer2005
高级程序设计语言:
JAVA
(5)系统功能简介
本系统的开发主要是针对教师和学生信息管理员来进行的。
主要的功能是实现对学生基本信息、课程信息、学生选课信息的管理。
包括对各个信息模块里面信息的增加,修改,删除还有查询。
数据库原理及应用课程设计报告
第1章需求分析
1.1.具体功能
系统开发的总体任务是实现各种信息的系统化、自动化。
系统功能分析是在系统开发的总体任务的基础上完成。
本学生管理系统需要完成功能主要有:
●用户登录:
固定一个管理员用户(目前暂未实现不同用户不同权限功能
●学生基本信息管理:
实现管理人员对学生信息的添加,修改,删除和查询
●课程信息管理:
实现管理人员对课程信息的添加,修改,删除和查询
●学生选课信息管理:
实现管理人员对学生选课信息的添加,修改,删除和查询
1.2.数据流图
1.3.数据字典
1.3.1.学生基本信息数据字典
属性名
类型
长度
备注
学号
char
10
学生的学号
姓名
char
10
学生姓名
性别
char
10
男/女
年龄
char
10
系别
char
10
所属系别
1.3.2.课程信息数据字典
属性名
类型
长度
备注
课程号
char
10
主键
课程名
char
10
任课老师
char
10
授课的老师
学时
char
10
所需的课时
学分
char
10
学分分值
1.3.3.学生选课数据字典
属性名
类型
长度
备注
学号
char
10
学生的学号
课程号
char
10
所选课程的课程号
成绩
char
10
选修的成绩
第2章概念结构设计
本学生信息管理系统主要有三个模块,每个模块的基本功能都是实现对本模块信息管理的添加,修改,删除和查询功能。
下面以学生基本信息模块为例进行分析:
查询功能:
N
Y
添加功能:
Y
N
更新功能:
删除功能:
总E_R图:
第3章逻辑结构设计
在概念设计的基础上,根据设计得到系统总的E-R图,按照概念模式与关系表转化的一般规则,结合实际的需要进行逻辑设计,E-R图中的实体、实体的属性和实体之间的联系转换为关系模式。
最后声称的关系及关系表如下:
1.学生信息(学号,姓名,性别,年龄,系别)
2.课程信息(课程号,课程名,任课教师,学时,学分)
3.选课表(学号,课程号,成绩)
第4章物理结构设计
4.1建立索引的依据
所谓选择索引存取方法实际上就是根据应用要求确定对关系的哪些属性列建立索引、哪些属性列建立组合索引、哪些索引要设计唯一索引等。
根据本信息系统的具体情况,建立索引的依据如下:
1、一个属性经常在查询条件下出现
2、一个属性经常作为最大值或最小值等聚集函数的参数
3、一个属性经常在连接操作的连接条件出现
4.2需要建立索引的属性
属性
对应实体
学号
学生
课程号
课程
4.3确定数据库的存储结构
本部分主要是确定数据库物理结构,即确定数据的存放位置和存放结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
由于本系统属于极小型系统,而且是单机版的,所以在存取时间、存储空间利用率和维护代价上都没有太大的影响,因此不对其进行细节性分析,所以讲所有文件都统一放在一个文件夹中,便于文件的管理。
第5章系统实现
通过DBMS提供的数据语言(T-sql)及宿主语言(java),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并运行调试。
连接数据库的代码(SqlConnection)
publicclassSqlConnection{
privatestaticConnectionconn=null;
privatestaticStatementstmt=null;
static{
try{
//定义数据库驱动类
Stringdbdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//定义数据库连接URL
Stringdburl="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=student";
//定义数据库连接用户名
Stringdbuser="sa";
//定义数据库连接密码
Stringdbpassword="123456";
Class.forName(dbdriver);
System.out.println("数据库驱动程序注册成功");
conn=DriverManager.getConnection(dburl,dbuser,dbpassword);
System.out.println("数据库连接成功");
conn.setAutoCommit(false);//设置自动提交为false
stmt=conn.createStatement();
}catch(Exceptione){
JOptionPane.showMessageDialog(null,"数据库连接失败!
","错误",JOptionPane.ERROR_MESSAGE);//错误提示对话框
System.exit(0);
}
}
//执行对数据库的更新功能
publicstaticintexecuteUpdate(Stringsql){
inti=0;
try{
i=stmt.executeUpdate(sql);
mit();//提交事务
}catch(SQLExceptione){
System.out.println("出错啦");
//e.printStackTrace();
}
System.out.println(i);
returni;
}
//执行对数据库的查询功能
/**
*@paramsql:
T-sql语言
*@return
*/
publicstaticResultSetexecuteQuery(Stringsql){
ResultSetrs=null;
try{
rs=stmt.executeQuery(sql);
}
catch(Exceptione){
System.out.println("执行查询失败");
}
returnrs;
}
//查询学生全部情况
//publicstaticString[]FindAll(DefaultListModeldlm,Stringheader,intcolumnNum,Stringmess){
publicstaticDefaultListModelFindAll(DefaultListModeldlm,Stringheader,intcolumnNum,Stringmess){
ResultSetrs=null;
rs=executeQuery(mess);
StringnewData="";
dlm.addElement(header);
try{
while(rs.next()){
for(inti=0;inewData=newData+rs.getString(i+1)+"";
}
//newData+=";";
dlm.addElement(newData);
newData="";
}
}catch(SQLExceptione){
e.printStackTrace();
}
//header+=newData;
//String[]StuData=header.split(";");
//jListlist=newlist;
//returnStuData;
returndlm;
}
/**
*@paramsqlString:
T-sql语言
*判断在该查询语句中,是否存在数据元组
*@return
*/
publicstaticbooleanisExists(StringsqString){
ResultSetrs=null;
//运用next()的方法返回结果中的行
try{
rs=executeQuery(sqString);
if(rs.next()){
returntrue;
}else{
//JOptionPane.showMessageDialog(null,"");
returnfalse;
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
//关闭与数据库的连接
try{
rs.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
returnfalse;
}
publicstaticvoidcloseSql(){
try{
conn.close();
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
界面切换的代码块(PanelUtil.java)
publicclassPanelUtil{
privatePanelUtil(){
}
publicstaticvoidchangPanel(JFramejFrame,JPanelnewPanel){
jFrame.getContentPane().removeAll();//清空Panel里原有的内容
jFrame.getContentPane().add(newPanel);//重新加入新的Panel的内容
jFrame.getContentPane().validate();//使Panel的内容生效
jFrame.getContentPane().repaint();//重画界面
}
}
优缺点及自我评价
优缺点
缺点:
本系统目前只能给管理员登陆使用,没有设置给学生登陆查询的功能。
添加信息的时候只能一次添加一条,不能实现一次添加多条的功能;查询信息的时候也是只能一次查询一个,没有实现模糊查询。
优点:
本系统有三个模块,可以分别对学生信息,课程信息和选课信息进行增删改和查询操作,便于管理员对各项信息的管理。
自我评价;
开始做课程设计之前,我完全没有接触过Java的有关知识。
确定要用Java语言进行开发系统之后,先自己找了有关的视频进行自学,花了挺长的一段时间在看视频,后面开始做系统的时候才发现光从看视频学到的知识还是远远不够用的,期间遇到很多不懂的地方,都通过问同学,查API文档还有在网上查找相关知识一一解决了。
不过觉得这个系统的功能还不是特别齐全,今后有时间我会慢慢把它完善。
通过完成课程设计,意识到了自己很多知识都掌握得不够好,今后需要更加努力的学习好专业知识。
参考文献
[1]王珊,萨师煊.数据库系统概论[M].第4版.高等教育出版社,2006.
[2]朱福喜.面向对象与Java程序设计[M].第1版.清华大学出版社,2009.