机房管理系统数据库设计说明Word下载.docx
《机房管理系统数据库设计说明Word下载.docx》由会员分享,可在线阅读,更多相关《机房管理系统数据库设计说明Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
2、创建表
2、创建存储过程和触发器
一、需求分析
针对一般高校机房管理系统的需求分析、通过对学生上机过程、教学班上机过程、注
册过程、充值过程、的容的数据流程分析一现设计如下数据项和数据结构
(1)机房基本信息:
包括机房号、机房名、计算机数目、管理人等
(2)计算机基本信息:
包括计算机IP地址、编号、机房号、品牌、备注等
(3)学生基本信息:
包括学号、、性名、行政班等
(4)用户基本信息:
包括用户名、学号、密码、余额等
(5)学生充值基本信息:
包括用户名、充值时间、金额、办理人等
(6)机房收费标准基本信息:
包括机房号、金额等
(7)学生上机过程登记基本信息:
包括计算机IP地址、日期、上机时间、下机时间、学号、
上机类型等
(8)机房费用统计基本信息:
包括计算机IP地址、日期、统计时间、费用等
2•数据流图
表
一-机总费期
room(机房表)
字段名
数据类型
能否为空
是否为主键
说明
rno
int
否
是
机房号
rname
char(10)
机房名
number
smallint
能
计算机数目
manager
管理人
computed计算7
机表)
IP
char(20)
计算机IP地址
eno
编号
brand
Char(20)
品牌
note
Varchar(IOO)
备注
Student(学生表)
是否作为主键
sno
Int
学号
sname
Char(10)
sex
Char
(2)
台匕冃匕
性别
class
行政班
Usertable(用户表)
uname
用户名
pword
密码
money
余额
Prepaid(充值表)
ptime
datetime
充值时间
pmoney
smallmoney
金额
trans
收费人员
Standard(收费标准表)
stime
时间段
smoney
金额/小时
Record(上机过程登记表)
begintime
上机时间
endtime
下机时间「
type
Char(15)
上机类型
statistik(机房费用统计表)
dates
日期
Sno
学号「
moneys
费用
图一机房实体E-R图
图二学生实体E-R图
2、全局E-R图
机房名I
5
机房
[1]
选择、
n
学生
/\
机器数目
1
计算机
属于
上机
用户
姓名
三、逻辑设计
1、表间关系图
Pfgpa'
J*._usertoble*
2、关系模式机房(机房号,机房名,机器数目,管理人)学生(学号,,性别,行政班)计算机(编号,机房号,品牌,备注)用户(用户名,学号,密码,余额)
四、数据库实现
1创建数据库
1、创建数据库
createdatabaseroom
on
(name='
room_data'
filename='
E:
\room\data\room_data'
size=5MB,maxsize=10MB,
filegrowth=1MB
)logon(
name='
room_log'
\room\log\room_log'
size=5MB,
maxsize=10MB,filegrowth=1MB)
2、创建表
2、room(机房表)的创建createtableroom(
rnointnotnullprimarykey,rnamechar(10)notnull,numbersmallintnull,managerchar(10)notnull)
3、computer(计算机表)的创建createtablecomputer(
IPchar(20)notnullprimarykey,cnosmallintnotnull,rnointnotnull,brandchar(20)null,notevarchar(50)null)
4、student(学生表)的创建createtablestudent(
snointnotnullprimarykey,snamechar(10)notnull,sexchar
(2)null,classchar(20)notnull
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))
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))
1、创建存储过程实现各机房上机费用的统计
1)代码createprocs_room(rnoint)as
selectrname机房名,sum(moneys)费用fromstatistikinnerjoincomputeroncomputer.IP=statistik.IPinnerjoinroomonroom.rno=computer.rnowhereroom.rno=rnogroupbyrname
2、创建触发器实现费用登记时,自动修改该生的账户余额。
1)代码
createtriggeru_moneyonstatistikforinsertas
updateusertable
setmoneys=moneys-(selectmoneysfrominserted)wheresno=(selectsnofrominserted)2)数据测试查询插入记录前学生的余额selectsno学号,moneys余额fromusertablewheresno=2011508092
执行插入操作insertintostatistikvalues('
001'
getdate(),101,2.5)查询插入记录学生的余额selectsno学号,moneys余额fromusertablewheresno=2011508092
3.创建触发器实现充值时自动修改该生余额
1)代码createtriggerun_moneyonprepaidforinsertasupdateusertablesetmoneys=moneys+(selectpmoneyfrominserted)whereuname=(selectunamefrominserted)
余额fromusertable
个vga'
2)数据测试selectsno学号,moneyswheresno=2011508092go
insertintoprepaidvalues('
bbb'
getdate(),5,'
go
selectsno学号,moneyswheresno=2011508092go
select*fromprepaid