学生证管理系统实验报告.docx
- 文档编号:5623651
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:32
- 大小:272.50KB
学生证管理系统实验报告.docx
《学生证管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《学生证管理系统实验报告.docx(32页珍藏版)》请在冰豆网上搜索。
学生证管理系统实验报告
课程设计报告
课程设计题目:
学生证管理系统数据库的设计与实现
专业:
班级:
姓名:
学号:
指导教师:
年月日
1.实验目的与要求………………………………………..….……….2
2.需求分析…………………………………………………….3
2.1功能需求…………………………………………………………3
2.2数据流程图……………………………….……………………….6
2.3数据字典………………………………….………………………7
3.概念结构设计………………………………………..…………….7
3.1局部E—R图………………………………………..…………….7
3.2整体E-R图….…………………………………………………..8
4.逻辑结构设计…………………………………………...…………9
5.物理结构设计……………………………………………...………10
6.数据库实施……………………………………………...………..11
6.1建立数据库……………………………………...………………13
6.2建立数据表…………………………………………...……..……13
6.3创建系统查询视图………………………………...…….….…..14
6.4建立索引及数据入库……………………………………..…...…..15
6.5建立存储过程…………………………..………………..…..….16
6.6建立触发器…………………………….….……………..…..….17
7.数据库脚本……………………………………………………...18
8.系统检验………………………………………………………...19
9.实验总结与心得…………………………………………………...20
1.实验目的与要求
1.1目的:
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。
1.2课程设计要求:
1.对各个系统进行系统功能需求分析
2.数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)
3.设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定
4.通过企业管理器或是查询分析器实现各个二维关系(用SQL代码实现),要求建立相关的索引
5.根据系统功能需求设计相应的查询视图
6.要求根据系统功能需求建立存储过程
7.根据功能需求建立相应的触发器以保证数据的一致性
8.通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)
2.系统需求分析
通过调查对用户的信息要求、处理要求、完整性与安全性需求的了解,根据具体的数据库管理,开发令用户满意的学生证管理系统。
2.1功能需求:
2.1.1系统要处理的对象为学生证信息,具体信息如下:
学生证信息表:
包括学号、班级编号、姓名、性别、出生日期、民族、籍贯、入学时间、发证时间、有效期至等信息。
班级信息表:
包括班级编号、班级名称、专业编号等信息。
专业信息表:
包括专业编号、专业名称、学院编号等信息。
学院信息表:
包括学院编号、学院名称等信息。
2.1.2系统要完成以下几个功能:
1.录入学生的学生证信息;
2.给定学号,查询某位学生的学生证信息;
3.给定班号,显示该班所有学生的学生证信息;
4.给定学号,修改该学生的学生证信息;
5.给定学号,删除该学生的学生证信息。
2.1.3管理员需求
管理员通过用户名和密码登入学生证管理系统,录入在校学生的相关信息,并按照系别,班级进行排序,使学生信息能够一目了然。
输入学号,管理员可以查询、修改或删除该学生的学生证信息。
2.1.4教务人员需求
教务人员通过用户名和密码登入学生证管理系统,录入在校学生的相关信息,并按照系别,班级进行排序,使学生信息能够一目了然。
输入学号,教务人员可以查询、修改或删除该学生的学生证信息。
2.1.5学生需求
学生以学号和密码进入学生证管理系统,进入该系统后,可以查询自己的相关信息,输入班号,可以查询该班的学生学号及部分相关信息。
2.1.6安全性和完整性要求
通过用户的权限分配来实现数据库的安全性,并建立必要的触发器、约束、存储过程及数据库的备份和恢复来保证系统的完整性。
2.2数据流程图
根据业务流程分析,我们可以得到系统的数据流图。
2.2.1学生证系统数据流程图
2.2.2学生证管理系统二级详细数据流图
2.3数据字典
根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。
下面列出部分数据字典内容。
数据结构编号
数据结构名
数据结构含义
组成
DS-1
学生
学生证信息表
学号,姓名,性别,出生年月,籍贯,班级编号,专业编号,学员编号,发证时间,有效期至
DS-2
班级
班级信息表
班级编号,专业编号,班级名称
DS-3
专业
专业信息表
专业编号,学院编号,专业名称
DS-4
院系
院系信息表
学院编号,院系名称
3.概念结构设计
3.1局部E—R图
班级E-R图
专业信息E—R图
学院信息E—R图
学生证信息E—R图
3.2整体E-R图
4.逻辑结构设计
根据E-R图模型到关系模型的映射规则,可以将E-R图转换为以下关系模式:
4.1学生证信息表(学号、班级编号、姓名、性别、出生年月、民族、籍贯、入学时间、发证时间、有效期至)
主键:
学号
字段名
数据类型
主关键字
外部关键字
约束条件
学号
char(8)
Yes
NOTNULL
班级编号
char(6)
NOTNULL
姓名
char(10)
NOTNULL
性别
char
(2)
NOTNULL
出生年月
char(10)
NOTNULL
民族
char
(2)
NOTNULL
籍贯
varchar(40)
NOTNULL
入学时间
char(10)
NOTNULL
发证时间
char(10)
NOTNULL
有效期至
char(10)
NOTNULL
4.2班级信息表(班级编号、班级信息、专业编号)
主键:
班级编号
字段名
数据类型
主关键字
外部关键字
约束条件
班级编号
char(6)
Yes
NOTNULL
班级名称
varchar(20)
NOTNULL
专业编号
char
(2)
NOTNULL
4.3专业信息表(专业编号、专业信息、学院编号)
主键:
专业编号外键:
学院编号
字段名
数据类型
主关键字
外部关键字
约束条件
专业编号
char
(2)
Yes
NOTNULL
专业名称
varchar(20)
NOTNULL
学院编号
char
(2)
Yes
NOTNULL
4.4学院信息表(学院编号、学院信息)
主键:
学院编号
字段名
数据类型
主关键字
外部关键字
约束条件
学院编号
char
(2)
Yes
NOTNULL
学院名称
varchar(30)
NOTNULL
5.物理结构设计
学生证管理系统的数据库物理设计主要是建立一个最适合的应用要求的物理结构过程
为了加速表的查询,根据所设计的表的特点,我们决定在为学生证管理系统各个表建立索引如下:
(1)由于学生证信息表的主码学号经常在查询条件和连接操作中经常出现,且他们的值唯一,在学号和班级编号建立索引
(2)由于班级信息表中主码班级编号在查询条件和连接中经常出现,在班级编号和专业编号建立索引,
(3)由于专业信息表的主码专业编号在学生信息查询中经常出现,可在专业编号和学院编号建立索引
(4)由于学院信息表的主码学院编号在学生信息查询中经常出现,可在学院编号建立索引
对学生证管理系统的物理结构进行评价:
该学生证管理系统在各个信息表中建立了索引,可以在查询信息是提高查询各个表中的信息的效率,方便管理员使用和学生对学生证信息的查询。
6.数据库实施
6.1建立数据库
createdatabase学生证管理系统
6.2建立数据表
6.2.1学院信息表
createtable学院信息表
(
学院编号char
(2)primarykeynotnull,
学院名称varchar(30)
)
6.2.2专业信息表
createtable专业信息表
(
专业编号char
(2)primarykeynotnull,
专业名称varchar(20),
学院编号char
(2)notnullconstraint学院_1foreignkeyreferences学院信息表(学院编号)
)
6.2.3班级信息表
createtable班级信息表
(
班级编号char(6)primarykeynotnull,
班级名称varchar(20),
专业编号char
(2)
)
6.2.4学生证信息表
createtable学生证信息表
(
学号char(8)primarykeynotnull,
班级编号char(6)notnull
姓名char(10),
性别char
(2),
出生年月char(10),
民族char
(2),
籍贯varchar(40),
入学时间char(10),
发证时间char(10),
有效期至char(10)
)
6.3创建系统查询视图:
6.3.1建立学生证信息查询;
createview学生证信息查询
asselect*from学生证信息表
6.3.2建立班级信息查询;
createview班级信息查询
asselect*from班级信息表
6.3.3建立专业信息查询;
createview专业信息查询
asselect*from专业信息表
6.3.4建立学院信息查询;
createview学院信息查询
asselect*from学院信息表
6.3.5建立查询信息视图
createview查询信息视图
as
select学号,姓名,班级编号,学院名称,专业名称,性别,出生年月,民族,籍贯,入学时间,发证时间,有效期至
from学生证信息表,班级信息表,专业信息表,学院信息表
where班级信息表.班级编号=学生证信息表.班级编号and班级信息表.专业编号=专业信息表.专业编号and专业信息表.学院编号=学院信息表.学院编号
6.4建立索引及数据入库
6.4.1按物理结构设计建立索引
(1)建立学生证信息表索引
createuniqueindex学生_1on学生证信息表(学号,班级编号)
(2)建立班级信息表索引
createuniqueindex班级_1on班级信息表(班级编号,专业编号)
(3)建立专业信息表索引
createuniqueindex专业_1on专业信息表(专业编号,学院编号)
(4)建立学院信息表索引
createuniqueindex学院_1on学院信息表(学院编号)
6.4.2数据入库
学生证管理系统包括学生证信息表,班级信息表,专业信息表、学院信息表。
采用Excel中录入数据,然后使用SQLServer2000数据导入、导出功能直接将数据导入到相应的基本表
6.5建立存储过程
6.5.1建立录入功能的存储过程
createprocedure学生证信息表_insert
(
@学号char(10),
@姓名char(10),
@班级编号char(10),
@性别char
(2),
@出生年月char(10),
@民族char(4),
@籍贯varchar(40),
@入学时间char(10),
@发证时间char(10),
@有效期至char(10)
)
as
insertinto学生证信息表values(@学号,@姓名,@班级编号,@性别,@出生年月,@民族,@籍贯,@入学时间,@发证时间,@有效期至)
createprocedure班级信息表_insert
(
@班级编号char(6),
@班级名称varchar(20),
@专业编号char
(2)
)
as
insertinto班级信息表values(@班级编号,@班级名称,@专业编号)
createprocedure专业信息表_insert
(
@专业编号char
(2),
@专业名称varchar(20),
@学院编号char
(2)
)
as
insertinto专业信息表values(@专业编号,@专业名称,@学院编号)
createprocedure学院信息表_insert
(
@学院编号char
(2),
@学院名称varchar(30)
)
as
insertinto学院信息表values(@学院编号,@学院名称)
6.5.2建立修改功能存储过程
createprocedure学生证信息表_update
(
@学号char(10),
@姓名char(10),
@班级编号char(10),
@性别char
(2),
@出生年月char(10),
@民族char(4),
@籍贯varchar(40),
@入学时间char(10),
@发证时间char(10),
@有效期至char(10)
)
as
update学生证信息表
set学号=@学号,姓名=@姓名,班级编号=@班级编号,性别=@性别,出生年月=@出生年月,民族=@民族,籍贯=@籍贯,入学时间=@入学时间,发证时间=@发证时间,有效期至=@有效期至
createprocedure班级信息表_update
(
@班级编号char(6),
@班级名称varchar(20),
@专业编号char
(2)
)
as
update班级信息表
set班级编号=@班级编号,班级名称=@班级名称,专业编号=@专业编号
createprocedure专业信息表_update
(
@专业编号char
(2),
@专业名称varchar(20),
@学院编号char
(2)
)
as
update专业信息表
set专业编号=@专业编号,专业名称=@专业名称,学院编号=@学院编号
createprocedure学院信息表_update
(
@学院编号char
(2),
@学院名称varchar(30)
)
as
update学院信息表
set学院编号=@学院编号,学院名称=@学院名称
6.5.3建立删除的存储过程
createprocedure学生证信息表_delete
(
@学号char(10),
@姓名char(10),
@班级编号char(10),
@性别char
(2),
@出生年月char(10),
@民族char(4),
@籍贯varchar(40),
@入学时间char(10),
@发证时间char(10),
@有效期至char(10)
)
as
delete
from学生证信息表
where学号=@学号
createprocedure班级信息表_delete
(
@班级编号char(6),
@班级名称varchar(20),
@专业编号char
(2)
)
as
delete
from班级信息表
where班级编号=@班级编号
createprocedure专业信息表_delete
(
@专业编号char
(2),
@专业名称varchar(20),
@学院编号char
(2)
)
as
delete
from专业信息表
专业编号=@专业编号
createprocedure学院信息表_delete
(
@学院编号char
(2),
@学院名称varchar(30)
)
as
delete
from学院信息表
where学院编号=@学院编号
6.6建立触发器
6.6.1建立录入触发器
createtrigger录入触发器
on学生证信息表
forinsert
as
select*from学生证信息表
6.6.2建立修改触发器
createtrigger修改触发器
on学生证信息表
forupdate
as
select*from学生证信息表
6.6.3建立删除触发器
createtrigger删除触发器
on学生证信息表
fordelete
as
select*from学生证信息表
7.数据库脚本
---------------------------数据库初始化---------------------------
setnocounton
setdateformatmdy
go
usemaster
go
ifexists(select*fromsysdatabaseswherename='学生证管理系统')
dropdatabase学生证管理系统
go
---------------------------数据库的建立---------------------------
createdatabase学生证管理系统
onprimary
(name='学生证管理系统_data',
filename='d:
\学生证管理系统.mdf',
size=10,
maxsize=50,
filegrowth=5)
logon
(name='学生证管理系统_log',
filename='d:
\学生证管理系统.ldf',
size=5,
maxsize=25,
filegrowth=5)
go
---------------------------建立数据表---------------------------
use学生证管理管理系统
ifexists(select*fromsysobjectswherename='学院信息表')
droptable学院信息表
go
print'droptable学院信息表
print'createtable学院信息表'
go
createtable学院信息表
(
学院编号char
(2)primarykeynotnull,
学院名称varchar(30),
)
go
插入一组数据:
insertinto学院信息表values('09','软件学院')
use学生证管理管理系统
ifexists(select*fromsysobjectswherename='专业信息表')
droptable专业信息表
go
print'droptable专业信息表
print'createtable专业信息表'
go
createtable专业信息表
(
专业编号char
(2)primarykeynotnull,
专业名称varchar(20),
学院编号char
(2)notnullconstraint学院_1foreignkeyreferences学院信息表(学院编号)
)
go
插入一组数据:
insertinto专业信息表values('11','软件工程','09')
use学生证管理管理系统
ifexists(select*fromsysobjectswherename='班级信息表')
droptable班级信息表
go
print'droptable班级信息表
print'createtable班级信息表'
go
createtable班级信息表
(
班级编号char(6)primarykeynotnull,
班级名称varchar(20),
专业编号char
(2)
)
go
插入一组数据:
insertinto班级信息表values('091103','软件3班','11')
use学生证管理管理系统
ifexists(select*fromsysobjectswherename='学生证信息表')
droptable学生证信息表
go
print'droptable学生证信息表
print'createtable学生证信息表'
go
createtable学生证信息表
(
学号char(8)primarykeynotnull,
班级编号char(6)notnull
姓名char(10),
性别char
(2),
出生年月char(10),
民族char
(2),
籍贯varchar(40),
入学时间char(10),
发证时间char(10),
有效期至char(10)
)
go
插入一组数据:
insertinto学生证信息表values('09110325','091103','小东','男','19911230','汉','江西南昌','20090901','20091001','20130730')
---------------------------建立索引---------------------------
createuniqueindex学生_1on学生证信息表(学号,班级编号)
go
createuniqueindex班级_1on班级信息表(班级编号,专业编号)
go
createuniqueindex专业_1on专业信息表(专业编号,学院编号)
go
createuniqueindex学院_1on学院信息表(学院编号)
go
---------------------------建立视图---------------------------
createview学生证信息查询
assele
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生证 管理 系统 实验 报告