数据库课设学生公寓管理系统.docx

上传人:b****4 文档编号:4053814 上传时间:2022-11-27 格式:DOCX 页数:23 大小:266.48KB
下载 相关 举报
数据库课设学生公寓管理系统.docx_第1页
第1页 / 共23页
数据库课设学生公寓管理系统.docx_第2页
第2页 / 共23页
数据库课设学生公寓管理系统.docx_第3页
第3页 / 共23页
数据库课设学生公寓管理系统.docx_第4页
第4页 / 共23页
数据库课设学生公寓管理系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库课设学生公寓管理系统.docx

《数据库课设学生公寓管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课设学生公寓管理系统.docx(23页珍藏版)》请在冰豆网上搜索。

数据库课设学生公寓管理系统.docx

数据库课设学生公寓管理系统

 

数据库课程设计

题目:

学生公寓管理系统

学院:

信息科学与技术学院

专业:

信息与计算科学

姓名:

雷帅徐爱娟

学号:

 

Notableofcontentsentriesfound.谢辞........................................................................................................................................17

参考文献......................................................................................................................................17

1引言

1.1课题背景

目前,校园内的学生住宿已经逐步开始进行公寓化管理。

在管理过程中,入住学生信息、来访登记等各种信息内容复杂、数据量大,传统的手工记录方式很难完成快速、准确的查询、统计等管理工作。

开发学生公寓管理系统,利用计算机实现管理的信息化,不仅可以节省人力、物力资源,提高管理人员的工作效率,同时也加强了信息的安全性和可靠性。

1.2课程设计目的

(1)通过实践更加深入理解所学数据库理论,通过实际操作巩固所学知识。

(2)熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。

(3)实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计以及将来的系统开发打下基础。

1.3课程设计任务

本课程设计任务是通过开发一个数据库特价机票抢购系统,深入学习和理解数据库系统的设计与开发,开发工具为SQL相关软件。

通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。

在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理和查询功能等。

 

2需求分析

本系统的用户是学生公寓管理人员和负责老师,他们在日常公寓管理的主要主要工作有:

入住学生信息的查询与管理、寝室分配及调整、来访登记等。

根据上述需求进行分析,本系统在实现上应该具有如下功能:

◎学生基本信息管理,包括学生姓名、学号、所属院系班级、公寓楼号、寝室号等数据。

◎寝室使用情况统计,例如房源使用情况、空床统计情况等。

◎学生每学期的注册登记,以及住宿费、电费等缴纳情况管理。

◎人员来访登记及结束访问的详细记录。

◎提供多条件查询功能,以及方便用户对学生基本信息及楼房信息的查询。

◎添加、删除、修改用户账户的功能。

根据上述分析,可以设计出此系统的系统体系结构图

 

针对各模块功能不同的表实现添加记录、修改记录、删除记录以及查询显示记录等功能

学生公寓管理系统功能模块示意图

 

重试

失败失败

···················································

公寓楼管理信息

学生信息管理

缴费管理

来访登记管理

管理自己的用户信息

管理自己的用户信息

管理普通用户的用户信息

成功用户管理模块学生公寓管理模块

 

系统流程分析图

 

3系统数据库设计

3.1概念结构设计

根据需求分析抽象出信息结构,可得该系统的E-R图。

(1)学生信息的E-R图,如图3.1所示。

 

图3.1学生信息E-R图

(2)公寓信息的E-R图,如图3.2所示。

 

图3.2公寓信息E-R图

 

(3)寝室信息的E-R图,如图3.3所示。

 

 

图3.3寝室信息E-R图

(4)交费信息的E-R图,如图3.4所示。

 

图3.4交费信息E-R图

(5)来访信息的E-R图,如图3.5所示。

 

图3.5来访信息E-R图

(6)

操作员信息的E-R图,如图3.6所示。

 

图3.6操作员信息E-R图

(7)根据分E-R图和需求分析,可得总的基本E-R图,我又通过分析实际情况,对总的ER图继续进行优化,消除不必要的冗余以及我认为一些不必要的信息后得到最终总的E-R图,如图3.7所示

 

