学生借用教室管理系统_第1页
学生借用教室管理系统_第2页
学生借用教室管理系统_第3页
学生借用教室管理系统_第4页
学生借用教室管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计

课程名称数据库应用与设计——

题目名称.学生借用教室管理系统

2023年12月15日

目录

一、概述及系统需求分析错误!未定义书签。

二、数据库概念结构设计5

学生借用教室管理系统概念结构设计(E-R图)6

三、数据库的逻辑结构设计7

3.1E-R图向关系模型的转换7

3.2用数据库建表并完毕数据的完整性8

3.3建表的脚本语句8

3.4建立关系国11

3.5数据输入11

3.6创建视图13

四、功能实现13

功能模块分析错误!未定义书签。

五、破坏数据库完整性调试错误!未定义书签。

5.1primarykey约束。错误!未定义书签。

5.2unique约束错误!未定义书签。

5.3check约束17

六、课程设计心得体会错误!未定义书签。

一、概论及系统需求分析

对“学生活动借用教室管理系统”需求概述有如下几个方

面:

一方面,背景是现今大学生们都喜欢积极参与各式各样的学

生活动来提高自己的综合素质,所以学生们借用教室来进行活动成为

了在大学里最普遍的现象,但与此同时,学校中的“学生活动借用教

室管理系统”却跟不上时代的步伐,管理系统没有得到很好的完善,

学生们从中钻了不少空子。

问题是导致学校在管理借用教室的工作出现了不少问题。

目的是为了解决在管理过程中存在的种种问题,防止例如教室被

违规使用等情况的出现,设计一个较为完善的“学生活动借用教室管

理系统”数据库就成为解决问题的当务之急。

为了满足学校管理层有效管理的目的和学生需求,“学生活动借

用教室管理系统”应当可以具有多种性能,比如:高效性,灵活性,

实用性等。

“学生活动借用教室管理系统”重要如下:

1.学生活动借用教室登记处

学生活动借用教室现要进行相关信息的登记,申请表格式如下:

学生借用教室信息登记表

姓名学号借用时间借用教室规模借用教室编号

(1)登记处需要将信息录入数据库系统,并对信息变化进行更改

(2)查询教室空闲情况以及设施维修情况之后再安排教室给学生

2.教室管理处

(1)安排教室维修人员值班,检查教室设施使用情况,登记设施

出现问题和维修情况

(2)对学生活动期间使用教室记录,职工在记录的时候对教室查

收需

登记表格式如下:

使用登记表

序号职工号学号

“学生借用教室管理系统”需求分析

教室借用管理工作如下:

1、数据的收集:

(1)需要进行学生活动借用教室登记:涉及借用时间,学生姓名,

学生学号等

(2)录入学生活动借用教室编号,借用忙间等

(3)录入职工负责教室安排:涉及工作人员职工号,职工姓名,负

责教室编号等

(4)完毕教室使用登记:记录职工信息,借用教室的学生学号等

2、管理:

(1)系统的信息要及时更新,在借用教室完毕之后要及时删除借用

信息,以便学生教室借用

(2)教室的设施情况出现问题要在系统中进行及时的更新,用来作

为教室能否被借用的参照条件之一。

3、查询工作

①查询可借用教室:能查询到教室借用情况,设施情况的教室

的情况

②查询职工负责教室的人员安排

③查询教室设施情况信息

二、数据库概念结构设计

“学生借用教室管理系统”概念结构设计(E-R图)

通过使用PowerDesigner工具制作出如下六个相关的实体,联系,属

学生活动借用教室登记处

分E-R图

1

管理记录处

分E-R图

整体的系统E-R图

三、数据库的逻辑结构设计

3.1E-R图向关系模型的转化

教堂

掣〈嘉〉

势用char(SO)<甚ehariSQ)£k

块板int

ck*r2)IT-学生一僧可一数至弟二姓交char(30)

谀法书猊char(20)宣弓苴宣编与char(30)

latetise

几使可记于一涉及-教皇工期二_负责一掌主

w陈二

二T

-:Ear<汕〉

