1、培训信息管理系统数据库原理课程设计文档班 级: 09计科3班指导老师: 石俊萍日 期 2012/10/28 摘 要 目前,中国经济发展的速度在不断加快,需要大量高素质的人才,投入到国家经济以及各个方面的建设工作中去;但目前中国自身拥有的高素质人才远远不能满足这些方面发展的需要。因此,为了适应这快速发展的社会以及促进就业,出现了越来越多的培训机构,诸如IT培训,英语培训等等。而随着培训机构规模的越来越大,学员的越来越多,针对这些培训机构的人员,信息的管理就成为了头等大事。传统的培训机构信息的管理是通过专门的工作人员通过纸质文档记录的,这样显得既不科学有容易出错。要想充分地科学地利用培训机构的资源
2、,就需要有培训信息管理系统来提高对培训机构人员、信息的管理。 本系统是使用Microsoft Visual Studio 2010、Microsoft SQL Server 2005开发的面向对象的数据库培训信息管理系统,主要用于培训信息的管理.其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。力求界面友好,操作简单,易学易用,从总体上达到该软件所需的目标要求.关键词:培训信息管理系统;数据库信息管理系统;Microsoft Visual Studio 2010AbstractAt present, Chinas economic development speed is a
3、ccelerating, need a large number of high-quality talents, devotion to the national economy and all aspects of the construction work, But the present China itself has the high quality talented person far cannot satisfy the needs of the development of these areas。 Therefore, in order to adapt to the r
4、apid development of society and promote employment, appeared more and more training institutions, such as IT training, English training, etc。 But along with the size of the training institution is more and more big, the students more and more, in view of these training institutions of personnel, inf
5、ormation management become the top priority。 The traditional training institutions information management is through the specialized work personnel through the paper document record, this is neither safe and not science. If you want to fully scientific use of the resources of the training institutio
6、ns, it needs to have a training information management system to improve the training institutions personnel, information management。 This system is to use Microsoft Visual Studio 2010, Microsoft SQL Server 2005 development of objectoriented database information management system, mainly for the stu
7、dents course selection information management。 Its development mainly includes the backstage database the establishment and the maintenance as well as front end the application procedure development two aspects。 Strive to friendly interface, simple operation, easy to use, from on the whole to achiev
8、e the goal of the software requirements。Key words:Training information management system;The database information management system ;Microsoft Visual Studio 2010第一章 前 言1.1 选题背景近年来,中国培训业进入了一个快速发展的时期,IT培训、英语培训、管理精英培训等专门人才的培训机构层出不穷,已形成校园外教育的支柱产业。随着培训教育业数量稳步增长、规模越来越大,培训教育业的竞争日益激烈,人们对培训教育业的业务管理的现代化、科学化和规
9、范化有了新的要求,在这样的背景下,我们设计并开发了基于ASP。NET和SQL Server 的“培训信息管理系统”。ASP.net是基于通用语言的编译运行的程序,可以使它运行在Web应用软件开发者的几乎全部的平台上通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP。net的Web应用中。ASP。net同时也是languageindependent(语言独立化)的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C+和Java的结合体),VB,Jscript , C+、F+.将来,这样的多种程序语言协同工作的能力保护您现在的基
10、于COM+开发的程序,能够完整的移植向ASP。net。Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。Microsoft SQL Server 2005 数据库引擎能够为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序.1.2 系统简介本系统主要是针对培训机构而开发的小型的培训信息管理系统。该系统主要包括学籍管理、课程管理、班级管理、专业管理、教师管理、成绩管理等模块.其中:学籍管理主要包括添加学籍信息,查询学籍信息,修改学籍信息和删除学籍信息等.课程
11、管理主要包括添加课程信息,查询课程信息,修改课程信息和删除课程信息等。班级管理主要包括添加班级信息,查询班级详细信息,修改班级信息和删除班级信息等.专业管理主要包括添加专业信息,查询专业信息,修改专业信息和删除专业信息等。教师管理主要包括添加教师信息,查询教师信息,修改教师信息和删除教师信息等。成绩管理主要包括添加成绩信息,查询成绩信息,修改成绩信息和删除成绩信息等.本系统的用户分为学生,教师,管理员三种不同的用户,每种用户对该系统的操作权限有所不同,其中学生只能是查看各种信息,教师可以编辑信息,管理员不仅可以查看,编辑各种信息还可以对用户进行审核。1.3 系统目标本系统运用现有的软硬件资源及
12、科学的系统开发方案,建立培训信息管理系统,实现对培训机构业务的现代化。系统应符合一般培训机构的业务管理规范,并达到操作直观、方便、实用、安全等要求。第二章 需求分析2。1 调查用户需求本系统的最终用户分为教师,学生和管理员。根据我们日常学习生活中的经验,结合对相关资料的了解,得出用户的下列实际要求:2.1.1 培训信息管理系统的基本情况培训信息管理系统包括学籍管理、课程管理、班级管理、专业管理、教师管理成绩管理、系统管理等学生可以在培训信息管理系统上查看相关的信息,教师和管理员可以查看、添加、修改、删除相关的信息。(1)学生的基本信息 参加培训时,每位同学都有唯一的学号,还包括姓名、性别、出生
13、日期、班级、入学年份、学籍编号、政治面貌、身份证号码、名族、家庭地址、照片等.只有教师和管理员才可以添加,修改和删除学生的信息。 (2)教师的基本信息每个教师都有唯一的教师编号,还包括姓名,性别,任教的专业,该教师的介绍以及备注等信息.学生和教师可以查看教师的信息,管理员可以添加,修改,删除教师的信息(3) 课程的基本信息 课程包括课程编号,课程名称,班级名称,学时,课程描述等信息。教师和管理员可以添加,修改和删除课程的信息,学生只能查看课程的信息 (4)班级的基本信息 班级信息包括班级编号,专业,教师,班级名称,分配的教室,开班的时间,结束的时间,备注等信息。只有教师和管理员才可以添加,修改
14、和删除班级的信息 (5)专业的基本信息 不同的专业具有不同的编号,不同的专业名称和专业描述。只有教师和管理员才可以添加,修改和删除专业的信息 (6)学生成绩的基本信息 学生,教师,管理员都可以查看学生的成绩,学生的成绩包括学生的编号,学生的姓名,课程的名称,该课程的成绩和备注等信息。教师和管理员可以编辑学生的成绩。(7)系统的基本信息 不同的用户都可以修改自己的密码,也可以更改用户。2.1.2用户对系统的要求一、学生: a。信息要求:学生可以查看全部学生的信息,也可以按添加查询学生的信息,可以查看教师的信息,专业的信息,班级的信息,成绩的信息和课程的信息.b。处理要求:当学生需要用到自己相应的
15、信息时可以通过数据导入到Excle表。学生只能到相关的信息进行查询不能进行其他操作。c安全性与完整性要求:安全性要求:1.系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;3。系统应对不同用户设置不同的权限,区分不同的用户,如学生,教师和管理员。学生,教师,管理员都可以锁定窗口,只有重新输入密码才可以继续操作。完整性要求:1.各种信息记录的完整性,信息记录内容不能为空;2。各种数据间相互的联系的正确性;3。相同的数据在不同记录中的一致性。二、教师: a。信息要求:教师
16、能查询该系统的所有相关的信息,并且能编辑出其他教师以为的一切的信息。b。处理要求:如果有学生离校,教师能够删除该学生的信息,如果有学生的信息发生变动的时候,教师也可以重新编辑该学生的信息。如果该培训机构新增加了专业,教师也可以添加专业,当有专业发生变动的时候,教师也可以编辑其内容。每个专业配备了不同的教师。不同的教师可以新开班级或者编辑自己班级的信息.三、管理员: a。信息要求:管理员能查询,编辑所有的信息。查看用户信息,修改用户信息,新增用户信息。b.处理要求:如果有学生离校,管理员能够删除该学生的信息,如果有学生的信息发生变动的时候,管理员也可以重新编辑该学生的信息。如果该培训机构新增加了
17、专业,管理员也可以添加专业,当有专业发生变动的时候,管理员也可以编辑其内容。每个专业配备了不同的教师。管理员可以班级信息。管理员可以修改用户信息,信息用户,修改用户等级.当有教师离职的时候,管理员可以删除该教师的信息。当有教师的信息发生变动的时候,管理员也可以修改其信息。2。2系统功能的设计和划分根据如上得到的用户需求,我们将本系统按照所完成的功能分成以下几部分:第一部分:学生管理部分第二部分:教师管理部分第三部分:管理员管理部分各部分完成的功能如下:2.2.1学生管理部分1、学生可以查看学生信息。 2、学生可以查看所有课程信息。 3、学生可以查看所有班级信息. 4、学生可以查看所有专业信息。
18、 5、学生可以查看所有教师信息。 6、学生可以查看成绩. 7、学生可以修改自己的密码、更改用户。2。2.2教师管理部分 1、教师可以查看、添加、修改、删除学生信息。 2、教师可以查看、添加、修改、删除课程信息。 3、教师可以查看、添加、修改、删除班级信息。 4、教师可以查看、添加、修改、删除专业信息。5、教师可以教师信息. 5、教师可以查看、添加、修改、删除成绩信息。 6、教师可以修改自己的密码、更改用户2.2。3管理员管理部分 1、管理员可以查看、添加、修改、删除学生信息。 2、管理员可以查看、添加、修改、删除课程信息。 3、管理员可以查看、添加、修改、删除班级信息。 4、管理员可以查看、添
19、加、修改、删除专业信息。5、管理员可以查看、添加、修改、删除教师信息。 5、管理员可以查看、添加、修改、删除成绩信息。 6、管理员可以修改自己的密码、更改用户、审核用户信息等。2。3 数据字典2。3。1数据项用户类型数据字典:属性名存储代码类型长度备注类型编号TYPENOchar1用户类型编号类型名称TYPENAMEvarchar10用户类型名称用户信息数据字典:属性名存储代码类型长度备注用户名称USERNAMEvarchar20用户类型编号TYPENOchar1用户密码USERPWDvarchar20用户身份COMMENTvarchar200教师信息数据字典:属性名存储代码类型长度备注教师编
20、号TEACHERNOvarchar10主键专业编号PROFESSIONNOvarchar10外键性别编号SEXNOchar1外键姓名TEACHERNAMEvarchar20教师介绍TEACHERDESCvarchar200备注COMMENTvarchar200允许为空学生信息数据字典:属性名存储代码类型长度备注学生学号STDIDvarchar10主键名族编号NATIONNOchar2外键专业编号PROFESSIONNOvarchar10外键政治面貌编号POLITICSNOchar1群众、团员、预备党员、党员性别编号SEXNOchar1外键班级编号CLASSNOvarchar10外键学生姓名ST
21、DNAMEvarchar20生日BIRTHDAYdatetime身份证号码SICvarchar20地址ADDRESSvarchar50照片PHOTONAMEvarchar50电话telvarchar20备注COMMENTvarchar200允许为空性别数据字典:属性名存储代码类型长度备注性别编号SEXNOchar1主键性别SEXNAMEvarchar20男、女成绩数据字典:属性名存储代码类型长度备注学生学号STDIDvarchar(10)10主键课程编号COURSENOvarchar(10)10主键成绩MARKnumeric(2, 0)成绩备注COMMENTvarchar(200)200允许为
22、空专业数据字典:属性名存储代码类型长度备注专业编号PROFESSIONNOvarchar10主键专业名称PROFESSIONNAMEvarchar20备注PROFESSIONDESCvarchar200允许为空政治面貌数据字典:属性名存储代码类型长度备注政治面貌编号POLITICSNOchar1政治面貌POLITICSNAMEvarchar10名族数据字典:属性名存储代码类型长度备注名族编号NATIONNOchar2名族NATIONNAMEvarchar10课程信息数据字典:属性名存储代码类型长度备注课程编号COURSENOvarchar10课程名称COURSENAMEvarchar10班级编
23、号CLASSNOvarcha20学时COURSEDAYSnumeric课程介绍COURSEDESCvarcha200班级信息数据字典:属性名存储代码类型长度备注班级编号CLASSNOvarchar10班级名称CLASSNAMEvarchar10专业编号PROFESSIONNOvarchar10班主任TEACHERNOvarchar20教室CLASSROOMvarchar20开课时间STARTTIMEdatetime结束时间ENDTIMEdatetime备注COMMENTvarchar2002.3。2数据结构数据结构名组成用户类型类型编号,类型名称(学生,教师,管理员)用户信息用户名称,用户类型
24、编号,密码,用户身份教师信息教师编号,姓名,专业编号,性别编号,介绍,备注学生信息学生学号,名族编号,专业编号,政治面貌编号,性别编号,班级编号,姓名,生日,身份证号,地址,照片,电话,备注性别性别编号,性别政治面貌政治面貌编号,政治面貌成绩学生学号,课程编号,成绩,备注专业专业编号,专业名称,备注名族名族编号,名族课程课程编号,课程名称,班级编号,学时,课程介绍班级班级编号,班级名称,专业编号,班主任,教室,开课时间,结束时间,备注2。3.3数据流数据流名数据流来源数据流去向组成登记学生信息教师,管理员学生信息表学生信息查询学生信息学生信息表学生,教师,管理员学生信息修改学生信息教师,管理员
25、学生信息表学生信息删除学生信息教师,管理员学生信息表学生信息查询课程信息课程表学生,教师,管理员课程信息添加课程信息教师,管理员课程表课程信息修改课程信息教师,管理员课程表课程信息删除课程信息教师,管理员课程表课程信息查询班级信息班级表学生,教师,管理员班级信息添加班级信息教师,管理员班级表班级信息修改班级信息教师,管理员班级表班级信息删除班级信息教师,管理员班级表班级信息查询专业信息专业表学生,教师,管理员专业信息添加专业信息教师,管理员专业表专业信息修改专业信息教师,管理员专业表专业信息删除专业信息教师,管理员专业表专业信息查询教师信息教师表学生,教师,管理员教师信息添加教师信息管理员教师
26、表教师信息修改教师信息教师,管理员教师表教师信息删除教师信息管理员教师表教师信息查询成绩成绩表学生,教师,管理员成绩添加成绩教师成绩表成绩修改成绩教师,管理员成绩表成绩删除成绩教师,管理员成绩表成绩修改密码学生,教师,管理员用户信息表修改密码更改用户学生,教师,管理员用户信息表切换用户2.3.4数据存储数据存储名输入的数据流输出的数据流组成学生信息表新录入的学生信息学生信息学生信息专业信息表专业信息专业信息专业信息班级信息表班级信息班级信息班级信息教师信息表新入职的教师离职的教师教师信息教师信息2。3。5处理过程处理过程名输入数据流输出数据流查询学生信息学生编号,姓名学生详细信息更改学生信息学
27、生信息学生信息查询教师信息教师信息教师信息查询专业信息专业信息专业信息查询班级信息班级信息班级信息查询课程信息课程信息课程信息更改课程信息课程信息课程信息更改班级信息班级信息班级信息更改专业信息专业信息专业信息更改教师信息教师信息教师信息第三章 系统概要设计本部分的总目标是根据需求分析说明书设计ER图第四章 逻辑与物理设计4。1 ER图转换为关系模式原则一个实体型转换为一个关系模式,实体的属性就是关系模式的属性,实体的码就是关系的码。一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为
28、关系的属性,每个实体的码均是该关系的候选码,如果与某一端实体对应的关系模式合并.则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。一个m:n联系转换为一个关系模式,与该关系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合.4.2 关系模式根据ER图转换为关系模式原则得到的关系模式如下:学生(学生学号,名族编号,专业编号,政治面貌编号,性别编号,班级编号,姓名,生日,身份证号,地址,照片,电话,备注)教师(教师编号,姓名,专业编号,性别编号,介绍,备注)用户类型(类型编号,类型名称)用户信息(用户名称,用户类型,密码,身份)性别(性别编号,性别)成
29、绩(学生学号,课程编号,成绩,备注)专业(专业编号,专业名称,备注)政治面貌(政治面貌编号,政治面貌)名族(名族编号,名族)课程(课程编号,课程名称,班级编号,课程介绍,备注)班级(班级编号,班级名称,专业编号,班主任,教室,开课时间,结束时间,备注)(下划线标注的属性为主码)4.3相关数据库代码4.3.1:登录,建数据库,做好备份建数据库命令: create database ITjobDataBaseon ( name=ITjobDataBase_date, filename=c:sql2005ITjobDataBase。mdf, size=10mb, maxsize=100mb, fil
30、egrowth=1mb ) ( name=ITjobDataBase1_date, filename=c:sql2005ITjobDataBase。ndf, size=10mb, maxsize=100mb, filegrowth=1mb )4。3。2授权与回收授权 :把查询studentinfo表的权限给用户u1grant selecton table studentinfoto u1;回收:把用户u2对studentinfo表的insert权限收获revoke inserton table studentinfofrom u2 cascade;4。3。3:各表间的外键关系及约束部分代码:A
31、LTER TABLE dbo。STUDENTINFO WITH CHECK ADD CONSTRAINT FK_STUDENTINFO_SEXINFO FOREIGN KEY(SEXNO)REFERENCES dbo。SEXINFO (SEXNO)4。3。4:视图教师信息视图(教师编号,教师姓名,性别,专业名称,教师介绍,备注)CREATE VIEW teacherViewAsSELECT dbo.TEACHER。TEACHERNO AS 教师编号, dbo.TEACHER.TEACHERNAME AS 教师姓名, dbo。SEXINFO。SEXNAME AS 性别, dbo。PROFESSI
32、ON.PROFESSIONNAME AS 专业名称, dbo.TEACHER.TEACHERDESC AS 教师介绍, dbo.TEACHER.COMMENT AS 备注FROM dbo.PROFESSION INNER JOINdbo。TEACHER ON dbo。PROFESSION。PROFESSIONNO = dbo。TEACHER.PROFESSIONNO INNER JOINdbo.SEXINFO ON dbo。TEACHER。SEXNO = dbo.SEXINFO。SEXNO学生信息视图(学生编号,姓名,性别,班级编号,专业,身份证号,电话号码,出生日期,政治面貌,名族,家庭地址
33、,相片,相片路径,是否删除)相应SQL语言如下:CREATE VIEW teacherViewAsSELECT dbo。STUDENTINFO.STDID AS 学生编号, dbo.STUDENTINFO。STDNAME AS 姓名, dbo.SEXINFO。SEXNAME AS 性别, dbo。CLASSINFO.CLASSNAME AS 班级, dbo。PROFESSION。PROFESSIONNAME AS 专业, dbo。STUDENTINFO。SIC AS 身份证, dbo.STUDENTINFO。tel AS 电话号码, dbo。STUDENTINFO.BIRTHDAY AS 出生
34、日期, dbo。POLITICSSTATUS。POLITICSNAME AS 政治面貌, dbo。NATION.NATIONNAME AS 民族, dbo.STUDENTINFO。ADDRESS AS 家庭地址, dbo.STUDENTINFO.COMMENT AS 备注, dbo.STUDENTINFO.PHOTO AS 相片, dbo.STUDENTINFO.PHOTONAME AS 相片路径, dbo.STUDENTINFO.isdeletedFROM dbo.CLASSINFO INNER JOINdbo。PROFESSION ON dbo。CLASSINFO。PROFESSIONNO
35、 = dbo.PROFESSION。PROFESSIONNO INNER JOINdbo。STUDENTINFO ON dbo。CLASSINFO。CLASSNO = dbo.STUDENTINFO.CLASSNOANDdbo。PROFESSION。PROFESSIONNO = dbo.STUDENTINFO。PROFESSIONNO INNER JOINdbo。POLITICSSTATUS ON dbo。STUDENTINFO.POLITICSNO = dbo.POLITICSSTATUS.POLITICSNO INNER JOINdbo。NATION ON dbo.STUDENTINFO.
36、NATIONNO = dbo。NATION.NATIONNO INNER JOINdbo。SEXINFO ON dbo。STUDENTINFO.SEXNO = dbo.SEXINFO。SEXNOWHERE (dbo。STUDENTINFO。isdeleted = 0)成绩信息视图(学生编号,姓名,课程名词,分数,备注)相应SQL语言如下:CREATE VIEW teacherViewAsSELECT dbo.RESULTINFO。STDID AS 学生编号, dbo。STUDENTINFO。STDNAME AS 姓名, dbo.COURSEINFO.COURSENAME AS 课程名称, db
37、o.RESULTINFO.MARK AS 成绩分数, dbo。RESULTINFO。COMMENT AS 备注FROM dbo。RESULTINFO INNER JOINdbo。STUDENTINFO ON dbo.STUDENTINFO.STDID = dbo.RESULTINFO.STDID INNER JOINdbo.COURSEINFO ON dbo。RESULTINFO。COURSENO = dbo。COURSEINFO。COURSENO4.3.5:存储过程得到所有学生信息的存储过程如下:Ifexists(select*from dbo.sysobjects whereid = ob
38、ject_id(Ndbo。sp_STUDENTINFO_GetAllList) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure dbo。sp_STUDENTINFO_GetAllListGOCREATE PROCEDURE sp_STUDENTINFO_GetAllListASSELECT STDID, NATIONNO, PROFESSIONNO, POLITICSNO, SEXNO, CLASSNO, STDNAME, BIRTHDAY, SIC, ADDRESS, PHOTO, PHOTONAME, COMMENT, tel
39、, isdeletedFROM STUDENTINFOGO根据学生编号查询单个学生信息的存储过程如下:if exists (select from dbo。sysobjects where id = object_id(Ndbo.sp_STUDENTINFO_GetModel) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure dbo.sp_STUDENTINFO_GetModelGOCREATE PROCEDURE sp_STUDENTINFO_GetModel STDID varchar(10)ASSELECT STDID, N
40、ATIONNO, PROFESSIONNO, POLITICSNO, SEXNO, CLASSNO, STDNAME, BIRTHDAY, SIC, ADDRESS, PHOTO, PHOTONAME, COMMENT, tel, isdeletedFROM STUDENTINFOWHERE STDID = STDIDGO第五章 系统实现及测试用户登陆:登陆后的主页面:学生信息查询:可以把查询到的信息直接导出到Excle表,相应的实现代码如下:SaveFileDialog save = newSaveFileDialog();save。Title = 保馈?存?到?Excle”;save。Ch
41、eckPathExists = true;save.AddExtension = true;save。DefaultExt = ”Excle文?件t|.xls;save.Filter = Excle文?件t。xls”;save.InitialDirectory = ”C:;if (save。ShowDialog() = DialogResult。OK) Stream sm = save。OpenFile();StreamWriter sw = newStreamWriter(sm, Encoding.GetEncoding(0);try string strcolumn = ”;for (in
42、t i = 0; i 0) strcolumn += ”t”; strcolumn += studentsDataGridView。Columnsi。HeaderText; sw.WriteLine(strcolumn);for (int j = 0; j studentsDataGridView.RowCount; j+) string strRow = ”;for (int k = 0; k studentsDataGridView.ColumnCount; k+) if (k 0) strRow += t; strRow += studentsDataGridView。Rowsj。Cellsk.Value; sw。WriteLine(strRow); catch (Exception ex) MessageBox。Show(ex。Message); finally