数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
![数据库课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-6/14/f6033a65-1b73-49cc-a72f-34c88133603c/f6033a65-1b73-49cc-a72f-34c88133603c1.gif)
数据库课程设计报告
课程设计报告
(2015--2016年度第1学期)
实验名称:
数据库应用课程设计
题目:
公寓管理系统
院系:
控制与计算机科学学院
班级:
学号:
学生姓名:
指导教师:
设计周数:
1周
成绩:
日期:
2016年1月15日
一、课程设计的目的与要求
1.培养学生运用所学课程《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》课程相关的理论知识,学会分析实际问题的能力。
2.培养学生掌握用《数据库系统原理》的知识设计计算机应用课题的思想和方法。
3.培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
4.通过课程课程设计的训练,要求学生独立完成大作业要求的相关内容,包括:
●收集和调查有关资料、最新技术信息。
●根据课题的要求基本理解和掌握E-R图的设计方法和关系模式的转换。
●根据课题的要求基本理解和掌握数据流图和数据字典的设计方法。
●根据ER图生成数据库表。
●数据库完整性、安全性保证措施 。
●数据库实施维护计划
二、公寓管理系统概要设计
1.系统功能模块图
1(图)
2.系统管理员/普通管理员的功能模块图
2(图)
3.学生功能模块图
3(图)
登录界面(图)
公寓管理系统界面(图)
4.添加用户:
用户分为三类
(1)系统管理员
(2)普通管理员(3)学生
权限比较:
系统管理员>普通管理员>学生
4.添加用户(图)
5.用户设置包括:
(1)修改密码。
(2)学生管理(初始化密码为123456)
(3)管理员管理,(除密码初始化外,还可以删除)
5.1(图)
5.2(图)
5.3(图)
6.信息查询分为:
(1)学生信息查询:
1)按学号;2)按姓名;3)按宿舍;4)按班级;
6.1(图)
(2)宿舍信息查询:
6.2(图)
7.住宿管理:
(1)来访管理:
1)增加访客;2)离开访客;
7.1(图)
7.2(图)
(2)学生住宿管理
7.3(图)
8,宿舍管理:
(1)公物报修
8.1(图)
(2)报修管理
8.2(图)
(3)宿舍管理(可以添加删除查询宿舍)
8.3(图)
9.学生个人信息管理
9(图)
三、数据库设计
1.E-R图
(1)用户表(user),是保存所有用户登录信息的表,包括系统管理员、普通管理员、学生。
字段名
类型
长度
不为空
主键
说明
id
varchar
10
√
√
用户名
password
varchar
20
√
用户密码
level
int
1
√
用户权限
(2)学生信息表(studentinfo),保存学生的基本信息。
字段名
类型
长度
不为空
主键
说明
id
varchar
10
√
√
学号
name
varchar
50
√
姓名
sex
enum
√
性别(男/女)
nation
varchar
10
√
民族
class
varchar
10
√
班级
college
varchar
20
√
院系
enrolldate
date
√
入学日期
birthday
Date
出生日期
apartid
int
3
√
楼号
housetag
varchar
10
√
宿舍号(外键)
bedid
int
1
床号
ownpc
enum
是否拥有电脑
owntel
varchar
11
√
个人电话
hometel
varchar
12
√
家庭电话
(3)宿舍信息表(house),保存宿舍使用情况以及宿舍的基本信息。
字段名
类型
长度
不为空
主键
说明
housetag
varchar
10
√
√
宿舍号
buildid
varchar
3
√
宿舍所属楼号
stunum
int
1
√
宿舍实际人数
maxnum
int
1
√
宿舍最大容量
soc
int
10
√
宿舍的用电量
housestate
varchar
3
√
宿舍使用情况
(4)公物报修表(goodsrepair),保存宿舍公物报修情况。
字段名
类型
长度
不为空
主键
说明
id
int
10
√
√
主键(自增)
apartid
varchar
3
√
宿舍所属楼号
housetag
varchar
10
√
宿舍号
goodsname
varchar
20
√
报修物品名称
goodsnum
int
3
√
报修物品数量
reason
varchar
50
公物损坏原因
stuname
varchar
50
√
学生姓名
reportdate
datetime
√
报修时间
(5)来访信息表(visit),保存外来人员探访学生的信息。
字段名
类型
长度
不为空
主键
说明
id
int
10
√
√
主键(自增)
name
varchar
50
√
来访人姓名
stuid
varchar
10
被访学生学号(外键)
stuname
varchar
50
√
被访学生姓名
apartid
int
3
√
被访学生所在楼号
housetag
varchar
10
√
被访学生所在宿舍号
relation
varchar
10
√
学生与来访者关系
visittime
datetime
√
来访时间
leavetime
datetime
√
离开时间
watch
varchar
50
√
值班人姓名
credentials
varchar
10
√
证件类型
memo
varchar
50
√
备注
(6)学生迁出记录表(checkout),记录学生的迁出信息。
字段名
类型
长度
不为空
主键
说明
coid
int
10
√
√
主键(自增)
id
varchar
10
√
学号
name
varchar
50
√
学生姓名
sex
enum
√
性别(男/女)
class
varchar
10
√
班级
college
varchar
20
√
院系
enrolldate
date
√
入学日期
checkoutdate
date
√
迁出日期
nextgo
varchar
50
去向
2.触发器
(1)当有新的学生第一次登陆系统,并完成个人信息的填写之后,updateHouse_afterInsertStuInfo触发器会自动调整学生所在宿舍的人数信息。
createtriggerupdateHouse_afterInsertStuInfo
afterinsertonstudentinfo
foreachrow
begin
updatehousesetstunum=stunum+1wherehousetag=new.housetag;
end;
(2)当有学生迁出之后,其信息需要从user和studentinfo表中删除,创建触发器updateStuInfo_afterCheckout实现该功能。
createtriggerupdateStuInfo_afterCheckout
afterinsertoncheckout
foreachrow
begin
deletefromuserwhereid=new.id;
end;
(3)当有学生迁出之后,updateHouse_afterDeleteStuInfo触发器会自动调整学生所在宿舍的人数信息。
createtriggerupdateHouse_afterDeleteStuInfo
afterdeleteonstudentinfo
foreachrow
begin
updatehousesetstunum=stunum-1wherehousetag=old.housetag;
end;
3.存储过程
存储过程是提前在数据库系统中编译好的一系列操作过程,能提高系统的运行速度,就该系统中的几个存储过程给予说明:
(1)访客查询时通过visit_bt(begindate,enddate)存储过程查询一个月或一周内的访客记录。
createprocedurevisit_bt(begindate,enddate)
begin
select*fromvisitwherevisittimebetweenbeginandend;
end;
(2)添加功能的存储过程,以添加用户为例addUser(idchar(10),pwdchar(20),levelint)。
createprocedurevisit_btaddUser(idchar(10),pwdchar(20),levelint)
begin
insertintouservalues(id,pwd,level);
end;
四、课程设计总结或结论
我们这次课设的任务是建立一个公寓管理系统,编程语言采用Java语言,数据库采用mysql数据库。
在设计的开始阶段为了尽快获得公寓管理系统的需求,我们大量的在网上查找有关该方面的资料,对Java的基本理论知识复习回忆并从中悟出自己独特的见解,并应用到本次编程中。
在对所要应用的技术有了一个基本认识之后就开始构思自己的系统设计根据需求说明书的要求将整个系统分为几个模块每个模块具体又要实现哪些功能然后就逐个模块去一一详细设计,设计的过程中不时地翻阅资料用一些巧妙的技术来优化尽管这次作业不需要编程实现但是也遇到了很多的问题,最后在同学的共同努力下终于顺利完成了任务。
在数据库设计方面,通过对《数据库系统概论》课本中学的知识不断地发掘深入,设计出了较为合理的数据库结构,充分的考虑到了数据的完整性以及安全性,使用了触发器,存储过程等技术,来提高整个系统的性能。
总之,通过一个星期的设计让我们感受了软件开发的部分过程,这不仅是对我们在大学所学知识的一个综合运用也是一次增长知识和经验的好机会。
同时也使我们学会了许多处理解决问题的方法大大提高了自己的动手能力为将来的有关学习打下了良好的基础。
五、参考文献
[1]王珊,萨师煊数据库系统概论.高等教育出版社,第四版.2006年05月
附录(设计流程图、程序、表格、数据等)