三4

4char(30)<fkl>

上Hr(30)4

与?int<fkl>

■--一

三ch*r(10)int<fk2>

眼.

*±-.”

intr一char(30)

s-_■,?char(30)

3.2用数据库建表并完毕数据的完整性

建数据库的语句:createdatabase学生借用教室管理系统

在“学生借用教室管理系统”中建立模式语句是:createschemalyx

数据完整性分为四类:实体完整性(EntityIntegrity)、域完整性

(DomainIntegrity参照完整性(ReferentialIntegrity)、用户自定义

完整性(User-definedlntegrity)o

实体完整性:在primarykey定义的主属性不能为空值

域完整性:参照的属性都是一致的域取值

参照完整性:在职工表中,教室编号是参照了教室表中编号的属性,

使用登记表中分别参照了职工表的工号和学生表的学号,学生表的借

用教室编号参照了教室表中的编号,在关系图中可以看出四个表的参

照关系符合了参照完整性

用户定义完整性:在四个表中出现了多个check的约束,这是用来限

制值的域范围,在数据输入的时候需要考虑到check约束,否则插入

数据不能完毕。

3.3建表的脚本语句

USE[学生借用教室管理系统]

GO

/******对象:Table教室]脚本日期:12/30/202316:20:37******/

SETANS工_NULLSON

GO

SETQUOTED.工DENT工F工ERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[lyx].:教室](

[编号][char](30)NOTNULL,

[规模][char](2)NULL,

[设施情况)[char](20)NULL,

PRIMARYKEYCLUSTERED

(

[编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY

=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LCCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:Table[lyx].[使用记录]脚本日期:12/30/202316:20:38

★★★★★★/

SETANS工_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[lyx].:使用记录](

[序号][int]NOTNULL,

[职工号][cha门(10)NULL,

[学生号][int]NULL,

PRIMARYKEYCLUSTERED

(

[序号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY

=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LCCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:Table[lyx].[学生]脚本口期:12/30/202316:20:40******/

SETANSINULLSON

GO

SETQUOTED.IDENTIFIERON

GO

SETANS工_PADD1NGON

GO

CREATETABLE〔lyx].:学生)(

[姓名][char](30)NULL,

[学号][int]NOTNULL,

[借用教室编号][char](30)NULL,

[借用时间][datetime]NULLDEFAULT(getdate())z

PRIMARYKEYCLUSTERED

(

[学号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY

=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LCCKS=ON)ON[PRIMARY],

UNIQUENONCLUSTERED

(

[借用教室编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY

=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LCCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:Table[lyx].[职工]脚本口期:12/30/202316:20:41******/

SETANSINULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSIPADDINGON

GO

CREATETABLE[lyx].:职工](

[工号][char](10)NOTNULL,

[姓名][char](30)NULL,

[教室编号)[char](30)NULL,

PRIMARYKEYCLUSTERED

[工号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY

=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LCCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

/******对象:Check[CK_教室_编号_7D78A4E7]脚本日期:12/30/2023

16:20:37******/

ALTERTABLE乂].[教室]WITHCHECKADDCHECK(([编号]like

1[A-D][1-9][0-9][0-9],))

GO

/******对象:Check[CK__教室—规模_7E6CC920)脚本日期:12/30/2023

16:20:37******/

ALTERTABLE[lyx].[教室]WITHCHECKADDCHECK(([规模]='小,OR[规模]=,

中,OR[规模广,大,))

GO

/******对象:Check[CK_教室_设施情况_7F60ED59]脚本日期:12/30/2023

16:20:37******/

ALTERTABLE[lyx].[教室]WITHCHECKADDCHECK(([设施情况]=,维修中,OR[设

施情况]正常,))

GO

/******对象:Check[CK__职工—工号_07020F21]脚本日期:12/30/2023

16:20:41******/

ALTERTABLE[lyx].[IRI]WITHCHECKADDCHECK(([工号]like

,20(0-9][1-9]1))

GO

/******对象:ForeignKey[FK_使用记录_学生号_0BC6C43E]脚本日期:

12/30/202316:20:38******/

ALTERTABLE[lyx].[使用记录]WITHCHECKADDFOREIGNKEY([学生号])

REFERENCES[lyx].([学号J)

GO

/******对象:ForeignKey[FK_使用记录_职工号_0AD2A005]脚本日期:

12/30/202316:20:38******/

ALTERTABLE[lyx].[使用记录)WITHCHECKADDFOREIGNKEY([职工号])

REFERENCES[ly又].[职工]([工号])

GO

/******对象:ForeignKey[FK_学生_借用教室编号_03317E3D]脚本日期:

12/30/202316:20:40******/

ALTERTABLE[lyx].[学生]WITHCHECKADDFOREIGNKEY([借用教室编号])

REFERENCES[lyx].[教室]([编号])

GO

/******对象:ForeiqnKey[FK_职工_教室编号_07F6335A]脚本日期:

12/30/202316:20:41******/

ALTERTABLE[lyx].[IRI]WITHCHECKADDFOREIGNKEY([教室编号])

REFERENCES[lyx].[教室]([编号])

GO

3.4建立关系图

职工(lyx)

8工号

姓名

教室编号

0

3.5数据输入

在教室表中插入数据:

insertintolyx.教室(编号,规模,设施情况)

values('AIOII,大,J正常,)

insertintolyx.教室(编号,规模,设施情况)

values('A102'大「正常')

insertintolyx.教室(编号,规模,设施情况)

vaIues「A103l,大I,正常f)

insertintolyx.教室(编号,规模,设施情况)

values('B201'3小I'正常,)

insertintolyx.教室(编号,规模,设施情况)

values('B104'J中I,维修中,)

insertintolyx.教室(编号,规模,设施情况)

values('C301','中「正常')

在学生表中插入数据:

insertintolyx.学生(姓名,学号,借用教室编号,借月时间)

values('zhansan*,*001'z*AIOI\default)

insertintolyx.学生(姓名,学号,借用教室编号,借月时间)

values('lisi',»002\fA1031,default)

insertintolyx.学生(姓名,学号,借用教室编号,借月时间)

values('liming','004*,*B104*,default)

insertintolyx.学生(姓名,学号,借用教室编号,借月时间)

values(1zhanan*,'ll1*,1C301*,default)

insertintolyx.学生(姓名,学号,借用教室编号,借月时间)

values('zhanshan',*010*,*A102*rdefault)

在职工表中插入数据:

insertintolyx.职工(工号,姓名,教室编号)

values('ZG01'z*xiaoLin',*A101')

insertintolyx.职工(工号,姓名,教室编号)

values('ZG02'Jxiao二o'JA102')

insertintolyx.职工(工号,姓名,教室编号)

1

values('ZG03*z^iaolou*,•AlOS)

insertintolyx.职工(工号,姓名,教室编号)

values('ZG04',*xiaokan*,*B1041)

insertintolyx.职工(工号,姓名,教室编号)

values('ZG06',•xiaoli','CSOl1)

在使用登记了表中插入数据:

insertintolyx.使用记录(序号,职工号,学生号)

values('1\'ZGOl','001')

insertintolyx.使用记录(序号,职工号,学生号)

values('2‘,'ZG02','010')

insertintolyx.使用记录(序号,职工号,学生号)

values('3'ZG03'002')

insertintolyx.使用记录(序号,职工号,学生号)

values('4',12004','0041)

3.6创建视图

建立一个“教室使用情况”视图,在视图中将,学生学号显

示出来,视图的数据源于教室表中教室编号,设备情况和学

生表的学号

createviewlyx.教室使用情况as

select编号,设施情况,学号

fromlyx.教室fulljoinlyx.学生on教室.编号=学生.借用教室编号

四、功能实现

功能模块分析

(1)向数据库表格插入数据

使用insert命令insertinto模式名.表名values('属性名

例如:

使用登记/表中插入数据:insertinto工yx.使用记录(序号,职工号,学生号)

values('4'z'ZG04',1004')

职工表中插入数据:insertintolyx.职工(工号,姓名,教室编号)

values(*ZG06',*xiaoli',*C3011)

学生表中插入数据:insertintolyx.学生(姓名,学号,借用教室编号,借用时间)

,1

values(*zhanshan*z010*z*A102zdefault)

教室表中插入数据:insertinto工yx.教室(编号,规模,设施情况)

values「A105I,中一正常I

(2)信息查询借用教室

查询编号,设施情况,学号的表,看是否教室符合借用条件

select编号,设施情况,学号

from工yx.教室fulljoinlyx.学生on教室.编号=学生.借用教室编号

select编号,设施情况,学号

fron•.工yx.教室fulljoin工yx.学生on教室.编号=学生.借用教室编号

III

□结果工消息

编号设施情…学号

|AIOI1

1正常1

2A102正常10

3A103正常2

4B104维修中4

5B201正常NULL

6C301正常111

2、管理:

(1)系统的信息要及时更新,在借用教室完毕之后要及时删除借用

信息

例如删除过期的学生借用教室信息:

deletelyx.使用记录where学生号in(select学号fromlyx.学生where学号=

,001')

deletelyx.使用记录where学生号in(select学号fromlyx.学牛where学号='001')

rn

J消息

<1行受影响)

(2)教室的设施情况出现问题要在系统中进行及时的更新,用来作

为教室能否被借用的参照条件之一。

如:对,A102'教室的设施情况进行及时修改,避免学生借用到坏设

施的教室

updatelyx.教室set设施情况=,维修中,where编号='A1021

3、查询工作

①查询可借用教室:能查询到教室借用情况,设施情况的教室

的情况,教室借用情况一览表

select编号,设施情况,学号fromlyx.教室fulljoinlyx.学生on教室.编号-学生.借用教室编号

4[01

N结果_」消息

编岩设随情.字号

1iA101|正常1

2A102维修中10

3A103维修中2

4B104正常4

5B201正常NULL

6C301正常111

②查询职工负责教室的人员安排

select工号,教室编号from1yx.职工

select工号,教室编号fromlyx.职工

।Z

3结果」消息

工号教室编号

1[ZG01^A102

2UZG02A103

3ZG03A101

4ZG04B104

5ZG05B201

6ZG06C301

③查询教室设施情况信息

select设施情况fromlyx.教室

select设施情况from工yx.教室

N结果画消息

设施情况

•・・・・♦•♦«•・・・•・♦•・«・・•・・♦♦♦«、

1:正常

2雍穆市

3维修中

4正常

5正常

6正常

五、破坏数据库完整性调试

5.1primarykey约束

insertintolyx.教室(编号,规模,设施情况)

values('B104'J中I'正常,)

insArtintn1yx.教室(编号,规模,设施情况)

values('B104‘,'小'正常')

insertintolyx.教室编号,规模,设施情况

values(*B1吧]中I,正常,)

insertintolyx.教室(编号,规模,设施情况:

values(,B104一小,,1正常,)

tj消息

消息2627,级别14,状态1,第1行

违反了PRIMARYKEY约束,PK_教室_7C8480AE,。不能在对象Pyx.教室,中插入重复键。

语句已终止。

5.2unique约束

insertintolyx.学生(姓名,学号,借用教室编号,借月时间)

values('zhanshan',*010*,*A102*,default)

insertintolyx.学生(姓名,学号,借用教室编号,借月时间)

values('wangmin',1012',*A102default)

insertinto1yx.学生,姓名,学号,借用教室编号,借用时间)

values('zhanshan1,*010*,*A102',default)

insertinrolyx.学生(姓名,学号,借用教室编号,借用时间)

values('wangmin1,•012','A102',default)

4|一nF

西消息

消息

2627,级另14,状态1,第1行-

了UNIQUEKEY约束,可_学生_023D5A04,。不能在对象,yx.学生,中插入重复键

已终止。

5.3check约束

insertintolyx.教室(编号,规模,设施情况)

values('B105','小','不正常')

ansen;intolyx.教至褊号,观稹毁地情讥

values

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论