11n

n

1

n1

 

n1

1

 

图3.7系统总体结构E-R图

3.2逻辑结构设计

(1)将图3.7总体概念结构E-R图转化成关系模型。

关系模型:

学生(学号,id,姓名,性别,出生日期,专业,班级,联系方式,公寓号,寝室号)

公寓(公寓号,id,楼层数,房间数,启用时间)

寝室(寝室号,公寓号,id,可住人数,住宿费用,电话)

交费(id,公寓号,寝室号,交费时间,交费类型,金额)

来访(id,来访人姓名,人数,被访者姓名,所属关系,来访时间,结束时间,事由)

操作员(操作员ID,操作员姓名,密码,权限)

(2)数据模型的优化

将转化的关系模式进行优化,最终达到BCNF。

①确定数据依赖

学生(学号,id,姓名,性别,出生日期,专业,班级,联系方式,公寓号,寝室号)

学号id,学号姓名,学号性别,学号出生日期

学号专业,学号班级,学号联系方式,学号公寓号

学号寝室号(均为完全函数依赖)

公寓(公寓号,id,楼层数,房间数,启用时间)

公寓号id,公寓号楼层数,公寓号房间数

公寓号启用时间(均为完全函数依赖)

寝室(寝室号,公寓号,id,可住人数,住宿费用,电话)

由于不同的公寓楼会有相同的寝室号,所以仅仅用寝室号是无法确定一个寝室的,而一个公寓楼里的寝室号是唯一的,所以这里用公寓号和寝室号一起作主键

(寝室号,公寓号)id,(寝室号,公寓号)可住人数,(寝室号,公寓号)住宿费用,(寝室号,公寓号)电话(均为完全函数依赖)

交费(id,公寓号,寝室号,交费时间,交费类型,金额)

Id公寓号id寝室号,id交费时间

id交费类型,id金额(均为完全函数依赖)

来访(id,来访人姓名,人数,被访者姓名,所属关系,来访时间,结束时间,事由)

id来访人姓名,id人数,id被访者姓名,id所属关系

id来访时间,id结束时间,id事由(均为完全函数依赖)

操作员(操作员ID,操作员姓名,密码,权限)

操作员ID操作员姓名,操作员ID密码,操作员ID权限(均为完全函数依赖)

②对各关系模式间数据依赖进行极小化处理,消除冗余

通过分析发现其关系中都没有数据的冗余:

学生关系中学号Sno决定公寓号和寝室号,公寓关系中公寓号作为主键,而寝室关系中,虽然寝室是在公寓里的,但是这里的寝室实体是指所有学生公寓里的寝室,所以仅仅是寝室号无法唯一的确定一个寝室,这里用(寝室号+公寓号)共同作为主键来唯一确定一个寝室,交费关系中,这里用记录编号作为主键,每条记录对应一个寝室的交费信息,同样由于交费是以寝室为单元的,所以也可以用(寝室号+公寓号)为主键。

③消除传递依赖

由以上分析可知各关系中的函数依赖都是完全函数依赖,而且没有传递函数依赖,所以此关系模型满足BCNF,尽管模型可以继续优化,但在实际中此模型已经满足要求。

3.3物理结构设计

表3.1学生信息表的结构

编号

字符名称

数据类型

长度

说明

1

id

int

4

记录编号,不允许空

2

学号

nvarchar

30

学生学号,主键

3

姓名

nvarchar

20

允许空

4

性别

char

2

不允许空

5

出生日期

smalldatetime

4

允许空

6

专业

nvarchar

20

允许空

7

班级

nvarchar

20

允许空

8

联系方式

nvarchar

20

允许空

9

公寓号

nvarchar

10

允许空

10

寝室号

nvarchar

10

允许空

11

备注

nvarchar

50

允许空

表3.2公寓信息表的结构

编号

字符名称

数据类型

长度

说明

1

id

int

4

记录编号,不允许空

2

公寓号

nvarchar

10

公寓楼编号,主键

3

楼层数

int

4

