数据库课程设计学生宿舍管理系统Word下载.docx

上传人:b****3 文档编号:7884662 上传时间:2023-05-09 格式:DOCX 页数:21 大小:441.60KB
下载 相关 举报
数据库课程设计学生宿舍管理系统Word下载.docx_第1页
第1页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第2页
第2页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第3页
第3页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第4页
第4页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第5页
第5页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第6页
第6页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第7页
第7页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第8页
第8页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第9页
第9页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第10页
第10页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第11页
第11页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第12页
第12页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第13页
第13页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第14页
第14页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第15页
第15页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第16页
第16页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第17页
第17页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第18页
第18页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第19页
第19页 / 共21页
数据库课程设计学生宿舍管理系统Word下载.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计学生宿舍管理系统Word下载.docx

《数据库课程设计学生宿舍管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生宿舍管理系统Word下载.docx(21页珍藏版)》请在冰点文库上搜索。

数据库课程设计学生宿舍管理系统Word下载.docx

按公寓楼号、学生姓名等查询住宿信息。

出入登记(可选):

对学生进出公寓的情况进行登记、实现基本的出入监控功能

3、概念结构设计

、概念结构设计工具(E-R模型)

、入住登记子系统(局部)

、子系统描述

主要是学生入住的管理,包括学生入住的申请,查询是否存在该学生,查询是否有空余的宿舍以及宿舍的分配

、分E-R图

、说明

可以通过这个系统来解决学生入住的申请和分配等各种问题

、外出登记子系统

主要是学生外出的管理问题,包括学生外出的申请,外出的审核,外出的等级等为题。

可以通过这个系统解决学生外出的登记的各种问题。

、调整宿舍子系统

主要是学生宿舍的调整,宿舍表的更新问题。

可以通过这个系统解决学生宿舍的调整问题,包括宿舍的申请调整,调整原因的判断以及调整后宿舍表的更新问题。

、宿舍智能分配子系统

主要是学生宿舍的分配问题。

可以通过这个子系统来分配学生的宿舍,包括按学院分配以及按年级分配。

、信息查询子系统

主要是查询学生宿舍的问题。

可以通过子系统来查询学生的宿舍包括按公寓查询以及按学生名字查询。

、总体E-R图

4、逻辑结构设计

、关系数据模式

、学生信息(stu_info)

字段

描述

数据类型

数据长度

NULL

Primarykey

约束

Stu_num

学号

Int

N

Y

name

姓名

varchar

12

sex

性别

4

男/女

age

年龄

int

0-99

fac

所在学院

50

class

所在班级

celphone

电话

16

Entry_date

入学日期

date

、宿舍信息(dorm_info)

dorm_num

宿舍编号

flo

所在楼层

0-20

Bad_amount

床位数

<

=4

Avi_bad

可用床位数

unit_price

单价

float

、出入信息(inout_info)

stu_num

foreignkey

所住宿舍

left_time

离开时间

Datetime

back_time

回来时间

reason

离开原因

over_time

是否晚归

2

是/否

、入住信息(stay_info)

Have_in

已住人数

in_date

入住日期

、调整信息

src

原宿舍

dst

调后宿舍

ch_date

调整日期

ch_reason

调整原因

视图的设计

宿舍信息表视图

创建查看宿舍信息表的视图,其中应该包含宿舍的所有信息。

并且应该按可用床位数递减

createviewview_dorm

AS

SELECTtop100[dorm_num],[flo],[bad_amount],[unit_price],[avi_bad]

FROMdorm_infoorderbyavi_baddesc

创建按宿舍号查看住宿信息的视图,其中应包含住宿登记时的所有信息,并且按照宿舍号递减排列

createviewview_stay_bydorm

SELECTtop100dorm_num,stu_num,have_in,in_date

FROMstay_infoorderbydorm_numdesc

创建按学号查看住宿信息的视图,其中应包含住宿登记时的所有信息,并且按照宿舍号递减排列

createviewview_stay_bystu

FROMstay_infoorderbystu_numdesc

