机房管理系统数据库设计.docx
- 文档编号:6733459
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:13
- 大小:17.37KB
机房管理系统数据库设计.docx
《机房管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《机房管理系统数据库设计.docx(13页珍藏版)》请在冰豆网上搜索。
机房管理系统数据库设计
学院机房管理系统
数据库设计说明书
设计人:
学号:
班级:
学院:
一、需求分析
1.业务流程图
2.数据流图
3.数据字典
二、概念设计
1、实体属性图
2、全局E-R图
三、逻辑设计
1、表间关系图
2、关系模式
四、数据库实现
1、创建数据库
2、创建表
2、创建存储过程和触发器
一、需求分析
针对一般高校机房管理系统的需求分析、通过对学生上机过程、教学班上机过程、注册过程、充值过程、的容的数据流程分析一现设计如下数据项和数据结构
(1)机房基本信息:
包括机房号、机房名、计算机数目、管理人等
(2)计算机基本信息:
包括计算机IP地址、编号、机房号、品牌、备注等
(3)学生基本信息:
包括学号、、性名、行政班等
(4)用户基本信息:
包括用户名、学号、密码、余额等
(5)学生充值基本信息:
包括用户名、充值时间、金额、办理人等
(6)机房收费标准基本信息:
包括机房号、金额等
(7
)学生上机过程登记基本信息:
包括计算机IP地址、日期、上机时间、下机时间、学号、
上机类型等
(8
)机房费用统计基本信息:
包括计算机
IP地址、日期、统计时间、费用等
1.业务流程图
2.数据流图
3.数据字典
room(机房表)
字段名
数据类型
能否为空
是否为主键
说明
rno
int
否
是
机房号
rname
char(10)
否
否
机房名
number
smallint
能
否
计算机数目
manager
char(10)
否
否
管理人
computer(
计算机表)
字段名
数据类型
能否为空
是否为主键
说明
IP
char(20)
否
是
计算机IP地址
cno
smallint
否
否
编号
rno
int
否
否
机房号
brand
Char(20)
能
否
品牌
note
Varchar(100)
能
否
备注
Student(学生表)
字段名
数据类型
能否为空
是否作为主键
说明
sno
Int
否
是
学号
sname
Char(10)
否
否
sex
class
Char
(2)
Char(20)
能
能
否
否
性别
行政班
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
否
否
金额/小时
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
否
否
费用
二、概念设计
1、实体属性图
机房学生
机房号机房名管理人机器数目学号姓名性别行政班
图一机房实体E-R图图二学生实体E-R图
计算机
计算机ID编号机房号品牌备注
2、全局E-R图
机房号机房名机器数目管理人
1
机房属于
1
选择
上机
1
n
1
学生属于
姓名性别学号行政班
三、逻辑设计
1、表间关系图
编号机房号品牌备注
n
计算机ID
计算机
1
1
用户
用户名学号密码余额
2、关系模式
机房(机房号,机房名,机器数目,管理人)
学生(学号,,性别,行政班)
计算机(编号,机房号,品牌,备注)
用户(用户名,学号,密码,余额)
四、数据库实现
1、创建数据库
1、创建数据库
createdatabaseroom
on
(name='room_data',
filename='E:
\room\data\room_data',
size=5MB,
maxsize=10MB,
filegrowth=1MB
)
logon
(
name='room_log',
filename='E:
\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)
)
2、创建存储过程和触发器
1、创建存储过程实现各机房上机费用的统计
1)代码
createprocs_room(rnoint)
as
selectrname机房名,sum(moneys)费用
fromstatistikinnerjoincomputer
oncomputer.IP=statistik.IPinnerjoinroomonroom.rno=computer.rnowhereroom.rno=rno
groupbyrname
2、创建触发器实现费用登记时,自动修改该生的账户余额。
1)代码
createtriggeru_moneyonstatistik
forinsert
as
updateusertable
setmoneys=moneys-(selectmoneysfrominserted)
wheresno=(selectsnofrominserted)
2)数据测试
查询插入记录前学生的余额
selectsno学号,moneys余额
fromusertable
wheresno=2011508092
执行插入操作
insertintostatistik
values('001',getdate(),101,2.5)
查询插入记录学生的余额
selectsno学号,moneys余额
fromusertable
wheresno=2011508092
3.创建触发器实现充值时自动修改该生余额
1)代码
createtriggerun_moneyonprepaid
forinsert
as
updateusertable
setmoneys=moneys+(selectpmoneyfrominserted)
whereuname=(selectunamefrominserted)
2)数据测试
selectsno
学号,moneys
余额fromusertable
wheresno=2011508092
go
insertintoprepaid
values('bbb',getdate(),5,'
个vga')
go
selectsno
学号,moneys
余额fromusertable
wheresno=2011508092
go
select*from
prepaid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机房 管理 系统 数据库 设计