机房管理系统数据库设计剖析.docx

上传人:b****6 文档编号:4090365 上传时间:2022-11-27 格式:DOCX 页数:14 大小:119.73KB
下载 相关 举报
机房管理系统数据库设计剖析.docx_第1页
第1页 / 共14页
机房管理系统数据库设计剖析.docx_第2页
第2页 / 共14页
机房管理系统数据库设计剖析.docx_第3页
第3页 / 共14页
机房管理系统数据库设计剖析.docx_第4页
第4页 / 共14页
机房管理系统数据库设计剖析.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

机房管理系统数据库设计剖析.docx

《机房管理系统数据库设计剖析.docx》由会员分享,可在线阅读,更多相关《机房管理系统数据库设计剖析.docx(14页珍藏版)》请在冰豆网上搜索。

机房管理系统数据库设计剖析.docx

机房管理系统数据库设计剖析

学院机房管理系统

数据库设计说明书

设计人:

学号:

班级:

学院:

一、需求分析

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

Char

(2)

性别

class

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图

2、全局E-R图

三、逻辑设计

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.rno

whereroom.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*fromprepaid

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1