学生宿舍管理系统数据库课程设计(共28页).doc

上传人:飞****2 文档编号:13521681 上传时间:2022-04-29 格式:DOC 页数:28 大小:552KB
返回 下载 相关 举报
学生宿舍管理系统数据库课程设计(共28页).doc_第1页
第1页 / 共28页
学生宿舍管理系统数据库课程设计(共28页).doc_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《学生宿舍管理系统数据库课程设计(共28页).doc》由会员分享,可在线阅读,更多相关《学生宿舍管理系统数据库课程设计(共28页).doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上目 录01 5 9 专心-专注-专业摘 要当今大学校园内的学生公寓,其数据量大,各种信息管理内容复杂,查询和管理学生信息和校园内的公寓信息等工作由人工完成将是很累的,不仅浪费了许多人力物力资源,而且还很容易出现差错,有一个软件对学生公寓管理不仅节省了人力物力,而且对各种信息的把握和操作也更加方便。 该学生宿舍管理系统主要是后台数据库的开发,对于后台数据库要求建立起数据一致性和完整性强、数据安全性好的数据库。管理人员需要做的就是将数据输入到系统的数据库中去。经过分析,本系统运用了SQL2000为后台数据库,它包括基本信息管理、住宿管理、服务管理、来访者管理等四大功能模块

2、。适用于大学院校宿舍管理。该系统开发由需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施与维护阶段等阶段组成。关键词: 学生宿舍管理 SQL2000 功能模块 系统开发 一 需求分析目前,我们学校的宿舍管理大多数的信息都是由文本记录的。针对这一实际情况,我们设计了学生宿舍管理系统。1.1 基本信息经过分析调查,一个学生宿舍管理系统主要是要方便宿舍管理人员的工作,提高其工作效率,不仅可以方便广大学生,而且还可以方便于教师和相关人员。学生住在宿舍楼中,每幢宿舍楼都会有若干名管理员负责本宿舍楼的日常管理。(1)学生的基本信息:入校时,每位同学都有唯一的学号,并被分配到指定

3、的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。(2)宿舍的基本信息:每间宿舍都有唯一的楼号和宿舍号,有可住人数和已住人数。(3)工作人员基本信息:每幢宿舍楼都有宿管阿姨和保洁阿姨的编号。(4)报修的基本信息:宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。 (5)水电费的基本信息: 每间宿舍每个月份都有用水量与用电量的相关记录,相应地产生水费和电费。

4、(6)来访者基本信息每幢宿舍楼对于每一次的人员来访都要做好相应的登记。包括来访者和被访者的信息。 1.2处理功能要求 系统主要完成以下几个功能: 1 宿舍楼基本信息查询与修改; 2学生基本信息查询与更新以及插入; 3每一幢宿舍楼中宿舍信息的查询与信息更新; (1)宿舍信息管理系统实现对学生,管理员信息的全部读取;实现对某个学 生或管理员特定信息的读取; (2)实现对某个人员信息的删除; 4宿舍楼人员访问出入记录; 1.3安全性和完整性要求 安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别来分

5、配用户权限,达到数据更高层次的安全保密功能。完整性要求用于描述宿舍楼基本信息、学生基本信息、宿舍基本信息、楼栋员工基本信息、访问出入人员基本信息中数据项能否为null,以及一些用户自定义完整性。1.4系统功能分析 图1.1系统功能分析本系统主要有以下功能:基本信息管理、住宿管理、服务管理、来访者管理。基本信息管理包括学生信息、宿舍信息、工作人员信息;住宿信息包括入住;服务管理包括水费、电费、报修;来访者管理包括来访者信息登记、来访者查询。数据库操作功能:查询、删除、修改、插入;二 概念结构设计概念结构是将需求分析抽象为信息结构即概念模型的过程,这样才能更好地、更准确的用某一DBMS实现这些需求

6、,是整个数据库设计的关键,它主要特点是能真实、充分地反映现实社会,包括事物和事物之间的联系,能满足用户对数据的处理需求,是对现实世界的一个真实模型,而且还易于理解,也方便用户的操作,对数据的修改和各种模型的转换。2.1实体集的子E-R图 本系统涉及学生住宿实体有如下属性:学号,姓名,性别,专业,出生日期,联系方式,其对应的E-R图如下: 图2.1学生住宿实体E-R图宿舍表E-R图如下: 图2.2宿舍实体E-R图员工表E-R图如下: 图2.3员工实体E-R图报修表E-R图如下: 图2.4报修实体E-R图水电费表E-R图如下: 图2.5水电费实体E-R图来访者表E-R图如下: 图2.6来访者实体E

