数据库 学生宿舍管理系统.doc_第1页
数据库 学生宿舍管理系统.doc_第2页
数据库 学生宿舍管理系统.doc_第3页
数据库 学生宿舍管理系统.doc_第4页
数据库 学生宿舍管理系统.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库应用综合性实验报告宁夏大学物理电气信息学院综合性实验实验报告课程名称 实验学期 至 学年 第 学期学生所在系 年 级 专业班级 学生姓名 学 号 任课教师 实验成绩 任课教师 制2012 年 6 月 10 日实验题目学生宿舍管理系统一、 实验目的随着人类社会进入信息时代,计算机越来越多的活跃在社会各个领域,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,面对庞大的信息量,需要有学生信息管理系统来提高学生管理工作的效率,通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。针对现今学校管理学生的特点,我决定建立学生宿舍管理系统,。本系统主要包括学生信息的管理,学生宿舍的管理及宿舍内部管理,其中每项信息管理功能模块都包扩对信息的录入,修改,删除和查询。二、 实验环境软件:SQL Server 2008硬件:windows 2007三、 实验内容1、 需求分析通过调查,要求学生宿舍管理系统需要有以下功能: 较好的权限管理; 原始数据修改简单方便,支持多条件修改; 方便的数据查询,支持多条件查询; 相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预;2、 数据库设计 首先创建一个数据库系统:创建学生宿舍管理系统程序如下:create database 学生宿舍管理系统on (name=学生宿舍管理系统,filename=D: 学生宿舍管理系统.mdf,size=10,maxsize=50,filegrowth=5)log on(name=学生宿舍管理系统_log,filename=D: 学生宿舍管理系统.ldf,size=5mb,maxsize=25mb,filegrowth=5mb)下图为创建好的数据库管理系统界面: 数据库系统创建好后,向数据库系统中添加自己需要的表。本系统设置三个表,分别为学生信息表、住宿信息表及宿舍成员表,通过这三个表对学生的信息进行管理,可以对学生信息进行查询、修改等各种操作。接下来分析各个表格的具体内容:学生信息表:字段名类型备注学号int姓名nvarchar(10)性别bit院部nvarchar(10)出生日期date注册日期date住宿信息表:字段名类型备注楼栋编号int宿舍号int宿舍容量int楼管nvarchar(10)宿舍成员表:字段名类型备注学号int宿舍号int目前人数int寝室长nvarchar(10)了解了各个表的信息之后,就要在学生宿舍管理系统中依次添加这三个表,添加表的方法可以有两种方法,可以直接在管理系统中操作,也可以用SQL语句完成表的添加。学生信息表的创建:SQL语句如下:use 学生宿舍管理系统create table 学生信息表(学号 int,姓名 nvarchar(10),性别 bit, 院部 nvarchar(10),出生日期 date,注册日期 date,)住宿信息表的创建:SQL语句如下:use 学生宿舍管理系统create table 住宿信息表(楼栋编号 int,宿舍号 int,宿舍容量 int,楼管 nvarchar(10),)宿舍成员表的创建:SQL语句如下:use 学生宿舍管理系统create table 宿舍成员表(学号 int,宿舍号 int,目前人数 int, 寝室长 nvarchar(10),) 表创建完后,向表中添加内容,添加内容也有两种方法,直接在表中打开前100或者前200行进行编辑,同时也可用SQL语句往表中添加内容。学生信息表中添加内容:SQL语句格式如下:insert into 学生信息表(学号,姓名,性别,院部,出生日期,注册日期)values(01,*,0,*,1991-3-01,2008-02-3)按照此程序语句向学生信息表中添加所需的学生信息住宿信息表中添加内容:SQL语句格式如下:insert into 住宿信息表(楼栋编号,宿舍号,宿舍容量,楼管)values(3,420,6,*)宿舍成员表中添加内容:SQL语句格式如下:insert into 宿舍成员表(学号,宿舍号,目前人数,寝室长)values(01,325,4,李广)3、 创建视图创建视图可以使用两种方式,一种是使用SQL Server Management Studio向导进行创建,另一种是使用SQL语句。 在本系统中可以创建如下两个视图:宿舍人数一览表,此视图的作用是查看宿舍内部成员数、所在的楼栋号、楼管等跟宿舍有关的内容,可以很快知道宿舍的位置及所缺的人数,帮助学校工作人员查看。 使用SQL Server Management Studio创建视图:直接在所创建的学生宿舍管理系统的界面下进行操作,这样就可以得到所需的视图,主要过程如下:使用SQL语句创建:SQL语句如下CREATE Viewdbo.宿舍人数一览表ASSELECT dbo.宿舍成员表.宿舍号, dbo.宿舍成员表.目前人数, dbo.宿舍成员表.寝室长, dbo.住宿信息表.楼栋编号, dbo.住宿信息表.宿舍容量, dbo.住宿信息表.楼管FROM dbo.宿舍成员表 INNER JOIN dbo.住宿信息表 ON dbo.宿舍成员表.宿舍号 = dbo.住宿信息表.宿舍号如上所示,分别用两种方法创建了视图,此视图的查询结果如下,两种方法创建的视图都可以看出每个宿舍现在所住的人数和容量,以及各个宿舍所在的楼栋号及楼管,这样很方便就可以查询到所需的宿舍具体信息。学生具体信息表,此视图的功能更强大,除了能查到宿舍的信息外还能查到学生的具体信息。此视图的创建过程如上其SQL语为:CREATE Viewdbo.学生具体信息表 ASSELECT dbo.学生信息表.学号, dbo.学生信息表.姓名, dbo.学生信息表.性别, dbo.学生信息表.院部, dbo.学生信息表.出生日期, dbo.住宿信息表.楼栋编号, dbo.宿舍成员表.宿舍号, dbo.宿舍成员表.寝室长FROM dbo.宿舍成员表 INNER JOIN dbo.学生信息表 ON dbo.宿舍成员表.学号 = dbo.学生信息表.学号 INNER JOIN dbo.住宿信息表 ON dbo.宿舍成员表.宿舍号 = dbo.住宿信息表.宿舍号此视图的运行结果如下:4、 建立索引索引是一种数据表中的对象,它是为了实现快速查找数据而设计的。在查找大量数据时,有了索引就会快很多,但设计不当的索引也会影响数据查找的效率。所以本系统对学生信息表中的院部建立索引:其SQ语句为create clustered index IX_学生信息表_院部 on 学生信息表(院部 asc)资源管理器的界面为:5、 建立触发器触发器是由操作触发执行的存储过程,它将在一些条件满足时自动执行操作。触发器可以完成数据检测、同步数据等很多需要自动维护的操作,触发器是一种特殊的存储过程。它在对表中的记录执行特定的操作(如插入、更新、删除)时被执行,也可以响应系统操作(如删除表、删除库)。对于此系统建立以下两个触发器,分别为:姓名更新触发:对表学生信息表建立触发器,当姓名字段修改时要把注册日期字段的日期改为当前日期。此触发器的功能是如果更新了学生信息表中学生的姓名,则会将表中注册日期这个字段更新为当前日期。其SQL语句为:create trigger 姓名更新触发 on 学生信息表 after update asbegin if update(姓名) update 学生信息表 set 注册日期=getdate() from 学生信息表,inserted where 学生信息表.学号=inserted.学号end过程验证:如截图中所示,当把学号为02号的学生的姓名改为王丽丽时,触发器将注册日期改为当前日期2012-6-17,而其余的注册时间均为2008-02-03,所以可以验证此触发器可正常工作。宿舍号更新触发:对表宿舍成员表建立触发器,当宿舍号字段修改时要把学生信息表中的注册日期字段的日期改为当前日期,此触发器的功能是当对宿舍成员表中某一学号的学生的宿舍号这个字段进行修改时,则会触发触发器,将学生信息表中的注册日期字段修改为当前日期,这个触发器关系到两个表的联合触发,其SQL语句如下:create trigger 宿舍号更新触发 on 宿舍成员表 after update as begin if update(宿舍号) update 学生信息表 set 注册日期=getdate() from 学生信息表,inserted where 学生信息表.学号=inserted.学号end触发器验证:当对宿舍成员表中学号为05号的学生修改宿舍号为324时,触发器工作,将学生信息表中05学生的注册日期自动修改为当前日期,而其余的学生的注册日期没变6、 建立存储过程存储过程是预先编写好的一段SQL程序,它完成了很多原本需要在客户端执行的逻辑操作,对于提高整个系统的运行效率起到了很大的作用,在本系统中创建了一个存储过程,完成查询某个学生的信息,查询成功后返回姓名、中文表示的性别以及所在的院部信息。其SQL语句为:create procedure find1 num varchar(20) as begin declare s varchar(200) declare ch1 varchar(2),ch2 varchar(2) set ch1=男 set ch2=女 set s=select 学生信息表.学号,姓名, case 性别 when 0 then +ch2+ when 1 then +ch1+ end,院部from 学生信息表 inner join 宿舍成员表 on 学生信息表.学号=+num+ and 学生信息表.学号=宿舍成员表.学号exec(s)end下图为存储过程创建成功后的截图:存储过程创建成功后,用exec find1 02SQL语句验证:当查询02号学生的信息是查询到汉字的性别。四、 实验结果及分析此实验最终的设计结果截图为:此设计实验中,建立了学生宿舍管理系统,在此系统中建立了三个表,分别为学生信息表,宿舍成员表及住宿信息表。此实验的建立中,运用到数据库系统、表、视图、索引的建立方法,分别有两种方法,即使用SQL Server Management Studio创建和使用SQL语句创建,SQL语句分别已经在数据库设计过程中写到。还运用到触发器和存储过程的建立方法,分别要运用到特定的SQL语句。 此次数据库的建立取得了较好的成绩,积累了一些经验,能够与同学进行交流,探讨,我感到非常荣幸。我在学习的过程中对自己要有信心。一个人能力发挥的程度并不完全取决于周围环境,而在很大程度上决定于自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论