数据库原理设计Word格式.docx
- 文档编号:4752367
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:18
- 大小:92.18KB
数据库原理设计Word格式.docx
《数据库原理设计Word格式.docx》由会员分享,可在线阅读,更多相关《数据库原理设计Word格式.docx(18页珍藏版)》请在冰点文库上搜索。
系统主要包括三个管理模块:
(1)学生模块:
学生通过注册可以登录科研立项系统,学生可以查看项目的信息,并自由申请小组,或者加入已申请小组。
(2)老师模块:
指导老师通过登录可以添加项目信息和查看选择该项目的学生信息。
评审老师通过登录可以查看指导老师信息和对小组评审。
(3)管理员模块:
管理员通过登录可以添加老师信息,并确定老师的类型,老师的类型可以为指导老师或者评审老师,还可以公布已经成功申请的项目。
系统各个模块的用例图描述:
2、概要设计
1)架构设计
该系统使用了B/S模式来架构,主要采用了jsp+servlet+javabean技术来实现该系统,运用了MVC设计模式来分层处理系统,jsp用来实现视图层,servlet用来实现控制层,javabean用来实现模型层。
2)开发工具:
myeclipse+tomcat+dreamweaver
3)开发环境:
JDK7.0
4)数据库服务器:
mysql
3、详细设计
1)数据库表的设计
Tb_student表:
Tb_student
列名
数据类型(长度)
自动增长
允许空
主键
外键
默认值
备注
ID
smallINT(4)
√
学号
name
varchar(20)
姓名
sex
CHAR
(2)
性别
age
tinyint(12)
年龄
major
varCHAR(12)
专业
tel
varchar(11)
电话
varChar(20)
邮件
ex
Char
(2)
否
项目经验
password
Varchar(10)
登录密码
Tb_groud表:
tinyint
小组号
小组名
leader
varCHAR(20)
组长名
score
小组得分
proID
项目编号
teacherID
指导老师编号
学生和小组的关系表:
(一个组可以有三个成员,一个成员可以加入两个小组)
Tb_stu_groud
stuID
学生学号
groudID
Tb_program表:
Tb_program
INT(4)
char(20)
项目名
detail
tinytext
项目陈述
money
smallint
申请资金
time
Varchar(20)
计划完成时间
comment
Varchar(5)
推荐程度
老师编号
Tb_teacher表:
Tb_teacher
老师姓名
in
VARCHAR(20)
所在系
search
Tinytext
研究方向
1、评审小组表
Tb_teagroud
小组编号
NAME
小组姓名
组长
Tb_relation
编号
groupID
数据库模型设计:
5)
3、类图描述:
1)DBconect类主要用于操作底层数据库;
2)StudentDao类主要操作学生数据访问对象;
3)还有很多vo类,表示一个实体。
(4)调试报告
系统基本能够实现各部分功能,但是系统不够稳定,性能没有期望的那么好,在某些操作中还存在一定的错误。
2、课程设计总结
该课程设计让我学会了如何根据需求去开发一个完整的软件系统,在开发的整个过程中我学到了很多的知识点,包括怎样理解需求和怎样设计系统使系统可以方便维护等,而开发时在数据库设计部分遇到了困难,通过上网查资料和找相关的书籍,自己加深对数据库方面知识的理解和掌握。
附录:
系统设计的核心代码
packagecom.dao;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.List;
importcom.database.DBconnect;
importcom.vo.Program;
importcom.vo.Student;
importcom.vo.TbGroud;
importcom.vo.TbGroud_Stu;
importcom.vo.TbTeacher;
publicclassStudentDao{
privateDBconnectdb=null;
privateResultSetrs;
publicStudentDao(){
db=newDBconnect();
}
//添加学生信息
publicbooleaninsetStudent(Studentstu){
if(stu==null)
returnfalse;
Stringsql="
insertintoapp.tb_student(ID,NAME,AGE,PASSWORD,MAJOR,TEL,EMAIL,EXPE)values("
+stu.getID()+"
'
"
+stu.getName()+"
'
"
+stu.getAge()+"
+stu.getPassWord()+"
+stu.getMajor()+"
+stu.getTel()+"
+stu.getEmail()+"
+stu.getExpe()
+"
)"
;
returndb.insert(sql);
//
//查看小组信息
publicCollectioncheckAllStudent(){
List<
Student>
list=newArrayList<
();
StringstrSql="
select*fromAPP.tb_student"
rs=db.getResult(strSql);
try{
while(rs.next()){
Studentstu=newStudent();
stu.setID(rs.getInt
(1));
stu.setName(rs.getString
(2));
list.add(stu);
}
}catch(SQLExceptione){
e.printStackTrace();
}
returnlist;
//添加小组信息
publicbooleaninsetGroud(TbGroudstu){
insertintoAPP.tb_groupvalues("
+stu.getLeader()+"
+stu.getScore()+"
+stu.getProID()+"
+stu.getID()+"
//加入小组
publicbooleaninsertG_S(TbGroud_Stustu){
insertintoAPP.tb_groud_stu(GROID,STU)values("
+stu.getGID()+"
+stu.getStuID()+"
publicCollectiongetGroud(){
TbGroud>
select*fromAPP.tb_group"
TbGroudpro=newTbGroud(rs.getInt
(1),rs.getString
(2),rs
.getString(3),rs.getInt(4),rs.getInt(5));
list.add(pro);
}finally{
db.closeResultSet(rs);
db.closeConnection();
//查看ID为参数老师带小组信息
publicCollectiongetGroud(intid){
StringstrSql="
selectAPP.tb_group.ID,APP.tb_group.NAME,APP.tb_group.LEADER,APP.tb_group.PROID"
+
"
fromAPP.tb_group,APP.tb_programwhereAPP.tb_group.proID=APP.tb_program.IDandAPP.tb_program.TEAID="
+id;
TbGroudpro=newTbGroud();
pro.setID(rs.getInt
(1));
pro.setName(rs.getString
(2));
pro.setLeader(rs.getString(3));
pro.setProID(rs.getInt(4));
//查看项目
publicCollectiongetProgram(){
Program>
select*fromAPP.tb_program"
TbTeachertea=newTbTeacher();
tea.setId(rs.getInt(7));
Programpro=newProgram(rs.getInt
(1),rs.getString
(2),rs
.getString(3),rs.getInt(4),rs.getString(5),rs
.getString(6),tea);
//判断是否密码
publicbooleancheckStudent(Stringid,Stringpassword){
if(id==null||password==null)
//intsid=Integer.parseInt(id);
//Stringsql="
select*fromAPP.tb_studentwhereID="
+sid
//+"
andPASSWORD='
+password+"
select*fromAPP.tb_studentwhereNAME='
+id
+"
rs=db.getResult(sql);
if(!
rs.next()){
returnfalse;
returntrue;
publicbooleancheckAdimin(Stringid,Stringpassword){
select*fromAPP.tb_aminwhereID='
andpassword='
returntrue;
publicbooleancheckTeacher(Stringid,Stringpassword){
intsid=Integer.parseInt(id);
select*fromAPP.tb_teacherwhereID="
+sid;
//为小组打分
publicbooleanupdateScore(intscore,intstu){
if(stu==-1)
returnfalse;
Stringsql="
UPDATEAPP.tb_groupSETSCORE="
+score+"
WHEREGroupID="
+stu;
returndb.insert(sql);
}
//删除信息
publicintproDelete(Integerid){
deletefromAPP.TB_PROGRAMwhereid="
System.out.println("
delete"
);
returndb.delete(sql);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 设计