数据库课程设计学生证管理系统.docx
- 文档编号:30475624
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:14
- 大小:57.93KB
数据库课程设计学生证管理系统.docx
《数据库课程设计学生证管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生证管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
数据库课程设计学生证管理系统
一.实验目的——-——--—------———--———-—------—---——---—--———--—-—--—-----2
二.实验时间,地点-----—-----—------——-----——--———-——--————-—--———--2
三.实验目的----————-—---—-—————-—————----—--——--——--------—---—-———-—2
四.课程设计要求--—----———-———--—-——-——-—————---—--—-————-—-----—--—2
五.实现思路—---——-—--——-———----——-—--———-——-————-————----————-——-——--2
六.需求分析---—------—----—-—-———--——-—-—--———--—----——-—-—-—-—-——-——3
1.系统总需求-—-————--——--—————-—----—-——-——---——-——---——---—-—-——-3
2.数据流-—-——-——-—--——-—-——--——-—--—---——--——-----——--———--——--—--——3
七.实验过程-——--————-—--——-——-————-—---—-—-—---——-—-——-———————---———-4
1.E—R图--——-----———--—-———--——-—-——-—-——---——---—-——-——-———-——---——-4
2。
关系模式--——----——-—-——-——--————--——————--——-—-—----—---——-—-----5
3.实验代码及运行结果-----———--——-—————--——-—--—---—--—————-——-6
八.实验总结--—-——--—--—--—---—----——---——-—-———-——-—-—---—---—-———-19
九.心得体会---—-—-—--—————-————------——-——-—-—---———-—-—-—-—----———20
一,实验题目:
学生证管理系统数据库的设计与实现
二,实验时间:
2012年12月4日至2012年12月6日
实验地点:
软件楼305
三,目的:
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力.
四,课程设计要求:
1.对各个系统进行系统功能需求分析
2.数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E—R图)
3。
设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定
4。
通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引
5.根据系统功能需求设计相应的查询视图
6.要求根据系统功能需求建立存储过程
7。
根据功能需求建立相应的触发器以保证数据的一致性
8。
通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)
五,实现思路
1。
首先创建学生证数据库管理数据库,在该数据库中新建学生信息表,学生证管理表,学生注册表
2.建立存储过程向表中插入数据.
3.创建视图,查询学生的学生证所有信息
4.创建存储过程,实现对表中数据的更新,修改,删除
5.建立触发器保证数据的删除一致性
六,需求分析
1系统总需求:
要求建立学生证管理系统,往系统里录入数据,实现数据的修改,更新,删除,查询等功能
系统中包括的表有:
学生信息表(学号,班级,姓名,性别,年龄,民族,籍贯,专业,学制,出生日期)
学生证管理表(学号,入学日期,发证时间,有效期)
学生注册表(学号,注册时间,注册院系)
2数据流:
七,实现过程:
1。
E-R图
2。
关系模式及二维表
学生信息表(学号,班级,姓名,性别,年龄,民族,籍贯,专业,学制,出生日期)
学号
班级
姓名
性别
年龄
民族
籍贯
专业
学制
出生日期
201120180401
1121804
李力
男
19
汉
江西省南昌市
软件工程
4
1993—06-18
2011201804
1121804
王平
女
20
汉
江西省抚州市
软件工程
4
1992-05-13
2011201804
1121804
刘伟
男
21
苗
云南省昆明市
软件工程
4
1991—04—03
2011201805
1121805
张雪
女
19
壮
广西省桂林市
网络工程
4
1993-12-10
20112301805
1121805
张兰
女
20
汉
江西省南昌市
网络工程
4
1992-11-11
学生证管理表(学号,入学日期,发证时间,有效期)
学号
入学日期
发证时间
有效期
201120180401
20110906
2011-09—08
2015—07-01
201120180402
20110906
2011—09-08
2015—07-01
201120180403
20110906
2011—09—08
2015—07—01
201120180501
20110906
2011-09—09
2015-07—01
201120180502
20110906
2011-09—09
2015—07—01
学生注册表(学号,注册时间,注册院系)
学号
注册时间
注册院系
201120180401
2011—09-08
软件学院
201120180402
2011-09—08
软件学院
201120180403
2011-09—08
软件学院
201120180501
2011—09-09
软件学院
201120180502
2011-09—09
软件学院
3。
实验代码运行结果
—-建立学生证管理系统数据库
createdatabase学生证管理系统
on
(
name=student_data,
filename='D:
\studentdata。
mdf’,
size=10,
maxsize=50,
filegrowth=5)
logon
(name=student_log,
filename='D:
\studentdata.ldf',
size=5,
maxsize=25,
filegrowth=5)
--建立学生证信息表
use学生证管理系统
createtable学生信息表
(
学号char(15),
班级char(15)notnull,
姓名varchar(30)notnull,
性别char
(2)notnull,
年龄char
(2),
民族varchar(20)notnull,
籍贯varchar(30)notnull,
专业char(10)notnull,
学制int,
出生日期smalldatetimenotnull,
unique(班级,性别,年龄,民族,籍贯,专业,出生日期))
--建立学生证管理表
createtable学生证管理表
(学号char(15),
入学日期smalldatetimenotnull,
发证时间smalldatetimenotnull,
有效期smalldatetimenotnull)
——建立学生注册表
createtable学生注册表
(学号char(15),
注册时间smalldatetimenotnull,
注册院系char(10)notnull)
--建立存储过程实现学生信息录入
createprocedure插入学生信息
(@学号char(15),
@班级char(15),
@姓名varchar(30),
@性别char
(2),
@年龄char
(2),
@民族varchar(20),
@籍贯varchar(30),
@专业char(10),
@学制int,
@出生日期smalldatetime)
as
insertinto学生信息表values(@学号,@班级,@姓名,@性别,@年龄,@民族,@籍贯,@专业,@学制,@出生日期)
exec插入学生信息’201120180401',’1121804','李力','男’,’19',’汉','江西省南昌市’,'软件工程',’4’,’19930618’
exec插入学生信息’201120180402’,'1121804',’王平’,'女’,’20','汉’,'江西省抚州市’,’软件工程',’4','19920513’
exec插入学生信息’201120180403',’1121804','刘伟',’男','21',’苗','云南省昆明市','软件工程',’4',’19910403’
exec插入学生信息’201120180501’,’1121805’,’张雪’,’女’,’19’,'壮’,’广西省桂林市',’网络工程','4','19931210’
exec插入学生信息'201120180502','1121805’,’张兰',’女’,'20','汉','江西省南昌市’,’网络工程’,'4’,'19921111’
-—建立存储过程实现学生证管理表录入
createprocedure学生证管理表录入
(@学号char(15),
@入学日期smalldatetime,
@发证时间smalldatetime,
@有效期smalldatetime)
as
insertinto学生证管理表values(@学号,@入学日期,@发证时间,@有效期)
exec学生证管理表录入'201120180401',’20110906’,’20110908','20150701’
exec学生证管理表录入'201120180402’,’20110906’,'20110908’,’20150701'
exec学生证管理表录入'201120180403’,'20110906','20110908’,’20150701’
exec学生证管理表录入'201120180501','20110906’,’20110909',’20150701'
exec学生证管理表录入'201120180502’,'20110906',’20110909','20150701’
——建立存储过程实现学生注册表录入
createprocedure学生注册表录入
(@学号char(15),
@注册时间smalldatetime,
@注册院系char(10))
as
insertinto学生注册表values(@学号,@注册时间,@注册院系)
exec学生注册表录入'201120180401',’20110908’,’软件学院'
exec学生注册表录入’201120180402','20110908’,'软件学院'
exec学生注册表录入'201120180403','20110908',’软件学院’
exec学生注册表录入'201120180501',’20110909’,’软件学院'
exec学生注册表录入’201120180502’,'20110909',’软件学院’
-—创建索引
createclusteredindex索引1on学生信息表(班级,学号)
createclusteredindex索引2on学生证管理表(学号)
createclusteredindex索引3on学生注册表(注册院系,学号)
—-查看索引
execsp_helpindex学生信息表
execsp_helpindex学生证管理表
execsp_helpindex学生注册表
——创建视图学生证信息表
createview学生证信息表(学号,班级,姓名,性别,年龄,民族,籍贯,专业,学制,出生日期,入学日期,发证时间,有效期,注册时间,注册院系)
as
select学生信息表.学号,班级,姓名,性别,年龄,民族,籍贯,专业,学制,出生日期,入学日期,发证时间,有效期,注册时间,注册院系
from学生信息表,学生证管理表,学生注册表
where学生信息表.学号=学生证管理表。
学号and学生证管理表.学号=学生注册表。
学号
-—查询视图
select*
from学生证信息表
--建立存储过程根据学号某学生的学生证信息
createprocedure根据学号查询学生学生证信息
(@学号char(15))
as
select*
from学生证信息表
where学号=@学号
exec根据学号查询学生学生证信息@学号='201120180401'
—-建立存储过程根据班级查询该班所有学生的学生信息
createprocedure根据班级查询该班所有学生的证学生信息
(@班级char(15))
as
select*
from学生证信息表
where班级=@班级
exec根据班级查询该班所有学生的证学生信息@班级=’1121804'
--创建存储过程修改学生证信息
createprocedure修改学生证信息
(@学号char(15),
@班级char(15),
@姓名varchar(30),
@性别char
(2),
@年龄char
(2),
@民族varchar(20),
@籍贯varchar(30),
@专业char(10),
@学制int,
@出生日期smalldatetime,
@入学日期smalldatetime,
@发证时间smalldatetime,
@有效期smalldatetime,
@注册时间smalldatetime,
@注册院系char(10))
as
update学生信息表
set学号=@学号,班级=@班级,姓名=@姓名,性别=@性别,年龄=@年龄,民族=@民族,籍贯=@籍贯,专业=@专业,学制=@学制,出生日期=@出生日期
where学号=@学号
update学生证管理表
set学号=@学号,入学日期=@入学日期,发证时间=@发证时间,有效期=@有效期
where学号=@学号
update学生注册表
set学号=@学号,注册时间=@注册时间,注册院系=@注册院系
where学号=@学号
exec修改学生证信息'201120180402',’1121804’,'李丽','女’,’19’,'汉’,'江西省抚州市’,’网络工程’,’4',’19930618','20110906',’20110908’,'20150701’,’20110908','软件学院'
select*
from学生证信息表
--根据学号删除学生证信息
createprocedure删除学生证信息
(@学号char(15))
as
delete
from学生信息表
where学号=@学号
exec删除学生证信息'201120180401'
-—创建触发器
createtrigger触发器1
on学生信息表
fordelete
as
delete
from学生证管理表
where学号=(select学号fromdeleted)
exec删除学生证信息@学号=’201120180501’
]
createtrigger触发器2
on学生信息表
for
delete
as
delete
from学生注册表
where学号=(select学号fromdeleted)
exec删除学生证信息@学号='201120180402'
八,实验总结
通过一几天的课程设计,完成了一个简单的学生证管理系统,并成功实现了各要求所需功能。
首先,在设计方面,考虑到数据的冗余及冲突等问题将学生证信息分别存储到三个表中。
考虑了系别信息数据学生信息数据及学生证注册信息数据的独立性问题.
其次,在设计表时,注意了数据的数据类型及长度的选择,而且,采用存储过程的方式实现数据录入,同时还要保证不浪费数据的存储空间。
第三,使用了视图view,实现数据的保密性,将学生证所需信息以视图方式存放,在数据查询时使用视图查询.
第四,对于各功能的实现,均使用了存储过程procedure通过传递参数得到想要的结果。
第五,在本系统中使用了触发器trigger,触发器用于响应数据库更新。
但由于个人的经验、知识等方面的不足,并且时间比较匆忙,本系统还存在着许多缺陷。
首先,对数据库的安全方面做得还不够,没有权限方面的限制。
第二,在算法实现方面考虑得不够全面。
比如,学生注册时,没有考虑到学生是否已经注册等问题.。
...。
.。
九,心得体会
通过这次课程设计,我了解到自身在许多相关知识方面都认识得不够深刻,感觉有好多东西都没有学到,自己懂的智商些皮毛,在实际的运行操作中遇到许多困难与阻碍。
在实验过程中,许多问题都在与同学的讨论中得到解决,并在讨论过程中,又对所学有了新的体会,学到了更多的知识。
总之,这几天的课程设计,不仅仅是一次简单的见习,对以后的工作与生活都是一次经验的积累。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 学生证 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)