版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计
课程名称数据库应用与设计——
题目名称.学生借用教室管理系统
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国燃油(气)节能器市场调查研究报告
- 2025年中国渔线轮配件市场调查研究报告
- 2025年中国活动主机柜市场调查研究报告
- 2025年中国水果藕粉市场调查研究报告
- 2025年中国卧式衬氟离心泵市场调查研究报告
- 社区护理与社区环境改善
- 气切术后疼痛管理药物选择
- 护理用药安全的跨文化沟通
- 护理导尿术的操作要点
- 护理用药安全的最佳实践分享
- 《事故汽车常用零部件修复与更换判别规范》
- DL-T623-2010电力系统继电保护及安全自动装置运行评价规程
- 液压与液力传动全套课件
- 弯头知识课件
- SBT 11215-2018 商品交易市场建设与经营管理术语
- 了解妊娠合并症对母婴健康的影响
- “情景体验式教学模式”在小学英语教学中的应用
- 汽车吊、随车吊起重吊装施工方案
- ISO17025:2017管理评审报告(CNAS可编辑)
- T-ZGKSL 003-2023 可溶性微晶贴
- EDA课程设计-病房呼叫系统的设计
评论
0/150
提交评论