1、探究实验室教学管理系统开发之数据库设计孟金洲摘 要:随着高校管理 变革的逐步推进,实验室建设进一步规范化、复杂化,高校实验室管理工作也变得更加繁重和复杂。为了便利管理工作的展开,提高工作效率,利用计算机来进行辅助管理,以 简化我们的工作,成 为需要。本系统正是基于此而进行开发设计。系统采用.NET 框架和三 层结构,完全 B/S 模式,纯面向对象思想(OOP);本系统运用了 Microsoft SQLServer2005 为后台数据库,以 Visual studio.NET2008 为前端开发工具,通过对数据库技术进行了较深入的学习和应用,主要完成管理员管理、教 师教学安排管理、学生预约实验、
2、做实验、用户维护、系统维护等系统功能。系 统运行 结果证明,其操作简单,界面友好,运行比较稳定,适用于大学院校实验教学管理使用。关键词:实验室教学管理;OOP;B/S ;Visual studio.NET2008;SQLServer2005 The Development Of Experiment Management SystemMengJinZhou Dept.of Computer Science This system using Microsoft SQLServer2005 for backend database, with Visual studio. NET2008 for
3、 front-end development tools, through to the database technology were further study and application, mainly completes administrator management, teachers teaching arrangement management,System operation results show that the operation simple, friendly interface, operation is stable and the experiment
4、 teaching management apply colleges use. Keywords:laboratory teaching management; B/S;NET2008; SQLServer2005目录1、引言 -1.1、实验室教学管理系统开发背景 -1.2、实验室教学管理系统功能 -1.3、开发的目的、意义 -1.4、开发思想 -1.5、系统开发运行环境 -2、实验室教学管理系统开发相关技术的介绍 -2.1、A 的介绍 -2.2、SQL Server 2005 概述 -3、系统功能模块设计 -3.1、系统概述 -3.2、主要功能模块 -3.3、管理员子系统模块 -3.4、学
5、生子系统模块 -3.5、教师子系统模块 -4、系统数据库设计 -4.1、数据库设计 -4.1.1、概念结构设计 -4.1.2、逻辑结构设计 -4.2、主键、外键设置说明 -4.3、系统中部分 SQL 语句 -5、数据库存储过程、触发器、视图设计 -5.1、系统设计过程中部分存储过程 -5.2、触发器设计 -5.3、视图创建 -5.4、数据库连接核心代码 -5.5、数据库在后台运用 -5.51、数据库连接 -5.52、实验室部分 -6、结论 -6.1、数据库中常见问题 -6.11、数据库的完善问题 -6.12、页面与数据库连接的问题 -6.2、整个设计过程 -参考文献 -致 谢 -1、引言 1.
6、1、实验室教学管理系统开发背景在当今的社会,可以说是信息技术的发展时代,在社会的方方面面无不涉及到各种信息的处理。信息是人们对客观世界的具体描述,是人们进行交流与联系的重要途径。人类社会就处在一个对信息进行有效合理的加工中。它将促进整个社会的发展,在当今信息时代,人们的生活方式随着 Internet 的不断发展发生了不同寻常的改变。1.2、实验室教学管理系统功能本系统可以为学生提供做实验的网上平台,学生只要在实验室的计算机上就可以浏览所要了解的实验信息,并通过用户验证登录后,找到自己要做的实验进行操作、查询等;本系统为教师提供在线查看学生的实验报告、批改实验报告、查看学生做实验的记录等。1.3
7、、开发的目的、意义 实验室信息化管理是在传统实验室的基础上,利用先进的计算机技术、网络通信技术、多媒体技术等相关的信息,加工处理传播技术,将现实实验室中的各种实验资源进行处理,并通过计算机进行开放型管理,其重要意义是使得实验室在时间和空间上得以延伸。 1.4、开发思想基于.NET 框架,系统架构采用三层结构(用户表示层、业务逻辑层、数据访问层) ,B/S 模式,完全面向对象。ASP.NET 可以使用.NET 平台快速方便的部署三层架构。显示层放在 ASP.NET 页面中,数据库操作和逻辑层用组件来实现,这样就很方便的实现了三层架构。1.5、系统开发运行环境 系统开发环境:Microsoft V
8、isual Studio 2008系统开发语言:ASP.net+C#运行平台:Windows XP数据库:SQL Server 20052、实验室教学管理系统开发相关技术的介绍2.1、A 的介绍ASP.net 5是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在 Web 应用软件开发者的几乎全部的平台上。2.2、SQL Server 2005 概述Microsoft SQL Server 2005 由一系列相互协作的组件构成,不仅能满足最大的 Windows 应用程序和企业数据处理系统存储和分析数据的需要,还能为个人或小企业提供易于使用的数据存储服务,是现在通用数据库里面最
9、流行、性能最好的数据库之一。(1)关系数据库设计关系型数据库应用数学方法来处理数据库中的数据,是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。(2)关系数据结构设计在本系统中通过利用 SQL Server 服务管理器来控制服务器上 Microsoft SQL Server 2005 组件的启动、暂停和停止。这些组件在 Microsoft Windows 7 上作为服务运行,相对于每一个 SQL Server 实例都只有一个 SQL Server 服务实现运行调度的 SQL Server 管理任务的代理程序和全文本检索引擎以及管理分布式事务。本系统中设
10、计数据库时,按照关系数据库中的范式规则,将表中的重复字段和不相关字段进行合理划分,设计出来的数据库表格符合第二范式,减少了数据操作时的错误。( 3) 关 系 操 作 集 合 设 计 本 系 统 根 据 SQL 的 语 句 定 义 标 准 , 编 写 合 理 , 实 用 , 功 能 完 善 的 操 作语 句 , 从 而 实 现 对 数 据 库 进 行 规 范 操 作 。( 4) 关 系 完 整 性 约 束 设 计本系统通过对外键的控制,在存储过程中编写一些合理,实用,功能完善的操作语句对数据库进行操作。在数据库报损文件中删除的记录也应该在库存文件中删除,两个表格之间存在约束关系。3、系统功能模块
11、设计3.1、系统概述在本系统中,主要是为了方便实验室的管理、学生上机做实验和选课及教师可以直接利用网络系统收集学生实验结果和批改学生实验报告等。其中管理员可以管理学生、教师和管理员的基本信息,添加开课计划和所要上机操作的实验项目,并根据教师要求上传相应的实验计划,教师可以收集学生的实验结果并批改学生实验报告,最终返回实验成绩功能等。教师信息 实验内容上传 实验报告评分教师管理 学生管理 实验室管理 实验室设备管理 开课课程管理管理员 教师 学生实验室教学管理系统学生信息 查看实验信息 提交实验报告修改密码 实验报告成绩3.2、主要功能模块本系统根据登录权限划分,可以分为管理员、学生和教师三大模
12、块:实验室学生子系统、实验室教师子系统、实验室管理员子系统,如下图 1 所示:图 1: 系统主要模块3.3、管理员子系统模块管理员部分主要实现的功能部分包括:1) 系统维护此功能模块只是针对管理员,管理员对系统进行必要的维护2) 开课计划管理员根据学校安排或者有关学院的安排制定不同班级学生的开课计划,并能够进行相关的更新。1)权限管理管理员根据学校安排可以增加不同的用户,并可实现增、删、改用户及其用户登录权限设置。2)设备管理查看实验室的相关记录,记录下不能使用的实验设备并标注清楚,根据学校安排调整或者添加相关的实验设备。3.4、学生子系统模块学生部分主要实现的功能部分包括:1)修改密码:当学
13、生登录进入后,可以跟据原密码,验证并修改密码2)个人信息在个人信息这部分,学生登录进去后,系统可以从数据库中读取相应的个人信息3)实验部分当学生点击实验部分,可以根据老师的安排,进行试验操作、填写报告4)成绩查询:该部分可以对自己已作实验成绩进行查看3.5、教师子系统模块教师部分主要实现的功能包括:个人信息教师在该部分可以查看、修改自己的个人信息密码修改可以根据旧密码,修改确定新密码实验安排这部分教师可以根据自己的课时计划,制定安排实验实验报告教师将根据学生上交的实验报告,查阅、统计打分4、系统数据库设计4.1、数据库设计数据库是管理信息系统的核心,一个良好的数据库结构既具有数据冗余少、操作处
14、理过程简单等特点,同时也应具有信息查找比较容易、系统开销低等特点 2。本系统在进行数据库设计时,先根据在需求分析中得到的业务数据流,进行高度抽象得出系统实体,构造 E-R 图,然后再将 E-R 图转换生成特定的DBMS 支持下的关系模式,再对确定的关系数据模式进行优化,最后确定数据的物理存储。4.1.1、概念结构设计概念结构设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。本系统从数据流中抽象出各个实体:学生、教师、管理员、实验课程、教 师 实 验 课 程 实 验 报 告 预 约 学 生 填 写 批 改 指 导 教 授 学 号 姓 名 性 别 报 告 号 题 目 内 容 实 验 号
15、实 验 名 预 约 人 数 教 师 号 教 师 名 电 话 m m n m m m n m n m 1 m n m 1 m 教 师 实 验 课 程 实 验 报 告 学 生 学 号 姓 名 性 别 报 告 号 题 目 内 容 实 验 号 实 验 名 预 约 人 数 教 师 号 教 师 名 电 话 管 理 员 管 理 管 理 管 理 管 理 m m n m m m n m m m n m m m n m 实验报告等我们可设计出本系统的 E-R 图(实体-联系图)如图 2 和图 3 所示:图 2:学生 E-R 图图 3:管理员 E-R 图 4.1.2、逻辑结构设计设计逻辑结构应该选择最适于描述与表达
16、相应概念结构的数据模型,然后选择最合适的 DBMS。本系统数据库中的表有学生信息表、实验室信息表、教师信息表、管理员权限表、设备表等 21 张表。设由此,我们根据三大功能和模块来设计表。()管理员部分主要用到的表表 1 Student(学生)字段 数据类型 长度 描述S_id tinyint 10 学号(主键)S_name char 8 姓名S_Sex varchar 2 性别S_Pwd varchar 20 密码S_Grade varchar 50 年级Major varchar 50 专业Class varchar 50 班级(外键)表 2 Teacher(教师)字段 数据类型 长度 描述
17、T_ID tinyint 4 教师编号(主键)T_name char 10 教师姓名T_sex char 2 教师性别T_pwd varchar 50 密码T_phone varchar 50 电话表 3 Administer(管理员)字段 数据类型 长度 描述A_id tinyint 10 管理员编号(主键)A_Name nchar 10 姓名Pwd char 10 密码Limit char 10 权限Memo text 16 备注表 4 Exp_Course(开课计划表)字段 数据类型 长度 描述Kid tinyint 10 实验课程编号(主键)K_Name nchar 10 课程名称(外
18、键)C_ID int 10 班级编号Memo text 16 备注表 5 Exp_room(实验室表)字段 数据类型 长度 描述ExpR_id tinyint 10 实验室编号(主键)ExpR_Name nchar 10 实验室名称ExpR_dizi char 10 实验室地址Memo text 16 备注(二)教师部分所用到主要表表 6 Teacher(教师)字段 数据类型 长度 描述TID tinyint 4 教师编号(主键)Tname char 10 教师姓名Tsex char 2 教师性别Tpwd varchar 50 密码Tphone varchar 50 电话表 7 Exp_Pub
19、lic(实验发布)字段 数据类型 长度 描述ID tinyint 4 实验报告编号(主键)Title varchar 50 报告题目Content text 16 报告内容Time datetime 8 添加时间表 8 Grade(班级)字段 数据类型 长度 描述Mid tinyint 50 专业编号(主键)Gid int 4 班级编号Grade varchar 50 班级名称表 9 Exp_Info(项目计划)字段 数据类型 长度 描述Xid tinyint 10 项目编号(主键)X_name varchar 50 实验项目名称X_content text 16 实验项目内容Teacher
20、varchar 8 授课教师(外键)(三)学生部分所用到主要表表 10 Student(学生)字段 数据类型 长度 描述Sid tinyint 10 学号(主键)Sname char 8 姓名Sex varchar 2 性别Pwd varchar 20 密码Grade varchar 50 年级Major varchar 50 专业Class varchar 50 班级(外键)表 11 Exp_Report(实验报告)字段 数据类型 长度 描述Exp_id tingyint 10 实验编号(主键)Sid nchar 10 学号Tid char 10 教师名字Title char 10 实验题目
21、Content char 10 实验内容Memo text 16 备注表 12 Grade(班级)字段 数据类型 长度 描述Mid tinyint 50 专业编号(主键)Gid int 4 班级编号Grade varchar 50 班级名称表 13 Course(课程表)字段 数据类型 长度 描述Cour_id tinyint 50 课程编号(主键)Cour_Name int 10 课程名称Cour_class varchar 50 开授班级4.2、主键、外键设置说明主键在每一张表中,一般将表中的第一个字段名设为主键标识符,并让它自增加,设置为 identify。外键一张表中某一个字段,并且该
22、字段必须为另一个表中的主键。4.3、系统中部分 SQL 语句在 SQLServer2005 管理界面工具栏上点击 图标打开如下窗口:在其中可以编写,并执行 T-SQL 语句,举例如系统表的代码。CREATE TABLE dbo.SysTable(Sys_Caption varchar(50) COLLATEChinese_PRC_CI_AS NOT NULL CONSTRAINT DF_SysTable_Sys_Caption DEFAULT (1),Sys_Satus tinyint NOT NULL,Sys_Memo varchar(500) COLLATE Chinese_PRC_CI_
23、AS NULL,5、数据库存储过程、触发器、视图设计5.1、系统设计过程中部分存储过程(1)、获取用户信息的存储过程CREATE proc Proc_GetUSRInfo(type int,id int)asSelect userid,name,startendTime,unit,Froming,pwd,limit,From administerWhere type = type and r.owner=u.id and r.id=id(2) 、更新信息存储过程CREATE proc Proc_UpdateUserInfo(id int,age int,class Nvarchar(50)co
24、llege Nvarchar(50),userid Nvarchar(50), userpass Nvarchar(50),sex bit,)asupdate tb_userInfoSet userid=userid,userpass=userpass, sex=sex,age=age,college=college,class=classwhere id=iddelete from administer where id=id5.2、触发器设计(1) 、为 kaike(开课) 表创建一个更新触发器,只允许操作表中的课程开设项目设计,当对数据表进行修改时,触发器被激活生效。程序代码:creat
25、e trigger kaike_upon kaike for updateasif update(kaike_Name)beginraiserror(cannt modify,16,1)rollback transactionendif update(kaike_Name)beginraiserror(cannt modify,16,1)rollback transactionend(2) 、为课程表(kc )建立一个插入触发器,当用户向表中插入记录时,如果插入的是课程表中没有的课程编号则提示用户不能插入记录,否则提示插入成功。请进行测试。create trigger kc_inon kc f
26、or insertasdeclare a char(10)select a=cno from insertedifexists(select * from sc where cno=a)5.3、视图创建(1) 、在学生部分,当学生查看实验成绩时创建视图,如下表SC 表: sno cno grade S1 C1 90 S1 C2 80 S1 C3 77视图代码:create view cs_grade as select s.sno,s.sname,o,sc.grade,s.sdept ,s.sagefrom student s,sc sc where s.sno=sc.sno(2) 、学生与课
27、程项目成绩之间的视图create view v1AS select t1.Stu_Name,网络=max(case when Course_ID=N网络 then C_score end),数学=max(case when Course_ID=N数学 then C_score end),英语=max(case when Course_ID=N英语 then C_score end),from t1 left join t2 on t1.Stu_ID=t2.Stu_ID group by t1.Stu_NameGo select * from v15.4、数据库连接string str = “s
28、erver=MENG;database=Shiyan;uid=sa;pwd=123“;SqlConnection con = new SqlConnection(str);con.Open(); 5.5、数据库在后台运用5.5.1、界面登录数据库部分string strsql = “select * from Administer where User_Name=“ + TextBox1.Text.ToString() + “and Pwd =“ + TextBox2.Text.ToString() + “and Limit =“ + DDL.SelectedValue + “;5.5.2、实
29、验室部分数据库核心部分:Tring sqlstr = “insert into Equipment (Equip_Name,Equip_Kind,Equip_Price,Equip_Status,Buy_Datime,Equip_Memo) values(“ + TT3.Text.Trim() + “,“ + TT4.Text.Trim() + “,“ + TT5.Text.Trim() + “,“ + TT6.Text.Trim() + “,“ + TT7.Text.Trim() + “,“ + TT8.Text.Trim() +“)“ 6、 结论6.1、数据库中常见问题6.11、数据库的完
30、善问题这个问题一直伴随我最终完成系统设计。由于模块不同,各模块要调用的表不同,因此对每个表的要求也不同,有时候数据库存在的问题并不能马上被发觉,而是随着设计的深入而逐渐暴露出来。所以数据库从始至终都在进行着不断完善和大大小小的改动,直至最终数据库得以完善。6.12、页面与数据库连接的问题由于是自己第一次比较系统的做这类课题,所以没什么经验,在设计中有相当长的时间在处理这一问题。在尝试了多次失败之后,发现问题所在。原来页面在先前的编写中没有建 Form,这样就不能传递值。6.2、整个设计过程 此实验教学管理系统历时二个月已基本完成了,完成了实验教学管理的基本功能,对管理员用户添加、修改和删除,以
31、及对学生实验项目、课程等进行添加、修改和删除的功能、对学生的基本信息进行修改,添加新的学生信息以及添加用户名,修改学生密码以及个人资料查看、成绩查看的功能。参考文献1郑耀东,数据库设计,北京:清华大学出版社,2010 年 2 月2萨师煊,王珊.数据库系统概论M.北京:高等教育出版社.20003殷泰晖,数据库精通设计,电子工业出版社,2007:100120 4萨师煊等.数据库系统概论M.高等教育出版社,20015严蔚敏等.数据结构M.清华大学出版社,20016金雪云、汪文彬,ASP.NET 简明教程,北京:清华大学出版社,2008 年 12 月致 谢这次毕业设计能成功完成,要特别感谢给予我帮助的同事和爱好编程开发的朋友们,他们在我的整个设计过程中给我提供了大量的技术指导和实践机会。衷心的感谢你们!