学生公寓管理系统Word文档格式.docx

上传人:b****6 文档编号:20558214 上传时间:2023-01-24 格式:DOCX 页数:22 大小:203.78KB
下载 相关 举报
学生公寓管理系统Word文档格式.docx_第1页
第1页 / 共22页
学生公寓管理系统Word文档格式.docx_第2页
第2页 / 共22页
学生公寓管理系统Word文档格式.docx_第3页
第3页 / 共22页
学生公寓管理系统Word文档格式.docx_第4页
第4页 / 共22页
学生公寓管理系统Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

学生公寓管理系统Word文档格式.docx

《学生公寓管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生公寓管理系统Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

学生公寓管理系统Word文档格式.docx

每学期注册登记,以及费用缴纳等;

4、来访:

人员来访登记及结束访问登记等;

5、查询功能;

6、账户功能。

根据上述功能分析,可以设计出该系统的体系结构图:

系统流程图如下:

重试

失败失败

公寓楼管理信息

学生信息管理

缴费管理

来访登记管理

管理自己的用户信息

①管理自己的用户信息

②管理普通用户的用户信息

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

3、数据库系统设计

3.1概念结构设计

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

学生系统的E-R图如下所示:

  公寓系统的E-R图如下所示:

  寝室系统的E-R图如下所示:

  缴费信息的E-R图如下所示:

来访信息的E-R图如下所示:

操作员信息的E-R图如下所示:

  综上进行优化后,得到的最终总E-R图如下:

3.2逻辑结构设计

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

关系模型:

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

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

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

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

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

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

(2)数据模型的优化

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

1、确定数据依赖

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

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

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

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

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

由于不同的公寓楼会产生相同的寝室号,所以仅用寝室号无法单独确定某一特定的寝室,但限定在公寓楼内的寝室号却是唯一的,故此处选用公寓好和寝室号共同用作主键。

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

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

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

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

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

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

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

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

由分析可得,数据关系中已不存在数据冗余:

学生关系中由学号决定公寓号和寝室号;

公寓关系中公寓号作为主键;

寝室关系中,尽管寝室限制在了公寓中,但此处的寝室实体指代的是所有学生公寓中的寝室,故单独一个寝室号无法确定特定的某一寝室,而选用寝室号和公寓号两者共同作为主键来确定寝室;

缴费关系中,采用记录编号作为主键,此外也可采用寝室号和公寓号共同作为主键,理由同上。

3、消除传递依赖

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

3.3物理结构设计

学生信息表结构

编号

字符名称

数据类型

长度

说明

1

id

int

4

记录编号,不允许空

2

学号

nvarchar

30

学生学号,主键

3

姓名

20

允许空

性别

char

不允许空

5

出生日期

smalldatetime

6

专业

7

班级

8

联系方式

9

公寓号

10

寝室号

11

备注

50

公寓信息表结构

编号

字符名称

数据类型

长度

说明

公寓楼编号,主键

楼层数

房间数

启用时间

寝室信息表结构

字段名称

记录编号,不空

主键

可住人数

住宿费用

float

5

电话

交费信息表结构

编号,主键

交费时间

交费类型

金额

来访信息表结构

记录编号,主键

来访人姓名

人数

被访者姓名

所属关系

来访时间

结束时间

事由

值班人

操作员信息表结构

操作员id

操作员姓名

密码

权限

4、数据库实现

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

Sroomnvarchar(10),

Dnumint,

Dfeefloat(8),

Dphonenvarchar(10),

Sbuildnvarchar(10),

Dothernvarchar(50),

primarykey(Sroom,Sbuild),

4.4创建交费信息表

createtablePay

(idintprimarykey,

paytimesmalldatetime,

paytypenvarchar(10),

Pfeefloat(8),

Pothernvarchar(50),

foreignkey(Sroom,Sbuild)referencesDorm(Sroom,Sbuild),

4.5创建来访信息表

createtableVisit

Vnamenvarchar(10),

Vnumint,

Vnamednvarchar(10),

relatnvarchar(10),

Vtimesmalldatetime,

Vendsmalldatetime,

reasonnvarchar(50),

watchnvarchar(10),

4.6创建操作员信息表

createtableOperator

(idintprimarykey,

Oidnvarchar(10),

Onamenvarchar(10),

Opassnvarchar(10),

Olimitchar(6),

Oothernvarchar(50),

4.7关系图如下

4.8插入数据

--插入公寓楼

insertintoBuilding

values('

0001'

'

01'

05'

100'

2000-1-1'

‘无'

0002'

02'

2001-1-1'

无'

0003'

03'

06'

150'

2002-1-1'

0004'

04'

2005-1-1'

0005'

2007-1-1'

select*fromBuilding

--插入寝室信息

insertintoDorm

1-101'

4'

1000'

45216535'

2-101'

45216534'

45256535'

45816535'

6'

45258735'

0006'

41256535'

select*fromDorm

--插入学生信息

insertintoStudent

20160001'

王一'

男'

1994-1-2'

科甲'

一班'

11111111'

20160002'

王二'

1994-10-2'

二班'

22222222'

20160003'

王三'

1995-1-2'

科乙'

3333333'

20160004'

王四'

1994-1-12'

科丙'

三班'

44444444'

20160005'

王五'

女'

1994-5-2'

55555555'

20160006'

王六'

1994-11-2'

66666666'

0007'

20160007'

王七'

1993-4-2'

77777777'

0008'

20160008'

王八'

1994-3-1'

88888888'

0009'

20160009'

王九'

1994-2-9'

99999999'

0010'

20160010'

王十'

1994-3-5'

00000000'

select*fromStudent

--插入缴费信息

insertintoPay

2016-5-1'

水电费'

86'

70'

56'

90'

80'

select*fromPay

--插入来访信息

insertintoVisit

张三'

1'

朋友'

2016-5-3'

玩'

刘五'

2'

同学'

2016-7-3'

2016-7-5'

select*fromVisit

--插入操作员信息

insertintoOperator

425001'

班超'

001240'

'

select*fromOperator

4.9设置触发器

createtriggerInsert_or_Update_Dnum

beforeinsertorupdateonDorm

foreachrow

asbegin

if(new.Sbuild='

)and(new.Dnum>

4)then

new.Dnum:

=4;

endif;

end;

对寝室人数设置触发器:

当人数超过4时自动改为4。

同样,可对公寓楼02,03,04设置,对公寓楼05和06设置寝室人数为6。

此外还可以对寝室费用的设置触发器,将寝室费用全部设置为1000元;

当输入数据不等于1000时,自动改为1000。

5、数据库运行

6、课程设计感想

  通过本次课程设计,我们经历了如下过程:

1、确定课设的目的,并由此确定课设的任务;

2、对问题进行需求分析;

3、对系统流程进行设计;

4、对模块分类和系统概念结构进行设计;

5、对E-R图进行设计;

6、对系统逻辑结构进行设计和优化;

7、对物理结构进行设计和实现;

8、对数据库进行实现。

在这一实践过程中,我们更加深入地理解了日前学习到的数据库理论,并在实际操作中大幅巩固了所学知识,磨练了对于给定结构的数据库进行创建、操作、建立系统程序、调试等等过程,使我们更深一层地明白了知识的巩固必须在实践中进行,让我们受益匪浅。

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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