7、-R图2.2整体E-R图 图2.7实体之间的关系 E-R图三 逻辑结构及物理结构设计 3.1将E-R图转换为关系模型由于宿舍与学生是1:n关系,可以将其之间的联系与n端实体学生合并,宿舍和员工,学生和水电费,学生和来访者也是1:n关系,同样也将其之间的联系与n端实体员工,水电费表,来访者合并,具体的基本E-R图向关系模型的转化如下:学生住宿表:(学号,姓名,性别,出生日期,专业,入住时间,联系方式,楼号,宿舍号)宿舍表:(楼号,宿舍号,可住人数,已住人数)员工表:(员工号,员工姓名,性别,职位,联系方式,楼号)报修表:(楼号,宿舍号,物品号,物品名,报修原因,提交日期,解决日期,报修费用)水电

8、费表:(楼号,宿舍号,月份,用电量,电费,用水量,水费) 来访者表:(证件号,来访者姓名,所属关系,来访时间,来访时间,离开时间,学号)3.2物理结构设计3.2.1表的结构设计和相应约束由以上分析,得出上述7个表格结构如下:(1)学生住宿表,主要记录学生住宿的基本信息。表3-1学生住宿信息数据表属性名类型长度完整性约束说明学号char10Primary key住宿学生学号姓名varchar8not null住宿学生姓名性别char2not null男/女出生日期datatime10not null专业varchar20not null学生专业联系方式char11not null学生联系方式楼号

9、char4not null同为外码,学生住宿的地方宿舍号char4not null入住时间datetimenot null新生搬入时间(2) 员工表,主要记录员工的基本信息。表3-2员工信息数据表属性名类型长度完整性约束说明员工号char10Primary key员工工作号员工姓名varchar8Not null员工姓名性别char2Not null男/女职位char10Not null员工工作职位联系方式char11Not null员工联系方式楼号char4Not null为外码,员工工作负责的楼号宿舍号char4Not null(3) 宿舍表,主要记录宿舍的入住信息。表3-3宿舍信息数据表

10、属性名类型长度完整性约束说明楼号char4Not null unique同为主码,学生住宿的地方宿舍号char4Not null unique可住人数smallint2Not null 宿舍可住人数已住人数smallint2Not null 宿舍已住人数(4) 报修表,主要记录物品的报修信息。表3-4报修信息数据属性名类型长度完整性约束备注楼号char4非空宿舍号char4非空报修人宿舍号物品号varchar8Primary key报修物品编号物品名varchar20非空报修物品名报修原因char50非空物品损坏原因提交日期datetime非空报修提交日期解决日期datetime非空问题解决日

11、期报修费用decimal(5,2)非空报修的费用状态char15非空报修的状态属性名类型长度完整性约束说明楼号char4Not null unique用于计算学生宿舍的每月的费用 宿舍号char4Not null unique月份char2Primary key用电量float8宿舍每月用电量电费float8宿舍每月电费用水量float8宿舍每月用水量水费float8宿舍每月水费(5) 水电费表,主要是每个月记录各个宿舍的水电使用情况以及相应的费用。表3-5水电费信息数据(6) 来访者表,主要记录来访者的信息。表3-6来访者信息数据属性名类型长度完整性约束说明证件号char20Primary

