实验室管理系统数据库设计Word文档下载推荐.docx
《实验室管理系统数据库设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验室管理系统数据库设计Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
本数据库主要采用微软公司的成熟数据库系统SQLServer2005,提供了较为灵活操作简单的功能,可以为数据库管理员和系统开发人员提供很好的支持。
SQLServer数据库
SQL是英文Structured
Query
Language的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、Microsoft
SQL
Server、Access等都采用了SQL语言标准[13]。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select、Insert,、Update、Delete、Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
3.结构设计
3。
1逻辑结构
1.1系统涉及的关系实体和对应关系
本系统有三个实体,分别是实验室、教师、学生。
实验室实体的基本属性有实验室名称,实验室地址,实验室标识、实验编号,实验教师,实验名称,实验内容,实验地点。
一个实验室可以对多个学生,一个学生可以使用一个实验室,所以是一对多的关系。
一教师可以指导一个实验,一个实验可以被一个教师所指导,所以是一对一的关系;
一个学生可以选修多个实验,一实验可以被多个学生选修,所以是多对多的关系。
教师实体的基本属性有用户名,教师编号,性别,部门.由于一名教师可以使用多个实验室,一个实验室库可以被多个老师使用,所以是多对多的关系。
学生实体的基本属性有学号,性别,姓名.一个教师可以交多个学生,一个学生被一个老师交,所以是一对多的关系。
3.1。
3总体E-R图
总体E—R图,如图3。
5所示。
图3。
5E—R图
3.1.4关系图
2关系模式
用户(用户名,用户密码,用户级别,关联ID)
实验室(实验室标识,实验室名称,实验室地点)
学生(学号,姓名,班级,性别,系别,专业)
教师(教师编号,用户名,性别,部门)
实验(实验编号,实验教师,实验地点,实验名称,实验内容,时间)
实验预约表(学生编号,实验编号,实验状态)
实验成绩表(学生编号,实验编号,成绩)
公告(编号,公告名称,公告要求,公告发布时间)
3.2物理结构
表3—1用户信息表(ex_user)
字段名称
字段标识
数据类型
长度
允许空
主键
标识
ID
int
4
No
Yes
用户名
iuser
vchar
50
用户密码
Pass
用户级别
Type
关联ID
glid
20
表3—2实验室(ex_sys)
实验室标识
Sys_id
实验室名称
Sys_name
实验室地点
Sy_place
表3—3学生(ex_stu)
学号
Stu_id
姓名
Stu_name
班级
Stu_class
vChar
专业
Stu_zhy
性别
Stu_stu
系别
Stu_xb
表3—4教师(ex_tch)
教师编号
tch_id
Username
tch_sex
部门
tch_department
表3-5实验(ex_sy)
自动编号
id
Int
no
实验编号
sy_id
varchar
80
实验教师
Sy_tch
实验地点
实验名称
Sy_title
实验内容
Sy_content
ntext
16
开始时间
Sy_starttime
datetime
8
结束时间
Sy_endtime
表3—6实验预约表(ex_syyy)
学生编号
实验状态
自动学号
公告名称
ititle
公告要求
content
公告发布时间
itime
表3-7公告(ex_note)
表3—8实验成绩表(ex_sycj)
学生学号
成绩
4.代码设计
4。
1触发器脚本
修改表ex_sy中的sy_place,则表ex_sys中的sy_place随之改变
ifexists(select*fromex_sywherename=’Product_ID'
andtype='
tr’)
droptriggersy_place
go
createtriggersy_placeonProductsforupdateas
ifupdate(sy_place)
begin
declare@sy_place_newchar(50),@sy_place_oldchar(50)
select@sy_place_new=ProductIDfrominserted
select@sy_place=sy_placefromdeleted
updateex_syssetsy_place=@sy_place_new
whereex_sy=@sy_place
end
updateex_stusetsy_place='
asd'
wheresy_place=sdf'
select*fromex_sy
select*fromex_sys
2视图脚本
SELECTdbo.ex_stu。
iuser,dbo。
ex_sy.id,dbo。
ex_sycj。
FROMdbo。
ex_noteINNERJOIN
dbo。
ex_syONdbo.ex_note.id=dbo。
ex_sy.idINNERJOIN
ex_sycjONdbo.ex_sy.sy_id=dbo。
ex_sycj.sy_idINNERJOIN
dbo.ex_sysONdbo.ex_sy。
sy_id=dbo.ex_sys.sy_idCROSSJOIN
ex_stu
3存储过程脚本
统计每位老师所教学生的人数的存储过程
create
proc
pro_tjxsrs
@tch
int,@stunum
int
output
as
select
@stunum=count(*)
from
jiaoke
group
by
tch_id
having
tch_id=@tch
测试存储过程
declare
@tch
int,@stunum
@tch=1
exec
pro_tjxsrs
@tch,@stunum
print
@stunum
—-统计某一实验的状态的存储过程
pro_state
@stu
int,@sy
int,@Sy_tch
varchar(50)
@Sy_tch=Sy_tch
ex_syyy
where
@stu=stu_id
and
@sy=sy_id
3数据库恢复与备份
数据库的完全备份
backupdatabaseshiyanshiguanli
todisk='
f:
\备份数据库\shiyanshiguanli’
withinit
go
数据库的恢复
restoredatabaseshiyanshiguanli
fromdisk=’f:
\备份数据库\shiyanshiguanli
withrecovery
数据库差异备份
todisk=’f:
\备份数据库\shiyanshiguanli
withdifferential
fromdisk='
f:
withnorecovery
withfile=2