机房设备管理数据库课程设计报告.docx
- 文档编号:5712784
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:15
- 大小:140.05KB
机房设备管理数据库课程设计报告.docx
《机房设备管理数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《机房设备管理数据库课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
机房设备管理数据库课程设计报告
]
课程设计报告
课程设计题目:
数据库课程设计
——机房设备管理系统
学号:
201120180219
姓名:
廖天琪
专业:
软件工程
班级:
1121821
指导教师:
江霞
2012年12月12日
课程设计分工
1)根据题目写出需求分析(功能描述)
2)画出全局E-R图
3)将E-R图转换为关系模式
4)在SQLServer中创建数据库及数据表,至少4个数据表,定义约束
5)输入数据,至少创建2个视图,数据涉及多个表
6)至少创建3个存储过程,实现3种表的数据操作,如查询、添加、删除或更新
7)创建2个登录、数据库用户,并分配不同的权限
8)为数据库做完全备份
9)要为修改或删除创建一个触发器
每人独立完成一个题目,不能雷同
成果:
报告,程序,数据库文件,备份文件
报告中要有详细的需求分析,课程设计任务、内容,实现代码,结论,心得。
摘要
数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库概论》课程后进行的一次全面的综合练习。
其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库及其应用系统是具有管理功能的计算机系统,而数据库原理及应用课程设计在开发应用程序中至关重要,合理的数据表结构不尽有利于软件的快速开发,而且有利于以后对软件的维护。
目前,我国的科技水平高速发展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。
在这样的大背景下,现代学校设备管理方式,资源建设等方面都发生了重大变化,这种变化表现在设备管理上,管理和服务平台发生的变化,设备管理工作不再是传统的手工操作,人工管理,而是全面实行计算机管理。
一个简单的设备管理系统包括设备的信息、使用人员信息以及借用等信息,系统在XP平台上用SQL语言来编写实现。
此系统功能分为面向使用人员和面向管理员两部分,其中使用人员可以进行借用、续借、归还和查询设备等操作,管理员可以完成设备和使用人员的信息的增加,删除和修改以及对使用人员借阅、续借、归还的确认、是否完好的确认。
关键词:
SQL语言;数据库设计;设备管理器
1、需求分析
1.1系统概要
事业单位和学校里面有着大量的公共设备,这些设备就像图书馆里面的图书一样,需要一个专门的部门进行管理,而该部门需要一个专门的管理系统,才能很方便的进行各项操作。
本系统可用来记录、浏览、查询学校机房里面公共设备的使用情况,从而方便管理员对设备的可视化管理,方便使用人员能快速的了解到自己所需设备的具体状况。
1.2、需求分析过程
1)、流程
使用人员到机房设备管理处(网上也可以)查询所需机房,看看是否有满足自己需求的设备,如果有,则查询该机房设备是否存在于设备管理处,是否能使用,是否完好:
如果在设备储备室,则管理员在系统中记录使用者的信息,从而确认使用者的身份,并且记录使出设备的相关信息。
如果机房设备没有空余的或者是完好,则通知使用人员设备无法提供。
同样使用人员可以到网上进行查询,预定自己所需要的机房设备,然后到机房设备管理处登记。
2)、功能
实现机房设备的查询、使用、归还、保存使用记录(包括使用人、设备管理员、使用设备是否完好等信息)
(3)数据流图
使用者查询
2、概念模式设计
2.1、实体
使用人员、管理、所属、设备、、管理人员、修理人员、机房地址、使用、修理
1.使用人员{使用编号,姓名,性别,学院,年级}
2.设备{设备编号、名称、型号、价值、状态}
3.机房地址{机房号、机房名、机房数量、设备号}
4.机房管理员{管理员编号、姓名、年龄、性别、机房号}
5.修理人员{修理工号、修理人员姓名、设备号}
2.2、E-R图
所有实体模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有实体模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)确定公共实体类型
为了给多个实体模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。
在这一步中我们仅根据实体类型名和键来认定公共实体类型。
一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。
2)将实体通过键码连接起来构成局部E-R图
3)消除冲突
冲突分为三类:
属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
4)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。
一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:
实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。
综上所述,“机房设备管理器”的全局ER模式如下图所示。
关系模式
1.使用人员{使用编号,姓名,性别,学院,年级}
2.设备{设备编号、名称、型号、价值、状态}
3.机房地址{机房号、机房名、机房数量、设备号}
4.机房管理员{管理员编号、姓名、年龄、性别、机房号}
5.修理人员{修理工号、修理人员姓名、设备号}
6.管理{机房号}
7.所属{设备编号}
8.修理{设备编号}
9.使用{使用者编号}
3.其它数据库对象(物理数据库设计)的考虑
--创建数据库
createdatabase机房设备管理系统
on
(
name=机房设备管理系统_data,
filename='d:
\机房设备管理系统_data,mdf',
size=1,
maxsize=5,
filegrowth=1
)
logon
(name=机房设备管理系统_log,
filename='d:
\机房设备管理系统_data,ldf',
size=1,
maxsize=5,
filegrowth=1
)
--创建数据表
--创建使用人员表
CREATETABLEsneed(
cnochar(10)notnull,--使用者编号
cnamechar(10)notnull,
sexchar
(2)notnull,
synchar(20)notnull,
zwchar(10)notnull,--年级
constraintsneed_ckprimarykey(cno),
CONSTRAINTsneed_ck1CHECK(sex='女'orsex='男')
)
--输入数据
insertintosneedvalues('1121801','张三','男','软件学院','大一')
insertintosneedvalues('1121802','李二','女','软件学院','大二')
insertintosneedvalues('1121803','王三','女','软件学院','大一')
insertintosneedvalues('1121804','陈四','男','软件学院','大二')
insertintosneedvalues('1121805','刘五','女','理学院','大一')
insertintosneedvalues('1121806','陈六','男','文法学院','大三')
insertintosneedvalues('1121807','廖彭','男','软件学院','大二')
--创建管理员表
createTABLEclassy(
ynochar(10)NOTNULL,
ynamechar(10)NOTNULL,
sexchar(10)NOTNULL,
ageintNULL,
jnochar(10)notnull,--机房号
CONSTRAINTclassy_ageCHECK(age>0),
CONSTRAINTclass_ynoprimarykey(yno),
CONSTRAINTclassy_sexCHECK(sex='女'orsex='男')
)
--输入数据
insertintoclassyvalues('201101','张三','男','25','501')
insertintoclassyvalues('201102','李四','男','26','502')
insertintoclassyvalues('201103','王五','女','24','503')
insertintoclassyvalues('201104','刘六','女','28','504')
insertintoclassyvalues('201105','陈七','男','30','505')
--修改
altertableclassyadd
CONSTRAINTclassy_jnoFOREIGNKEY
(jno)
referencesjfd
(jno)
go
--创建设备表
CREATETABLEsb(
sbnochar(10)NOTNULL,
sbnamechar(10)NULL,
xhchar(10)NULL,--型号
ztchar(10)NULL,--状态
constraintsb_sbnoprimarykey(sbno),
CONSTRAINTsb_ztCHECK(zt='不可用'orzt='可用')
)
--输入数据
insertintosbvalues('101','显示器','c01','可用','1121801')
insertintosbvalues('102','键盘','b01','可用','1121802')
insertintosbvalues('103','鼠标','a04','可用','1121803')
insertintosbvalues('104','主箱','c02','可用','1121804')
insertintosbvalues('105','音箱','b02','不可用','1121805')
insertintosbvalues('106','网络','a05','可用','1121806')
altertablesbadd
cnochar(10)
altertablesbadd
constraintsb_cnoforeignkey(cno)referencessneed(cno)
--创建机号地址表
createtablejfd(
jnochar(10)notnull,
jnamechar(20),
jfnchar(8),--机房量
constraintjfd_jnoprimarykey(jno))
--输入数据
insertintojfdvalues('501','C++','','101')
insertintojfdvalues('502','数据结构','','102')
insertintojfdvalues('503','C语言','','103')
insertintojfdvalues('504','vb实验','','104')
insertintojfdvalues('505','数据库','','105')
--修改
altertablejfd
add
sbnochar(10)
altertablejfd
add
constraintjfy_sbnoforeignkey(sbno)referencessb(sbno)
createtablexl
(
xlnochar(10)notnull,
xlnamechar(20),
sbnochar(10)notnull,--设备号
constraintxl_xlnoprimarykey(xlno),
constraintxl_sbnoforeignkey(sbno)referencessb(sbno)
)
--插入数据
insertintoxlvalues('n1','吴一','101')
insertintoxlvalues('n2','思吴','102')
--创建视图
createview管理员
as
selectyno,yname,sex,age
fromclassy,jfd
whereclassy.jno=jfd.jnoandjname='数据结构'
dropview管理员
createview设备
as
selectsbno,sbname,xh,zt
fromsb,sneed
whereo=oandzw='大二'
createview修理人员
as
selectxlno,xlname,xl.sbno
fromsb,xl
wherexl.sbno=sb.sbnoandzt='可用'
createview机房地址
as
selectjno,jname,jfn
fromjfd,sb
wheresb.sbno=jfd.sbnoandcno='1121802'
--创建存储过程
--查询
createprocedureproc1
(@ynochar(10)
)
as
declare@ynamechar(10)
select@yname=yname
fromclassy
whereyno=@yno
if(@ynameisnotnull)
print@yname
else
print'查无此人'
go
execproc1'201101'
select*fromclassy
dropprocedureproc1
createprocedureproc2
(@ynochar(10),
@ynamechar(10),
@sexchar(10),
@ageint,
@jnochar(10))
as
insertintoclassyvalues(@yno,@yname,@sex,@age,@jno)
go
execproc2'201106','刘天','女','30','502'
select*fromclassy
dropprocedureproc2
--创建登入
execsp_addlogin'123456','111111','机房设备管理系统',null
execsp_adduser'123456','123456','db_owner'
execsp_addsrvrolemember'123456','dbcreator'
--创建触发器
--不允许删除张三信息
createtriggertr1
onclassy
afterdelete
as
declare@ynamechar(10)
select@yname=yname
fromdeleted
if@yname='张三'
rollback
--但对设备表中插入一条记录时,自动显示记录内容
createtriggertr2
onsb
forinsert
as
select*fromsb
createtablesy
(synochar(10)notnull,
sbnochar(10)NOTNULL,
cnochar(10)notnull,
ynochar(10)notnull,
constraintsy_synoprimarykey(syno),
constraintsy_sbnoforeignkey(sbno)referencessb(sbno),
constraintsy_cnoforeignkey(cno)referencessneed(cno),
constraintsy_ynoforeignkey(yno)referencesclassy(yno)
)
droptablesy
use机房设备管理系统
go
grantselectonsbto‘123456’
go
grantinsert,update,deleteonsneedto‘123456’
go
revokeinsert,update,delectonclassyfrom‘123456’
backupdatabase机房设备管理系统
todisk:
’d:
/backup-kk’
withinit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机房设备 管理 数据库 课程设计 报告