机房设备管理数据库课程设计报告.docx

上传人:b****5 文档编号:5712784 上传时间:2022-12-31 格式:DOCX 页数:15 大小:140.05KB
下载 相关 举报
机房设备管理数据库课程设计报告.docx_第1页
第1页 / 共15页
机房设备管理数据库课程设计报告.docx_第2页
第2页 / 共15页
机房设备管理数据库课程设计报告.docx_第3页
第3页 / 共15页
机房设备管理数据库课程设计报告.docx_第4页
第4页 / 共15页
机房设备管理数据库课程设计报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

机房设备管理数据库课程设计报告.docx

《机房设备管理数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《机房设备管理数据库课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。

机房设备管理数据库课程设计报告.docx

机房设备管理数据库课程设计报告

]

课程设计报告

 

课程设计题目:

数据库课程设计

——机房设备管理系统

 

学号:

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

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

当前位置:首页 > 医药卫生 > 基础医学

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

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