创建查看出入信息的视图,其中应包含出入登记时的所有信息,并且按照离开时间递减排列

createviewview_io_info

as

SELECTtop100stu_num,dorm_num,left_time,back_time,reason,over_time

FROMorderbyleft_time

5、数据库物理设计与实施

、数据库应用的硬件、软件环境介绍

电脑配置为AMDAthlon(速龙)IIX2260双核处理器,2G内存,WindowsXP专业版32位SP3(DirectX)操作系统,安装mysql数据库服务做测试。

、物理结构设计

考虑到索引能加快查询的速度,所以在需要经常进行查询的列创建索引。

其中学生信息的学号、宿舍信息的宿舍编号、入住信息中学生的学号和宿舍的编号,这几个列都需要创建索引。

由于前两项已经是主键,所以无需额外创建索引。

现在为后两项创建索引。

、索引的设计

为入住信息中学生的学号和宿舍的编号创建索引:

createuniqueindex入住信息中学生的学号ix_stay_info1onstay_info(stu_num)

createindex宿舍的编号ix_stay_info2onstay_info(dorm_num)

、建立数据库

首先创建名为sdms的学生宿舍管理数据库,createdatabasesdms.

、创建宿舍信息表

usesdms

createtabledorm_info(

dorm_numintnotnullprimarykey,

flointnotnull,

bad_amountintnotnull,

avi_badintnull,

unit_pricefloatnotnull

并且创建约束,使床位数和可用床位数不能大于4个,因为一个宿舍最多能住四个人,并且楼层数在0-20之间。

altertabledorm_infoaddconstraintck_badcheck(bad_amount<

=4)

altertabledorm_infoaddconstraintck_avicheck(avi_bad<

altertabledorm_infoaddconstraintck_flocheck(flo>

=0andflo<

=20)

、创建学生信息表

createtablestu_info(

stu_numintnotnullprimarykey,

namevarchar(12)notnull,

sexvarchar(4)notnull,

ageintnotnull,

facvarchar(50)notnull,

classvarchar(50)notnull,

celphonevarchar(16)notnull,

entry_datedatenotnull

创建约束,性别只能是男或女,并且年龄只能在0-99之间

altertablestu_infoaddconstraintch_sexcheck(sexin('

男'

'

女'

))

ALTERTABLEstu_infoADDconstraintck_agecheck(age>

=0andage<

=99)

、创建出人登记信息表

createtableinout_info(

stu_numintnotnullreferencesstu_info(stu_num),

dorm_numintnotnullreferencesdorm_info(dorm_num),

left_timedatetimenotnull,

back_timedatetimenotnull,

reasonvarchar(50)notnull,

over_timevarchar

(2)notnull

创建约束,是否晚归字段这能选择是或者否。

altertableinout_infoaddconstraintck_otcheck(over_timein('

是'

否'

、创建入住信息登记表

createtablestay_info(

dorm_numintnotnullreferencesdorm_info(dorm_num),

stu_numintnotnullreferencesstu_info(stu_num),

have_inintnotnull,

in_datedate

创建约束,已住人数不能超过4个.

altertablestay_infoaddconstraintck_incheck(have_in<

、创建宿舍调整登记表

createtablechange_info(

stu_numintnotnullprimarykey,

srcintnotnull,

dstintnotnull,

ch_datedatenotnull,

ch_reasonvarchar(50)notnull

、加载测试数据

、加载住宿信息

创建一个存储过程用于录入住宿信息。

USE[sdms]

GO

SETANSI_NULLSON

SETQUOTED_IDENTIFIERON

CREATEPROCEDURE[dbo].[insert_stay_info]

@dorm_numint,@stu_numint,@have_inint

BEGIN

SETNOCOUNTON;

insertintostay_infovalues(@dorm_num,@stu_num,@have_in,GETDATE())

END

其中包括要住宿的宿舍号,要住宿的学生学号,该宿舍应经住了多少人。

如图所示:

单击确定后数据成功的录入到数据库的住宿信息表中,如图:

学号为02的学号已经插入到住宿信息表中。

、记载学生信息

创建一个存储过程用于录入学生信息。

CREATEPROCEDURE[dbo].[insert_stu_info]

@stu_numint,@namevarchar(12),@sexvarchar(4),@facvarchar(50),@classvarchar(50),@celphonevarchar(16),@ageint

insertintostu_infovalues(@stu_num,@name,@sex,@fac,@class,@celphone,GETDATE(),@age)

其中包括要住宿的学号、姓名、性别、所在学院、班级、电话、年龄。

单击确定后数据成功的录入到数据库的学生信息表中,如图:

学号为04的学生已经成功录入到学生信息表中。

、加载宿舍信息

创建一个存储过程用于录入宿舍信息。

CREATEPROCEDUREinsert_dorm_info

@dorm_numint,@floint,@bad_amountint,@unit_pricefloat,@avi_badint

insertintodorm_infovalues(@dorm_num,@flo,@bad_amount,@unit_price,@avi_bad)

其中包括要住宿的宿舍号、所在楼层、床位位数、单价、空余床位。

击确定后数据成功的录入到数据库的宿舍信息表中,如图:

6、数据操作与实现

根据需求中给出的数据处理要求,设计访问数据库的具体要求,并用SQL语言加以实现。

运行SQL语句进行测试。

、数据查询操作

创建存储过程view_dorm_bydrom,实现按公寓查找宿舍的住宿信息。

CREATEPROCEDUREview_dorm_bydrom

@dorm_numint

updatedorm_infosetavi_bad=((selectavi_badfromdorm_infowheredorm_num=@dorm_num)-1)wheredorm_num=@dorm_num--更新宿舍信息表中的可用床位数(空余床位数)

end

closecur2

执行登记住宿信息表的存储过程

插入前:

插入后:

、按学院分配宿舍存储过程

创建一个存储过程,用于按学院分配宿舍。

使得能按同学院的学生能尽量的在同一宿舍住。

CREATEPROCEDURE[dbo].[allowdorm_byfac]

@facvarchar(20)

declare@offsetint,@bad_amountint,@sumint

set@offset=1

set@bad_amount=1

set@sum=(selectdistinct(stu_num)fromstu_infowherefac=@fac)

while(@sum>

0)

begin

declare@stu_numint,@dorm_numint

set@stu_num=(SELECTtop(@bad_amount)stu_numfromstu_infowherefac=@facandstu_numnotin(selecttop(@offset)stu_num

fromstu_infowherefac=@fac))

set@dorm_num=(selectdorm_numfromdorm_infowhereavi_bad=4)

insertintostay_infovalues(@dorm_num,@stu_num,4,GETDATE())

set@sum=@sum-1

END

执行存储过程,如图:

7、收获、体会和建议

做课程设计的这段时间来学到了很多东西,以前对SQL,只会照着书上的SQL语句写,没有对以前的知识进行系统的了解,没有把各个部分知识结合在一起。

通过做这次课程设计,我对数据库设计的各个方面都加深了理解,只有数据流程图和数字字典做好了,才能进行下面的E-R图设计,仔仔细细做才能不出问题。

体会到把知识应用于实践是不容易的,学到了课本上没有的知识,只有实践才能找出自己的问题。

通过本次课程设计我对数据库的理解更加深刻了,清楚的认识了视图、索引、存储过程、触发器、一对多、多对多的设计模型。

并且在这个宿舍管理设计中也都用上了。

以前都只用mysql进行开发,虽然都支持标准的sql语句,但是在一些细节方面还是值得注意的,比如sqlserver中独特的TOP语句就值得考量。

在其他数据库中的LIMIT语句虽然更加强大,sqlserver也有他方便的地方。

通过本次我合作自主的制作本作品对数据库有了一个很好的整体理解,虽然有不足之处,但是自己完成确实有趣味。

由于时间比较紧,我们所做的课程设计肯定还存在许多的不足之处,程序中也存在许多小错误,在以后的学习中会慢慢改过来努力做得更好。

8、主要参考文献。

《SQLServer从入门到精通》清华大学出版社明日科技SQLServer开发团队编着

作者:

出版社:

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2