数据库机房管理系统设计.docx
《数据库机房管理系统设计.docx》由会员分享,可在线阅读,更多相关《数据库机房管理系统设计.docx(16页珍藏版)》请在冰豆网上搜索。
数据库机房管理系统设计
数据库设计说明书
XX:
学号:
题目:
班级:
一、题目
(42)机房管理系统
●实现机房信息、机器信息、学生信息、上机类型信息的管理;
●实现学生上机充值信息的管理;
●实现学生上机过程的登记、费用信息的管理;
●实现教学班及教学班学生信息的管理;
●实现上机费率标准的设置及教学班上机的预约,即设置各教学班的上课时段。
●创建存储过程统计各机房上机费用的统计;
●创建触发器实现费用登记时,自动修改该生的账户余额。
●建立各表之间的关系。
二、需求分析
针对一般高校机房管理系统的需求分析、通过对学生上机过程、教学班上机过程、注册过程、充值过程、的容的数据流程分析一现设计如下数据项和数据结构
(1)机房基本信息:
包括机房号、机房名、计算机数目、管理人等
(2)计算机基本信息:
包括计算机IP地址、编号、机房号、品牌、备注等
(3)学生基本信息:
包括学号、XX、性名、行政班等
(4)教学班基本信息:
包括教学班班号、课程名称、课程性质、任课教师、教学班人数等
(5)用户基本信息:
包括用户名、学号、密码、余额等
(6)学生充值基本信息:
包括用户名、充值时间、金额、办理人等
(7)机房收费标准基本信息:
包括机房号、时间段、金额等
(8)学生成绩基本信息:
包括教学班号、学号、成绩等
(9)教学班机房预约基本信息:
包括机房号、上课时段、开始时间、结束时间、教学班号等
(10)学生上机过程登记基本信息:
包括计算机IP地址、日期、上机时间、下机时间、学号、上机类型等
(11)机房费用统计基本信息:
包括计算机IP地址、日期、统计时间、费用等
(12)收费人员基本信息:
包括收费员编号、收费员XX、性别、XX、时间段等
三、数据库概念结构设计
1、系统功能结构图
图1系统功能结构图
2、局部E-R图
图2机房实体E-R图图3学生实体E-R图
图4计算机实体E-R图
图5教学班实体E-R图
3、全局E-R图
图6实体和实体之间关系E-R图
四、数据库逻辑结构设计
1、数据字典
room(机房表)
字段名
数据类型
能否为空
是否为主键
说明
rno
int
否
是
机房号
rname
char(10)
否
否
机房名
number
smallint
能
否
计算机数目
manager
char(10)
否
否
管理人
puter(计算机表)
字段名
数据类型
能否为空
是否为主键
说明
IP
char(20)
否
是
计算机IP地址
o
smallint
否
否
编号
rno
int
否
否
机房号
brand
Char(20)
能
否
品牌
note
Varchar(100)
能
否
备注
Student(学生表)
字段名
数据类型
能否为空
是否作为主键
说明
sno
Int
否
是
学号
sname
Char(10)
否
否
XX
sex
Char
(2)
能
否
性别
class
Char(20)
能
否
行政班
Class(教学班表)
字段名
数据类型
能否为空
是否作为主键
说明
clno
int
否
是
教学班号
clname
char(20)
否
否
课程名称
cltype
Char(20)
否
否
课程类型
teacher
Char(10)
否
否
任课教师
clnumber
smallint
能
否
教学班人数
Usertable(用户表)
字段名
数据类型
能否为空
是否作为主键
说明
uname
Char(20)
否
是
用户名
sno
int
否
否
学号
pword
Char(20)
否
否
密码
money
money
能
否
余额
Prepaid(充值表)
字段名
数据类型
能否为空
是否作为主键
说明
uname
Char(20)
否
是
用户名
ptime
datetime
否
是
充值时间
pmoney
smallmoney
否
否
金额
trans
Char(10)
否
否
收费人员
Standard(收费标准表)
字段名
数据类型
能否为空
是否作为主键
说明
rno
int
否
是
机房号
stime
Char(20)
否
是
时间段
smoney
smallmoney
否
否
金额/小时
Result(成绩表)
字段名
数据类型
能否为空
是否作为主键
说明
clno
int
否
是
教学班号
sno
int
否
是
学号
result
float
能
否
成绩
Scheduled(教学班机房预定表)
字段名
数据类型
能否为空
是否作为主键
说明
rno
int
否
是
机房号
time
Char(20)
否
是
上课时段
begintime
smalltime
否
否
开始时间
endtime
smalltime
否
否
结束时间
clno
int
否
否
教学班号
Record(上机过程登记表)
字段名
数据类型
能否为空
是否作为主键
说明
IP
char(20)
否
是
计算机IP地址
begintime
datetime
否
是
上机时间
sno
Int
否
否
学号
endtime
datetime
能
否
下机时间
type
Char(15)
否
否
上机类型
statistik(机房费用统计表)
字段名
数据类型
能否为空
是否作为主键
说明
IP
char(20)
否
是
计算机IP地址
dates
datetime
否
是
日期
Sno
int
否
否
学号
moneys
smallmoney
否
否
费用
2、关系图
五、数据库实现
1、创建数据库
1、创建数据库
createdatabaseroom
on
(name='room_data',
filename='E:
\room\data\room_data',
size=1MB,
maxsize=3MB,
filegrowth=1MB
)
logon
(
name='room_log',
filename='E:
\room\log\room_log',
size=1MB,
maxsize=3MB,
filegrowth=1MB
)
2、创建表
2、room(机房表)的创建
createtableroom
(
rnointnotnullprimarykey,
rnamechar(10)notnull,
numbersmallintnull,
managerchar(10)notnull
)
3、puter(计算机表)的创建
createtableputer
(
IPchar(20)notnullprimarykey,
osmallintnotnull,
rnointnotnull,
brandchar(20)null,
notevarchar(50)null
)
4、student(学生表)的创建
createtablestudent
(
snointnotnullprimarykey,
snamechar(10)notnull,
sexchar
(2)null,
classchar(20)notnull
)
5、class(教学班)的创建
createtableclass
(
clnointnotnullprimarykey,
clnamechar(20)notnull,
cltypechar(20)notnull,
teacherchar(10)notnull,
clnumbersmallintnull
)
6、User(用户表)的创建
createtableusertable
(
unamechar(20)notnullprimarykey,
snointnotnull,
pwordchar(20)notnull,
moneysmoneynull,
)
7、prepaid(充值表)的创建
createtableprepaid
(
unamechar(20)notnull,
ptimedatetimenotnull,
pmoneysmallmoneynotnull,
transchar(10)notnull,
constraintp_primaryprimarykey(uname,ptime)
)
8、standard(收费标准表)的创建
createtablestandard
(
rnointnotnull,
stimechar(20)notnull,
smoneysmallmoneynotnull,
constraintc_primaryprimarykey(rno,stime)
)
9、result(成绩表)的创建
createtableresult
(
clnointnotnull,
snointnotnull,
resultfloatnull,
constraintr_prinaryprimarykey(clno,sno)
)
10、scheduled(教学班机房预定表)的创建
createtablescheduled
(
clnointnotnull,
rnointnotnull,
stimechar(20)notnull,
begintimedatetimenotnull,
endtimedatetimenotnull,
constraints_primaryprimarykey(rno,stime)
)
11、record(上机过程登记表)的创建
createtablerecord
(
IPchar(20)notnull,
snointnotnull,
begintimedatetimenotnull,
endtimedatetimenull,
typechar(15)notnull,
constraintt1primarykey(IP,begintime)
)
12、statistik(费用统计表)的创建
createtablestatistik
(
IPchar(20)notnull,
datesdatetimenotnull,
snointnotnull,
moneyssmallmoneynotnull,
constraintt2primarykey(IP,dates)
)
2、创建存储过程和触发器
1、创建存储过程实现各机房上机费用的统计
1)代码
createprocs_room(rnoint)
as
selectrname机房名,sum(moneys)费用
fromstatistikinnerjoinputer
onputer.IP=statistik.IPinnerjoinroomonroom.rno=puter.rno
whereroom.rno=rno
groupbyrname
2)数据测试
execs_room514
2、创建触发器实现费用登记时,自动修改该生的账户余额。
1)代码
createtriggeru_moneyonstatistik
forinsert
as
updateusertable
setmoneys=moneys-(selectmoneysfrominserted)
wheresno=(selectsnofrominserted)
2)数据测试
查询插入记录前学生的余额
selectsno学号,moneys余额
fromusertable
wheresno=101
执行插入操作
insertintostatistik
values('321-458-984',getdate(),101,3.5)
查询插入记录前学生的余额
selectsno学号,moneys余额
fromusertable
wheresno=101
2、创建触发器实现充值时自动修改该生余额
1)代码
createtriggerun_moneyonprepaid
forinsert
as
updateusertable
setmoneys=moneys+(selectpmoneyfrominserted)
whereuname=(selectunamefrominserted)
2)数据测试
selectsno学号,moneys余额fromusertable
wheresno=102
go
insertintoprepaid
values('bbb',getdate(),4.8,'王俊')
go
selectsno学号,moneys余额fromusertable
wheresno=102
go
select*fromprepaid
六、结束语
通过这次课程设计,我更加熟练的掌握了数据库设计的方法,加深了对数据库课程知识的理解,同时也更加深入的了解了利用SQL语言操纵数据库的知识,并且对数据库里面的存储过程有了比较深入的了解。
经过几天的艰苦奋斗,我终于完成了我的数据库课程设计基于DB2的列车票务管理系统。
进一步提高分析解决问题的综合能力。
由于时间仓促,系统还有很多不足之处,所以开发的系统不是很完善,有一些功能未实现,但是列车票务管理的基本功能均已实现。
以前对数据库的很多知识认识都不深刻,做过这次课程设计之后,我对数据库的知识有了一个比较系统的了解;比如:
对表一些字段的约束,关系等的运用已经比较熟练。
由于是第一次使用,所以运用的不是很熟练。
刚开始的时候,对于数据库设计方法等一系列知识都不熟悉,但当我基本完成此系统开发的时候,我发现其实也没有那么难,在未做之前我还害怕做不出来。
经过对这个系统的开发,在开发过程中遇到但也解决了很多问题。
这个课程设计使我巩固了数据库的知识。
在今后的学习中我会加强理论与实践的结合,通过不断的摸索来弥补自己的不足之处。