允许空

4

房间数

int

4

允许空

5

启用时间

smalldatetime

4

允许空

6

备注

nvarchar

50

允许空

表3.3寝室信息表的结构

编号

字段名称

数据类型

长度

说明

1

id

int

4

记录编号,不空

2

寝室号

nvarchar

10

主键

3

可住人数

int

4

允许空

4

住宿费用

float

8

允许空

5

电话

nvarchar

10

允许空

6

公寓号

nvarchar

10

主键

7

备注

nvarchar

50

允许空

 

表3.4交费信息表的结构

编号

字段名称

数据类型

长度

说明

1

id

int

4

编号,主键

2

公寓号

nvarchar

10

允许空

3

寝室号

nvarchar

10

允许空

4

交费时间

smalldatetime

4

允许空

5

交费类型

smalldatetime

10

允许空

6

金额

nvarchar

8

允许空

7

备注

nvarchar

50

允许空

 

表3.5来访信息表的结构

编号

字段名称

数据类型

长度

说明

1

id

int

4

记录编号,主键

2

来访人姓名

nvarchar

10

允许空

3

人数

int

4

允许空

4

被访者姓名

nvarchar

10

允许空

5

所属关系

nvarchar

10

允许空

6

来访时间

smalldatetime

4

允许空

7

结束时间

smalldatetime

4

允许空

8

事由

nvarchar

50

允许空

9

值班人

nvarchar

10

允许空

表3.6操作员信息表的结构

编号

字段名称

数据类型

长度

说明

1

id

int

4

编号,主键

2

操作员ID

nvarchar

10

允许空

3

操作员姓名

nvarchar

10

允许空

4

密码

nvarchar

10

允许空

5

权限

char

6

允许空

6

备注

nvarchar

50

允许空

 

4.1创建学生信息表

createtableStudent--创建学生信息表

