资源描述
目 录
摘 要 1
一、引 言 2
二、设计目的与任务 2
三、设计方案 2
1、需求分析 2
1.1宿舍管理子系统数据库的数据需求 2
1.2数据字典 3
1.3数据结构 5
1.4数据流 5
1.5数据存储 6
1.6处理过程 6
2、概念设计 7
2.1宿舍数据库中的实体集 7
2.2宿舍数据库中的联系集 9
2.3宿舍数据库中的E-R图 9
3、逻辑设计 9
4、数据库实现 10
4.1 建立数据库模式、视图及索引 10
4.2 装载数据 13
四、结 论 13
五、致 谢 13
六、参考文献 14
摘 要
随着计算机的普及,以及对计算机的广泛应用,使得计算机的技术正以日新月异的方式不断地进步,其中数据库技术的地位无疑是极为重要的。
学生宿舍管理子系统是应对学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括基本信息管理、住宿管理、服务管理、来访者管理等四大功能模块。
该系统开发由需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、数据库实施与维护阶段等阶段组成。
关键词:数据库 宿舍管理 系统开发
Abstract
With the popularity of computer, as well as to the widespread use of computers, the computer technology is changing the way to continue to progress, with the status of database technology is undoubtedly very important.
The student's dormitory management subsystem is coping with the student's dormitory management modernization, network, and gradually get rid of the current student dormitory management of artificial management method, improve the student's dormitory management efficiency and development, it includes the basic information management, accommodation management, Service management, visitor management and so on four big function module.
The system developed by demand analysis stage, concept structure design stage, logic structure design stage, physical structure design, implementation and maintenance stages database of such as stage stage.
Keywords: database,dormitory management, system development
《数据库原理与应用》课程设计
--学生宿舍管理数据库设计
一、引 言
传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理存储、管理等诸多环节已成为宿舍管理的先决条件,宿舍管理信息子系统是各大中小型宿舍所需要使用的一个管理系统。对于大型高校,需要完成对大量学生宿舍信息的存储、编制、管理等操作。然而,传统的人工管理模式已经远远不能满足有效、快捷地处理管理中产生的大量信息数据的需要,从而使得宿舍管理层无法及时、准确地掌握一线资料,继而影响对学生住宿及其他安排的有效管理。
根据自己组员的知识功底和能力水平择选了宿舍管理子系统。通过对宿舍管理子系统的开发设计,旨在了解数据库设计与维护流程,提高成员团队合作意识,调动个人学习积极性,感悟团队荣誉感。
二、设计目的与任务
通过本课程设计教学所要求达到的目的是:通过该课程设计,学习数据库设计工具的使用,搞清数据库设计的基本方法、步骤和数据库设计各阶段的任务,完成对某一小型数据库设计和相应文档的编写工作。使学生更加深入地掌握数据库系统分析与设计的基本概念和基本方法,提高从事数据库系统建设和管理工作的基本技能和能力。
三、设计方案
1、需求分析
1.1宿舍管理子系统数据库的数据需求
通过与宿舍数据库用户交谈等方式以及作者对学生宿舍的分析,可以得到宿舍数据库系统的数据需求。
·入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。
·每间宿舍都有唯一的楼号和宿舍号。入校时,宿舍会装公用电话机,相应地就有宿舍电话号码。
·每幢宿舍都有驻楼阿姨和保洁阿姨的编号。
·宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。
·每幢宿舍对于每一次的人员来访都要做好相应的登记。包括来访者和被访者的信息。
1.2数据字典
住宿学生数据字典
属性名
类型
长度
备注
学号
char
8
住宿学生学号
姓名
Varchar
10
住宿学生姓名
性别
char
2
男/女
专业
Varchar
20
学生专业
联系方式
char
11
联系方式
员工数据字典
属性名
类型
长度
备注
员工号
char
4
员工姓名
Varchar
10
年龄
smallint
2
性别
char
2
职位
Varchar
20
联系方式
char
11
宿舍数据字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
宿舍电话
char
12
可住人数
smallint
2
已住人数
smallint
2
临时设备租赁数据字典
属性名
类型
长度
备注
设备号
char
8
设备名
Varchar
20
租赁日期
Datetime
8
所租的日期
归还日期
Datetime
8
归还设备日期
租赁费用
decimal
5
租赁设备的费用
报修数据字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
报修人宿舍号
物品号
varchar
8
报修物品编号
报修原因
char
50
物品损坏原因
提交日期
datetime
8
报修提交日期
解决日期
datetime
8
问题解决日期
报修费用
decimal
5
报修的费用
水电费数字字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
月份
Varchar
4
用电量
decimal
(5,2)
电费
decimal
(5,2)
用水量
decimal
(5,2)
水费
decimal
(5,2)
来访者数字字典
属性名
类型
长度
备注
来访人姓名
Varchar
10
被访人姓名
Varchar
10
所属关系
Varchar
20
证件名称
Varchar
20
来访日期
Datetime
8
来访时间
Datetime
8
结束时间
Datetime
8
备注
Varchar
50
1.3数据结构
数据结构名
组成
学生住宿信息
学号,姓名,性别,专业,联系方式,入住时间
员工信息
员工号,姓名,年龄,性别,职位,家庭地址,联系方式
宿舍信息
楼号,宿舍号,宿舍电话,可住人数,已住人数
临时设备信息
设备号,设备名,租赁日期,归还日期,租赁费用
报修信息
楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用
水电费信息
楼号,宿舍号,月份,用电量,电费,用水量,水费
来访者信息
来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,备注
1.4数据流
数据流名
数据流来源
数据流去向
组成
登记报修信息
学生
报修信息表
报修信息
查询报修信息
报修信息表
管理员
报修信息
登记已修信息
管理员
报修信息表
已修信息
登记设备租赁信息
学生
设备租赁信息表
设备租赁信息
查询设备租赁信息
设备租赁信息表
学生
设备租赁信息
登记设备归还信息
管理员
管理员
设备归还信息
登记来访者信息
来访者
来访者信息表
来访信息
查询来访者信息
管理员
来访者信息表
来访信息
登记来访结束信息
管理员
来访者信息表
来访结束信息
1.5数据存储
数据存储名
输入的数据流
输出的数据流
组成
报修信息表
报修信息
已修信息
报修信息
报修信息
已修信息
设备租赁信息表
设备租赁信息
设备归还信息
设备租赁信息
设备租赁信息
设备归还信息
来访者信息表
来访信息
来访结束信息
来访信息
来访信息
来访结束信息
1.6处理过程
处理过程名
输入数据流
输出数据流
登记报修
报修信息
报修信息
查询报修
报修信息
报修信息
登记已修信息
已修信息
已修信息
登记设备租赁信息
设备租赁信息
设备租赁信息
查询设备租赁
设备租赁信息
设备租赁信息
登记设备归还信息
设备归还信息
设备归还信息
登记来访者信息
来访者信息
来访者信息
查询来访者信息
来访者信息
来访者信息
登记来访结束信息
来访结束信息
来访结束信息
2、概念设计
2.1宿舍数据库中的实体集
· 实体集学生信息,具有属性学号,姓名,性别,专业,联系方式
· 实体集员工信息,具有属性员工号,姓名,年龄,性别,职位,联系方式
· 实体集宿舍信息,具有属性楼号,宿舍号,宿舍电话,可住人数,已住人数
· 实体集临时设备信息,具有属性设备号,设备名,租赁日期,归还日期,租赁费用
· 实体集报修表信息,具有属性楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用
· 实体集水电费信息,具有属性楼号,宿舍号,月份,用电量,电费,用水量,水费
· 实体集来访者信息,具有属性来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,备注
2.2宿舍数据库中的联系集
·入住,宿舍和学生间具有一对多联系;
·管理,宿舍和员工间具有多对多联系;
·来访,学生和来访者间具有一对多联系;
·租赁,学生和临时设备间具有一对多联系;
·用电,宿舍与水电费间具有一对多联系;
·维修,宿舍与报修表间具有一对多联系。
2.3宿舍数据库中的E-R图
根据2.1节和2.2节的讨论,我们可以给出学生宿舍的E-R图(见图1)。
图1宿舍数据库中的E-R图
3、逻辑设计
把图1的E-R图转换为关系模式,如下所示(有实下划线的为主码、虚下划线的为外码):
由于宿舍与学生是1:n关系,可以将其之间的联系与n端实体学生合并,宿舍和员工,学生和临时设备,学生和来访者也是1:n关系,同样也将其之间的联系与n端实体员工,临时设备,来访者合并,具体的基本E-R图向关系模型的转化如下:
·学生住宿表=(学号,姓名,性别,专业,入住时间,联系方式,楼号,宿舍号)
·宿舍表=(楼号,宿舍号,电话号码,可住人数,已住人数)
·员工表=(员工号,员工姓名,性别,年龄,职位,家庭地址,楼号)
·临时设备租赁表=(设备号,设备名,租赁日期,归还日期,租赁费用,学号)
·报修表=(楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用)
·水电费表=(楼号,月份,宿舍号,用电量,电费,用水量,水费)
·来访者表=(来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,学号)
4、数据库实现
4.1 建立数据库模式、视图及索引
创建数据库
create database 学生宿舍管理系统;
go
//创建表
use 学生宿舍管理系统
go
Create table 宿舍表
( 楼号 char(2),
宿舍号 char(3),
primary key(楼号,宿舍号),
宿舍电话 char(12) not null,
可住人数 smallint not null,
已住人数 smallint not null,
);
go
Create table 学生住宿表
(学号 char(8) primary key,
姓名 varchar(10) not null,
性别 char(2) default '男' check(性别 in('男','女')),
专业 varchar(20) not null,
联系方式 char(11),
入住时间 datetime not null,
楼号 char(2) not null,
宿舍号 char(3) not null,
foreign key(楼号,宿舍号) references 宿舍表(楼号,宿舍号),
);
go
Create table 员工表
(员工号 char(4) primary key,
员工姓名 varchar(10) not null,
年龄 smallint check(年龄>14 and 年龄<65),
楼号 char(2),
性别 char(2) check (性别 in('男','女')),
职位 varchar(20) not null,
联系方式 char(11),
);
go
Create table 设备租赁表
(设备号 char(8) primary key,
设备名 Varchar(20) not null,
租赁日期 Datetime not null,
归还日期 Datetime not null,
租赁费用 decimal(5,2) not null,
学号 char(8) foreign key references 学生住宿表(学号),
);
go
create table 报修表
(楼号 char(6) not null,
宿舍号 char(6) not null,
物品号 char(8) not null,
保修原因 char(50) not null,
提交日期 datetime not null,
解决日期 datetime not null,
保修费用 decimal(5,2) not null,
);
go
Create table 水电费表
(楼号 char(2) not null,
宿舍号 char(3) not null,
月份 Varchar(4) not null,
用电量 decimal(5,2) not null,
电费 decimal(5,2) not null,
用水量 decimal(5,2) not null,
水费 decimal(5,2) not null,
);
go
Create table 来访者表
(来访者姓名 varchar(10) not null,
被访者姓名 varchar(10) not null,
所属关系 Varchar(20) not null,
证件名称 Varchar(20) not null,
来访日期 Datetime not null,
来访时间 Datetime not null,
结束时间 Datetime not null,
备注 Varchar(50),
学号 char(8) foreign key references 学生住宿表(学号),
);
Go
1.建立计科专业的学生住宿的视图
Create view 计科学生住宿表
As
Select 学号,姓名,楼号,宿舍号
From 学生住宿表
Where 专业='计科';
Go
2.建立住在三号楼的学生信息的视图
Create view 三号楼学生住宿表
As
Select 学号,姓名,专业
From 学生住宿表
Where 楼号='3';
Go
3.建立职位是管理员的员工信息的视图
Create view 管理员信息表
As
Select *
From 员工表
Where 职位='管理员';
Go
4.建立4月份各个宿舍的水电使用情况的视图
Create view 四月水电费表
As
Select *
From 水电费表
Where 月份='四';
建立索引
create unique index 住宿_学号 on 学生住宿表(学号);
create unique index 宿舍楼_宿舍号 on 宿舍表(楼号,宿舍号);
Create unique index IX_员工号 on 员工表(员工号);
4.2 装载数据
Insert into 宿舍表 values('2','333','15243800000',4,4)
Go
Insert into 宿舍表 values('2','334','15243800001',4,4)
go
Insert into 学生住宿表 values('09408213','杨晨','男','计科', '15243801000',getDate(),'2','333')
go
Insert into 员工表 Values ('y001','叶玉',40,'27','女','清洁工','15243801000')
go
Insert into 员工表 Values('y003','李伟',34,'22','男','管理员','15243801000')
go
四、结 论
通过这次学生宿舍管理系统课程设计,使我们对数据库设计的各个方面都加深了理解,了解到数据库是一环扣一环的,只有数字字典做好了,才能进行下面的E-R图设计,中途不能有办点马虎,也体会到把知识应用于实践是不容易的,同时也学生课本所没有的东西,一些问题也只有真正做设计的时候才会出现。
五、致 谢
在这次课程设计的撰写过程中,我们组得到了许多人的帮助。
首先我们要感谢老师在课程设计上给予我们的指导、提供给我们的支持和帮助,这是我们能顺利完成这次报告的主要原因,更重要的是老师帮我们解决了许多技术上的难题,让我们能把系统做得更加完善。在此期间,我们不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我们要感谢帮助过我们的同学,他们也为我们解决了不少我们不太明白的难题。同时也感谢学院为我们提供良好的做课程设计的环境。
最后再一次感谢所有在设计中曾经帮助过我们的良师益友和同学。
六、参考文献
[1]王珊,萨师煊.《数据库系统概论》[M].北京:高等教育出版社,2006.5
[2]何玉洁,李保安.《数据库系统教程》[M].北京:人民邮电出版社,2010.9
[3]Hoffer,J.A. 《现代数据库管理》[M].北京:清华大学出版社,2011.3
[4]
[5]
12
展开阅读全文