12、key来访者身份证号来访者姓名varchar10Not null来访者姓名所属关系varchar20Not null来访者与被访者的关系来访时间datetimeNot null来访时间来访时间datetimeNot null来访时间学号char10Not null被访者的学号3.2.2表与表之间的关系图3.1表与表之间的关系四 数据实施和维护4.1建立数据库、数据表、导入数据4.1.1 建立数据库create database 学生宿舍管理系统on(name=学生宿舍管理系统_data,filename=e:学生宿舍管理系统_data.mdf,size=50MB,maxsize=70MB,fi

13、legrowth=20%)log on(name=学生宿舍管理系统_log,filename=e:学生宿舍管理系统_log.ldf,size=20MB,maxsize=50MB,filegrowth=15MB)4.1.2 建立数据表宿舍表Create table 宿舍表(楼号 char(4),宿舍号 char(4),primary key(楼号,宿舍号),可住人数 smallint not null,已住人数 smallint not null,) 图4.1宿舍表学生住宿表Create table 学生住宿表(学号 char(8) primary key,姓名 varchar(10) not

14、null,性别 char(2) default男check(性别 in(男,女),专业 varchar(20) not null,出生日期 datetime not null,联系方式 char(11),入住时间 datetime not null,楼号 char(4) not null,宿舍号 char(4) not null,foreign key(楼号,宿舍号)references 宿舍表(楼号,宿舍号) 图4.2学生住宿表员工的基本信息表create table 员工表(员工号 char(10) primary key,员工姓名 varchar(8) not null,性别 char(

15、2) check(性别 in (男,女),职位 varchar(10) not null,联系方式 char(11),楼号 char(4) not null,宿舍号 char(4) not null,foreign key(楼号,宿舍号)references 宿舍表(楼号,宿舍号) 图4.3员工表报修信息表create table 报修表(楼号 char(4) not null,宿舍号 char(4) not null,foreign key (楼号,宿舍号)references 宿舍表(楼号,宿舍号),物品号 varchar(8) primary key,物品名 varchar(20) no

16、t null,报修原因 char(50) not null,提交日期 datetime not null,解决日起 datetime not null,报修费用 decimal(5,2) not null,状态 char(15) not null,) 图4.4报修表水电费表create table 水电费表(楼号 char(4) not null,宿舍号 char(4) not null,foreign key(楼号,宿舍号)references 宿舍表(楼号,宿舍号),月份 char(2) primary key,用电量 float(8),电费 float(8),用水量 float(8),水

17、费 float(8),) 图4.5水电费表来访者信息表create table 来访者表 (来访者姓名 varchar(10) not null,所属关系 varchar(20) not null,证件号 char(20) primary key,来访日期 datetime not null,来访时间 datetime not null,结束时间 datetime not null,学号 char(8) foreign key references 学生住宿表(学号),) 图4.6来访者表4.1.3 导入数据1. 宿舍表格记录插入insert into 宿舍表Values (27,101,04

18、,04)insert into 宿舍表Values (22,111,04,04)截图如下:2. /学生住宿表格记录插入insert into 学生住宿表Values (,王晓明,男,物流管理,1992-01-06,2012-09-01,27,101)insert into 学生住宿表Values (,李倩,女,物流管理,1993-12-23,2012-09-02,22,111)截图如下:3. 员工表格记录插入insert into 员工表 Values (001,叶玉,女,清洁工,27,101)insert into 员工表 Values (002,王思思,女,管理员,22,111)截图如下:

19、4. 报修表格记录插入insert into 报修表Values (27,101,0001,日光灯,日光灯不亮,00.00,完成)insert into 报修表Values (22,111,0002,热水器,热水器坏了,05.00,未完成)截图如下:5.水电费表格记录插入insert into 水电费表Values (27,101,09,17.12,13.00,05.24,07.52)insert into 水电费表Values (22,111,10,18.12,14.00,06.24,08.52)截图如下:6.来访者表格记录插入insert into 来访者表Values (张晓红,母子,2

20、010-09-20,2010/9/20 12:20:30,2010/9/20 12:50:30,)insert into 来访者表Values (王伟,兄妹,2010-09-10,2010/9/10 12:20:30,2010/9/10 12:50:30,)截图如下:4.2 记录和约束条件的的增加、删除和修改4.2.1 记录的增加、删除、修改1.一个新生住进宿舍:insert into 学生住宿表Values (,张三,男,1993-11-12,信息管理,09/03/12,22,111)2.删除员工号为0001的信息Delete from 员工表where 员工号=00013.修改宿舍表中22

21、号楼111宿舍的已住人数Update 宿舍表Set 已住人数=06 Where楼号=22 and 宿舍号=111;4.2.2 约束条件的增加、删除、修改1.在学生住宿表中增加一属性为学院,数据类型为varchar(20),Alter table 学生住宿表 add 学院 varchar(20);2.删除学生住宿表中新增的属性学院Alter table 学生住宿表 drop column 学院;3.在来访者表中,增加被访人姓名取非空的约束条件Alter table 来访者表 add 被访人姓名 not null;4.3查询语句4.3.1 简单查询(1)查询员工姓名为王思思的基本信息Select

22、*from 员工表Where 员工名=王思思;截图如下:(2)查询负责22栋楼的员工号,员工姓名,职位Select 员工号,员工姓名,职位 from 员工表Where 楼号=22;截图如下:(3)查询住在22号楼111宿舍所住的学生信息Select 学号,姓名,专业,联系方式from 学生住宿表Where 楼号=22 and 宿舍号=111;截图如下:(4)查询物流专业的学生住宿人数Select count(学号)as 住宿人数 from 学生住宿表Where 专业=物流管理;截图如下:4.3.2模糊查询 查询姓张的来访者的姓名,所属关系,证件号, 被访者的学号信息。Select 来访者姓名,

23、所属关系,证件号,学号 as 被访者的学号 from 来访者表Where 来访者姓名 like 张%;截图如下:4.3.3连接查询 查询张三所在的宿舍的已住人数。Select 宿舍表.楼号, 宿舍表.宿舍号,已住人数from 宿舍表,学生住宿表Where 姓名=张三 and 宿舍表.楼号=学生住宿表.楼号 and 宿舍表.宿舍号=学生住宿表.宿舍号;截图如下:4.3.4嵌套查询 查询员工号为002的员工所在楼的住宿信息。Select * from 宿舍表Where 楼号 in (select 楼号from 员工表 Where 员工号=002);截图如下:4.4 建立视图1.建立物流管理专业的学

24、生住宿的视图Create view 物流管理学生住宿表AsSelect 学号,姓名,楼号,宿舍号From 学生住宿表Where 专业=物流管理select * from 物流管理学生住宿表截图如下:2.建立住在22号楼的学生信息的视图Create view 二十二楼学生住宿表AsSelect 学号,姓名,专业From 学生住宿表Where 楼号=22select * from 二十二楼学生住宿表截图如下:3.建立职位是管理员的员工信息的视图Create view 管理员信息表AsSelect *From 员工表Where 职位=管理员select * from 管理员信息表截图如下:4.建立4

25、月份各个宿舍的水电使用情况的视图Create view 水电表费AsSelect *From 水电费表Where 月份=10select * from 水电表费截图如下:5.建立22号楼各个宿舍的信息的视图Create view 二十二号楼宿舍信息表AsSelect *From 宿舍表Where 楼号=22select * from 二十二号楼宿舍信息表截图如下:4.5 存储过程1.为了方便对物品名的修改需要创建一个存储过程(xiugai).create proc prcxiugaia varchar(8),b varchar(20)asif exists (select * from 报修表

26、 where 物品号=a)update 报修表set 物品名=b where 物品号=aelse print该物品不存在exec prcxiugai 0002,柜子select *from 报修表 where 物品号=0002截图如下: 2.为了快速查询学生的宿舍号.创建一个存储过程(susheming)create proc orcsushemingc char(4)asif exists (select 宿舍号 from 学生住宿表 where 宿舍号=c)select 宿舍号 from 学生住宿表 where 宿舍号=celseprint该学生不存在exec orcsusheming 1

27、01 select * from 学生住宿表 where 宿舍号=101截图如下:4.6 触发器1.如果在输入每个宿舍的电费时.当要输入的宿舍已经输入过的时候,就需要用到触发器来告诉输入者该宿舍已经输入过create trigger 电费录入 on 水电费表for updateasdeclare 电费 float(8),宿舍号 float(8)beginselect 宿舍号=宿舍号 from insertedif exists(select 电费 from 水电费表 where 宿舍号=宿舍号)begin print(该宿舍已输入过电费) rollbackendelseprint操作成功!en

28、d2.限制每栋楼最多能有8个员工; create trigger trgc on 员工表for update ,insertasbegindeclare 员工号 char(10),楼号 char(4),n tinyintselect 员工号=员工号, 楼号=楼号 from insertedselect n=count(*) from 员工表 where 员工号=员工号if(n8)begin print(该栋楼的员工已超过8人,不允许操作! ) rollbackendelseprint(操作成功!)end五 总结 这些天下来,学到了不少东西,以前对SQL,只能按书上按部就班的写,写SQL语句是会

29、了,但数据逻辑和方法方面,一点都不够到位,没有对以前的知识进行系统的了解,没有把各个部分知识整合在一起,通过这次学生宿舍管理系统课程设计,使我们对数据库设计的各个方面都加深了理解,了解到数据库是一环扣一环的,只有数据流程图和数字字典做好了,才能进行下面的E-R图设计,中途不能有办点马虎,也体会到把知识应用于实践是不容易的,同时也学生课本所没有的东西,一些问题也只有真正做设计的时候才会出现。由于时间比较紧,因此我们所做的课程设计肯定还存在许多的不足之处,程序中也存在许多小错误。这将激励我们在以后的学习当中积累更多的经验,努力减少错误的发生。同时珍惜与同学们的合作时间,一起讨论,一起学习,共同进步。当然,少不了老师的帮助,我们一步步做下去,直到课程设计的完成。 参考文献1苗雪兰.数据库系统原理及应用教程.北京-出版社:机械工业出版社20072 王珊,萨师道.数据库系统概论.北京-出版社:高等教育出版社,2006 3 (美)西尔伯沙茨.数据库系统概念.北京-出版社:机械工业出版社,2003 4 王鹏.数据库技术及其应用.北京-出版社:人民邮电出版社, 20005陈世洪.SQL SERVER 200管理,开发及应用实例.北京-出版社:人民邮电出版社20006王珊.数据库系统概论.北京-出版社:高等教育出版社;2006.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