(idintnotnull,--记录编号,不空

Snonvarchar(30)primarykey,--学号,主键

Snamenvarchar(20),--姓名

Ssexchar

(2)notnull,,--性别

Sbirthsmalldatetime,--出生日期

Sdeptnvarchar(20),--专业

Sclassnvarchar(20),--班级

Sphonenvarchar(20),--联系方式

Sbuildnvarchar(10),--公寓号

Sroomnvarchar(10),--寝室号

Sothernvarchar(50),--备注

foreignkey(Sbuild)referencesBuilding(Sbuild),--学生公寓关系

FOREIGNKEY(Sroom,Sbuild)REFERENCESDorm(Sroom,Sbuild),--学生寝室关系

4.2创建公寓信息表

createtableBuilding--公寓信息表

(idintnotnull,--记录编号,不空

Sbuildnvarchar(10)primarykey,--公寓号,主键

floornumint,--楼层数

roomnumint,--房间数

usetimesmalldatetime,--启用时间

Bothernvarchar(50),--备注

4.3创建寝室信息表

createtableDorm--寝室信息表

(idintnotnull,--记录编号

Sroomnvarchar(10),--寝室号

Dnumint,--可住人数

Dfeefloat(8),--住宿费用

Dphonenvarchar(10),--电话

Sbuildnvarchar(10),--公寓号

Dothernvarchar(50),--备注

primarykey(Sroom,Sbuild),--主键

4.4创建交费信息表

createtablePay--交费

(idintprimarykey,--记录编号,主键

Sbuildnvarchar(10),--公寓号

Sroomnvarchar(10),--寝室号

paytimesmalldatetime,--交费时间

paytypenvarchar(10),--交费类型

Pfeefloat(8),--金额

Pothernvarchar(50),--备注

foreignkey(Sroom,Sbuild)referencesDorm(Sroom,Sbuild),--交费公寓关系

4.5创建来访信息表

createtableVisit--来访登记表

(idintprimarykey,--记录编号,主键

Vnamenvarchar(10),--来访人姓名

Vnumint,--来访人数

Vnamednvarchar(10),--被访人姓名

relatnvarchar(10),--所属关系

Vtimesmalldatetime,--来访时间

Vendsmalldatetime,--结束时间

reasonnvarchar(50),--事由

watchnvarchar(10),--值班人

4.6创建操作员信息表

createtableOperator--操作员信息表

(idintprimarykey,--记录编号,主键

Oidnvarchar(10),--操作员id

Onamenvarchar(10),--操作员姓名

Opassnvarchar(10),--密码

Olimitchar(6),--权限

Oothernvarchar(50),--备注

4.7关系图如下

 

4.8插入数据

--插入公寓楼

insertintoBuilding

values('0001','01','05','100','2000-1-2','无')

insertintoBuilding

values('0002','02','05','100','2001-4-2','无')

insertintoBuilding

values('0003','03','06','150','2002-6-12','无')

insertintoBuilding

values('0004','04','05','100','2005-10-2','无')

insertintoBuilding

values('0005','05','05','100','2007-1-12','无')

select*fromBuilding

--插入寝室信息

insertintoDorm

values('0001','1-101','4','1000','45216535','01','无')

insertintoDorm

values('0002','2-101','4','1000','45216534','01','无')

insertintoDorm

values('0003','1-101','4','1000','45256535','02','无')

insertintoDorm

values('0004','2-101','4','1000','45816535','02','无')

insertintoDorm

values('0005','1-101','6','1000','45258735','03','无')

insertintoDorm

values('0006','2-101','6','1000','41256535','03','无')

select*fromDorm

--插入学生信息

insertintoStudent

values('0001','20100001','张一','男','1991-1-2','信科','一班','45648922','01','1-101','无')

insertintoStudent

values('0002','20100002','张二','男','1991-10-2','信科','二班','45656922','01','2-101','无')

insertintoStudent

values('0003','20100003','张三','男','1992-1-2','通信','一班','45848922','02','1-101','无')

insertintoStudent

values('0004','20100004','张四','男','1994-1-12','计本','三班','45588922','02','1-101','无')

insertintoStudent

values('0005','20100005','张五','女','1991-5-2','计本','一班','45658922','03','1-101','无')

insertintoStudent

values('0006','20100006','张六','女','1991-11-2','通信','一班','45468922','03','2-101','无')

insertintoStudent

values('0007','20100007','张七','女','1990-4-2','信科','一班','45596922','03','1-101','无')

insertintoStudent

values('0008','20100008','张八','女','1991-3-1','信科','二班','45648542','03','2-101','无')

insertintoStudent

values('0009','20100009','张九','男','1991-2-9','信科','一班','41248922','01','1-101','无')

insertintoStudent

values('0010','20100010','张十','男','1991-3-5','通信','一班','45641522','02','1-101','无')

select*fromStudent

--插入缴费信息

insertintoPay

values('0001','01','1-101','2010-5-1','水电费','86','无')

insertintoPay

values('0002','01','2-101','2010-5-1','水电费','70','无')

insertintoPay

values('0003','02','1-101','2010-5-1','水电费','56','无')

insertintoPay

values('0004','03','1-101','2010-5-1','水电费','90','无')

insertintoPay

values('0005','03','2-101','2010-5-1','水电费','80','无')

select*fromPay

--插入来访信息

insertintoVisit

values('0001','李四','1','张四','朋友','2010-5-3','2010-5-3','玩','王五')

insertintoVisit

values('0002','赵六','2','张二','同学','2010-7-3','2010-7-5','玩','王五')

select*fromVisit

--插入操作员信息

insertintoOperator

values('0001','425001','李飞','001240','','')

select*fromOperator

4.9设置触发器

createtriggerInsert_or_Update_Dnum

beforeinsertorupdateonDorm

foreachrow

asbegin

if(new.Sbuild='01')and(new.Dnum>4)then

new.Dnum:

=4;

endif;

end;

对寝室人数设置触发器,当人数超过4时自动改为4,同样可对公寓楼02,03,04设置,而对公寓楼05和06设置寝室人数为6.

同时还可以对寝室费用的设置触发器,寝室费用都是1000快,当输入数据不等于1000时,自动改为1000.

五数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1