您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数据库 学生宿舍管理系统
宁夏大学物理电气信息学院综合性实验实验报告课程名称实验学期至学年第学期学生所在系年级专业班级学生姓名学号任课教师实验成绩任课教师制2012年6月10日《数据库应用》综合性实验报告第2页共17页实验题目学生宿舍管理系统一、实验目的随着人类社会进入信息时代,计算机越来越多的活跃在社会各个领域,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,面对庞大的信息量,需要有学生信息管理系统来提高学生管理工作的效率,通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。针对现今学校管理学生的特点,我决定建立学生宿舍管理系统,。本系统主要包括学生信息的管理,学生宿舍的管理及宿舍内部管理,其中每项信息管理功能模块都包扩对信息的录入,修改,删除和查询。二、实验环境软件:SQLServer2008硬件:windows2007三、实验内容1、需求分析通过调查,要求学生宿舍管理系统需要有以下功能:⑴较好的权限管理;⑵原始数据修改简单方便,支持多条件修改;⑶方便的数据查询,支持多条件查询;⑷相应的权限下,删除数据方便简单,数据稳定性好;⑸数据计算自动完成,尽量减少人工干预;2、数据库设计①首先创建一个数据库系统:创建学生宿舍管理系统《数据库应用》综合性实验报告第3页共17页程序如下:createdatabase学生宿舍管理系统on(name=学生宿舍管理系统,filename='D:\学生宿舍管理系统.mdf',size=10,maxsize=50,filegrowth=5)logon(name=学生宿舍管理系统_log,filename='D:\学生宿舍管理系统.ldf',size=5mb,maxsize=25mb,filegrowth=5mb)下图为创建好的数据库管理系统界面:②数据库系统创建好后,向数据库系统中添加自己需要的表。本系统设置三个表,分别为学生信息表、住宿信息表及宿舍成员表,通过这三个表对学生的信息进行管理,可以对学生信息进行查询、修改等各种操作。接下来分析各个表格的具体内容:学生信息表:《数据库应用》综合性实验报告第4页共17页字段名类型备注学号int姓名nvarchar(10)性别bit院部nvarchar(10)出生日期date注册日期date住宿信息表:字段名类型备注楼栋编号int宿舍号int宿舍容量int楼管nvarchar(10)宿舍成员表:字段名类型备注学号int宿舍号int目前人数int寝室长nvarchar(10)了解了各个表的信息之后,就要在学生宿舍管理系统中依次添加这三个表,添加表的方法可以有两种方法,可以直接在管理系统中操作,也可以用SQL语句完成表的添加。《数据库应用》综合性实验报告第5页共17页学生信息表的创建:SQL语句如下:use学生宿舍管理系统createtable学生信息表(学号int,姓名nvarchar(10),性别bit,院部nvarchar(10),出生日期date,注册日期date,)住宿信息表的创建:SQL语句如下:use学生宿舍管理系统createtable住宿信息表(楼栋编号int,宿舍号int,宿舍容量int,楼管nvarchar(10),)《数据库应用》综合性实验报告第6页共17页宿舍成员表的创建:SQL语句如下:use学生宿舍管理系统createtable宿舍成员表(学号int,宿舍号int,目前人数int,寝室长nvarchar(10),)《数据库应用》综合性实验报告第7页共17页③表创建完后,向表中添加内容,添加内容也有两种方法,直接在表中打开前100或者前200行进行编辑,同时也可用SQL语句往表中添加内容。学生信息表中添加内容:SQL语句格式如下:insertinto学生信息表(学号,姓名,性别,院部,出生日期,注册日期)values('01','***','0','***','1991-3-01','2008-02-3')按照此程序语句向学生信息表中添加所需的学生信息住宿信息表中添加内容:SQL语句格式如下:insertinto住宿信息表(楼栋编号,宿舍号,宿舍容量,楼管)values('3','420','6','**')《数据库应用》综合性实验报告第8页共17页宿舍成员表中添加内容:SQL语句格式如下:insertinto宿舍成员表(学号,宿舍号,目前人数,寝室长)values('01','325','4','李广')《数据库应用》综合性实验报告第9页共17页3、创建视图创建视图可以使用两种方式,一种是使用SQLServerManagementStudio向导进行创建,另一种是使用SQL语句。在本系统中可以创建如下两个视图:①‘宿舍人数一览表’,此视图的作用是查看宿舍内部成员数、所在的楼栋号、楼管等跟宿舍有关的内容,可以很快知道宿舍的位置及所缺的人数,帮助学校工作人员查看。使用SQLServerManagementStudio创建视图:直接在所创建的学生宿舍管理系统的界面下进行操作,这样就可以得到所需的视图,主要过程如下:使用SQL语句创建:SQL语句如下CREATEView[dbo].[宿舍人数一览表]ASSELECTdbo.宿舍成员表.宿舍号,dbo.宿舍成员表.目前人数,dbo.宿舍成员表.寝室长,dbo.住宿信息表.楼栋编号,dbo.住宿信息表.宿舍容量,dbo.住宿信息表.楼管FROMdbo.宿舍成员表INNERJOINdbo.住宿信息表ONdbo.宿舍成员表.宿舍号=dbo.住宿信息表.宿舍号《数据库应用》综合性实验报告第10页共17页如上所示,分别用两种方法创建了视图,此视图的查询结果如下,两种方法创建的视图都可以看出每个宿舍现在所住的人数和容量,以及各个宿舍所在的楼栋号及楼管,这样很方便就可以查询到所需的宿舍具体信息。②‘学生具体信息表’,此视图的功能更强大,除了能查到宿舍的信息外还能查到学生的具体信息。此视图的创建过程如上其SQL语为:《数据库应用》综合性实验报告第11页共17页CREATEView[dbo].[学生具体信息表]ASSELECTdbo.学生信息表.学号,dbo.学生信息表.姓名,dbo.学生信息表.性别,dbo.学生信息表.院部,dbo.学生信息表.出生日期,dbo.住宿信息表.楼栋编号,dbo.宿舍成员表.宿舍号,dbo.宿舍成员表.寝室长FROMdbo.宿舍成员表INNERJOINdbo.学生信息表ONdbo.宿舍成员表.学号=dbo.学生信息表.学号INNERJOINdbo.住宿信息表ONdbo.宿舍成员表.宿舍号=dbo.住宿信息表.宿舍号此视图的运行结果如下:《数据库应用》综合性实验报告第12页共17页4、建立索引索引是一种数据表中的对象,它是为了实现快速查找数据而设计的。在查找大量数据时,有了索引就会快很多,但设计不当的索引也会影响数据查找的效率。所以本系统对学生信息表中的院部建立索引:其SQ语句为createclusteredindexIX_学生信息表_院部on学生信息表(院部asc)资源管理器的界面为:5、建立触发器触发器是由操作触发执行的存储过程,它将在一些条件满足时自动执行操作。触发器可以完成数据检测、同步数据等很多需要自动维护的操作,触发器是一种特殊的存储过程。它在对表中的记录执行特定的操作(如插入、更新、删除)时被执行,也可以响应系统操作(如删除表、删除库)。对于此系统建立以下两个触发器,分别为:①‘姓名更新触发’:对表学生信息表建立触发器,当《数据库应用》综合性实验报告第13页共17页姓名字段修改时要把注册日期字段的日期改为当前日期。此触发器的功能是如果更新了学生信息表中学生的姓名,则会将表中注册日期这个字段更新为当前日期。其SQL语句为:createtrigger姓名更新触发on学生信息表afterupdateasbeginifupdate(姓名)update学生信息表set注册日期=getdate()from学生信息表,insertedwhere学生信息表.学号=inserted.学号end过程验证:如截图中所示,当把学号为02号的学生的姓名改为王丽丽时,触发器将注册日期改为当前日期2012-6-17,而其余的注册时间均为2008-02-03,所以可以验证此触发器可正常工作。②‘宿舍号更新触发’:对表宿舍成员表建立触发器,当宿舍号字段修改时要把学生信息表中的注册日期字段的日期改为当前日期,此触发器的功能是当对宿舍成员表中某一学号的学生的宿舍号这个字段进行修改时,则会触发触发器,将学生信息表中的注册日期字段修改为当前日期,这个《数据库应用》综合性实验报告第14页共17页触发器关系到两个表的联合触发,其SQL语句如下:createtrigger宿舍号更新触发on宿舍成员表afterupdateasbeginifupdate(宿舍号)update学生信息表set注册日期=getdate()from学生信息表,insertedwhere学生信息表.学号=inserted.学号end触发器验证:当对宿舍成员表中学号为05号的学生修改宿舍号为324时,触发器工作,将学生信息表中05学生的注册日期自动修改为当前日期,而其余的学生的注册日期没变6、建立存储过程存储过程是预先编写好的一段SQL程序,它完成了很多原本需要在客户端执行的逻辑操作,对于提高整个系统的运行效率起到了很大的作用,在本系统中创建了一个存储过程,完《数据库应用》综合性实验报告第15页共17页成查询某个学生的信息,查询成功后返回姓名、中文表示的性别以及所在的院部信息。其SQL语句为:createprocedurefind1@numvarchar(20)asbegindeclare@svarchar(200)declare@ch1varchar(2),@ch2varchar(2)set@ch1='男'set@ch2='女'set@s='select学生信息表.学号,姓名,case性别when0then'''+@ch2+'''when1then'''+@ch1+'''end,院部from学生信息表innerjoin宿舍成员表on学生信息表.学号='''+@num+'''and学生信息表.学号=宿舍成员表.学号'exec(@s)end下图为存储过程创建成功后的截图:存储过程创建成功后,用execfind1'02'SQL语句验证:当查询《数据库应用》综合性实验报告第16页共17页02号学生的信息是查询到汉字的性别。四、实验结果及分析此实验最终的设计结果截图为:《数据库应用》综合性实验报告第17页共17页此设计实验中,建立了学生宿舍管理系统,在此系统中建立了三个表,分别为学生信息表,宿舍成员表及住宿信息表。此实验的建立中,运用到数据库系统、表、视图、索引的建立方法,分别有两种方法,即使用SQLServerManagementStudio创建和使用SQL语句创建,SQL语句分别已经在数据库设计过程中写到。还运用到触发器和存储过程的建立方法,分别要运用到特定的SQL语句。此次数据库的建立取得了较好的成绩,积累了一些经验,能够与同学进行交流,探讨,我感到非常荣幸。我在学习的过程中对自己要有信心。一个人能力发挥的程度并不完全取决于周围环境,而在很大程度上决定于自身的努力。我们并不比别的学校的同学差,只要我们努力,我们同样可以取得更好的成绩。下面我将自己在学习方法方面的一些心得体会说一下。我们不论学习哪一科,都应该把老师上课讲的重点内容记录下来,尤其是细节方面的知识,学习SQL也是如此。上课时要注意听讲,因为上课老师会把基础知识和考试的重点都指出来,这不仅为我们这一科的学习做准备,也为以后学习其他专业课养成良好的习惯。对于老师上课讲的知识多理解是学好这门课的关键。教师评价评价教师签名:年月日
本文标题:数据库 学生宿舍管理系统
链接地址:https://www.777doc.com/doc-4798080 .html