《数据库课程设计学生证管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计学生证管理系统.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 目 录一 实验目的-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三,目的:通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能
2、力。四,课程设计要求:1对各个系统进行系统功能需求分析2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5. 根据系统功能需求设计相应的查询视图6. 要求根据系统功能需求建立存储过程7. 根据功能需求建立相应的触发器以保证数据的一致性8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据
3、库的备份与恢复(此内容选作) 五,实现思路1.首先创建学生证数据库管理数据库,在该数据库中新建学生信息表,学生证管理表,学生 注册表2.建立存储过程向表中插入数据。3. 创建视图,查询学生的学生证所有信息4. 创建存储过程,实现对表中数据的更新,修改,删除5. 建立触发器保证数据的删除一致性六,需求分析 1系统总需求:要求建立学生证管理系统,往系统里录入数据,实现数据的修改,更新,删除,查询等功能系统中包括的表有:学生信息表(学号,班级,姓名,性别,年龄,民族,籍贯,专业,学制,出生日期)学生证管理表(学号,入学日期,发证时间,有效期)学生注册表(学号,注册时间,注册院系)2 数据流: 注册登
4、记 注册 学生信息 学生证管理七,实现过程:学号1.E-R图发证时间 学生证管理表入学日期 有效期 属于1专业 籍贯民族年龄姓名班级学号出生日期学制性别学生信息表 注册 注册时间 学生注册表学号注册院系2.关系模式及二维表学生信息表(学号,班级,姓名,性别,年龄,民族,籍贯,专业,学制,出生日期)学号班级姓名性别年龄民族籍贯专业学制出生日期1李 力 男19汉江西省南昌市软件工程41993-06-18王平女20汉江西省抚州市软件工程41992-05-13刘伟男21苗云南省昆明市软件工程41991-04-03张雪女19壮广西省桂林市网络工程41993-12-10张兰女20汉江西省南昌市网络工程41
5、992-11-11学生证管理表(学号,入学日期,发证时间,有效期)学号入学日期发证时间有效期12011-09-082015-07-0122011-09-082015-07-0132011-09-082015-07-0112011-09-092015-07-0122011-09-092015-07-01学生注册表(学号,注册时间,注册院系)学号注册时间注册院系12011-09-08软件学院22011-09-08软件学院32011-09-08软件学院12011-09-09软件学院22011-09-09软件学院3.实验代码运行结果-建立学生证管理系统数据库create database 学生证管理系
6、统on(name=student_data,filename=D:studentdata.mdf,size=10,maxsize=50,filegrowth=5) log on(name=student_log,filename=D:studentdata.ldf,size=5,maxsize=25,filegrowth=5)-建立学生证信息表use 学生证管理系统create table 学生信息表(学号 char(15) ,班级 char(15) not null,姓名 varchar(30) not null,性别 char(2) not null,年龄 char(2),民族 varch
7、ar(20) not null,籍贯 varchar(30) not null,专业 char(10) not null,学制 int,出生日期 smalldatetime not null,unique(班级,性别,年龄,民族,籍贯,专业,出生日期)-建立学生证管理表create table 学生证管理表( 学号 char(15) , 入学日期 smalldatetime not null, 发证时间 smalldatetime not null, 有效期 smalldatetime not null)-建立学生注册表create table 学生注册表(学号 char(15), 注册时间
8、smalldatetime not null, 注册院系 char(10) not null)-建立存储过程实现学生信息录入create procedure 插入学生信息(学号 char(15) ,班级 char(15) ,姓名 varchar(30) ,性别 char(2) ,年龄 char(2),民族 varchar(20) ,籍贯 varchar(30) ,专业 char(10),学制 int,出生日期 smalldatetime)asinsert into 学生信息表 values(学号,班级,姓名,性别,年龄,民族,籍贯,专业 ,学制,出生日期)exec 插入学生信息 1, , 李力
9、, 男, 19, 汉, 江西省南昌市,软件工程,4,exec 插入学生信息 2, , 王平, 女, 20, 汉, 江西省抚州市,软件工程,4, exec 插入学生信息 3, , 刘伟, 男, 21, 苗, 云南省昆明市,软件工程,4, exec 插入学生信息 1, , 张雪, 女, 19, 壮, 广西省桂林市,网络工程,4,exec 插入学生信息 2, , 张兰, 女, 20, 汉, 江西省南昌市,网络工程,4,-建立存储过程实现学生证管理表录入create procedure 学生证管理表录入(学号 char(15) , 入学日期 smalldatetime,发证时间 smalldateti
10、me ,有效期 smalldatetime )asinsert into 学生证管理表 values(学号, 入学日期,发证时间 ,有效期 )exec 学生证管理表录入 1,exec 学生证管理表录入 2,exec 学生证管理表录入 3,exec 学生证管理表录入 1,exec 学生证管理表录入 2,-建立存储过程实现学生注册表录入create procedure 学生注册表录入(学号 char(15) ,注册时间 smalldatetime,注册院系 char(10)as insert into 学生注册表 values (学号,注册时间,注册院系)exec 学生注册表录入 1,软件学院ex
11、ec 学生注册表录入 2,软件学院exec 学生注册表录入 3,软件学院exec 学生注册表录入 1,软件学院exec 学生注册表录入 2,软件学院-创建索引create clustered index 索引1 on 学生信息表(班级,学号)create clustered index 索引2 on 学生证管理表(学号)create clustered index 索引3 on 学生注册表(注册院系,学号)-查看索引exec sp_helpindex 学生信息表exec sp_helpindex 学生证管理表exec sp_helpindex 学生注册表-创建视图学生证信息表create vi
12、ew 学生证信息表 (学号,班级,姓名,性别,年龄,民族,籍贯,专业 ,学制,出生日期,入学日期,发证时间 ,有效期,注册时间,注册院系)as select 学生信息表.学号,班级,姓名,性别,年龄,民族,籍贯,专业,学制,出生日期,入学日期,发证时间 ,有效期,注册时间,注册院系from 学生信息表,学生证管理表,学生注册表where 学生信息表.学号=学生证管理表.学号 and 学生证管理表.学号=学生注册表.学号-查询视图select *from 学生证信息表-建立存储过程根据学号某学生的学生证信息create procedure 根据学号查询学生学生证信息(学号 char(15)ass
13、elect *from 学生证信息表where 学号=学号exec 根据学号查询学生学生证信息 学号=1-建立存储过程根据班级查询该班所有学生的学生信息create procedure 根据班级查询该班所有学生的证学生信息(班级 char(15)as select *from 学生证信息表where 班级=班级exec 根据班级查询该班所有学生的证学生信息 班级=-创建存储过程修改学生证信息create procedure 修改学生证信息(学号 char(15) ,班级 char(15) ,姓名 varchar(30) ,性别 char(2) ,年龄 char(2),民族 varchar(20
14、) ,籍贯 varchar(30) ,专业 char(10),学制 int,出生日期 smalldatetime,入学日期 smalldatetime,发证时间 smalldatetime ,有效期 smalldatetime,注册时间 smalldatetime,注册院系 char(10)as update 学生信息表set 学号=学号,班级=班级,姓名=姓名,性别=性别,年龄=年龄,民族=民族,籍贯=籍贯,专业=专业 ,学制=学制,出生日期=出生日期where 学号=学号update 学生证管理表set 学号=学号,入学日期= 入学日期,发证时间=发证时间 ,有效期=有效期where 学号
15、=学号update 学生注册表set 学号=学号,注册时间=注册时间,注册院系=注册院系where 学号=学号exec 修改学生证信息 2,李丽,女,19,汉,江西省抚州市,网络工程,4,软件学院select *from 学生证信息表-根据学号删除学生证信息create procedure 删除学生证信息(学号 char(15)as delete from 学生信息表where 学号=学号exec 删除学生证信息 1-创建触发器create trigger 触发器1on 学生信息表for deleteas deletefrom 学生证管理表where 学号=( select 学号 from d
16、eleted)exec 删除学生证信息 学号=1create trigger 触发器2on 学生信息表for deleteas delete from 学生注册表where 学号=(select 学号 from deleted)exec 删除学生证信息 学号=2八,实验总结通过一几天的课程设计,完成了一个简单的学生证管理系统,并成功实现了各要求所需功能。 首先,在设计方面,考虑到数据的冗余及冲突等问题将学生证信息分别存储到三个表中。考虑了系别信息数据学生信息数据及学生证注册信息数据的独立性问题。其次,在设计表时,注意了数据的数据类型及长度的选择,而且,采用存储过程的方式实现数据录入,同时还要保
17、证不浪费数据的存储空间。第三,使用了视图view,实现数据的保密性,将学生证所需信息以视图方式存放,在数据查询时使用视图查询。第四,对于各功能的实现,均使用了存储过程procedure通过传递参数得到想要的结果。第五,在本系统中使用了触发器trigger,触发器用于响应数据库更新。 但由于个人的经验、知识等方面的不足,并且时间比较匆忙,本系统还存在着许多缺陷。首先,对数据库的安全方面做得还不够,没有权限方面的限制。第二,在算法实现方面考虑得不够全面。比如,学生注册时,没有考虑到学生是否已经注册等问题.九,心得体会 通过这次课程设计,我了解到自身在许多相关知识方面都认识得不够深刻,感觉有好多东西都没有学到,自己懂的智商些皮毛,在实际的运行操作中遇到许多困难与阻碍。在实验过程中,许多问题都在与同学的讨论中得到解决,并在讨论过程中,又对所学有了新的体会,学到了更多的知识。总之,这几天的课程设计,不仅仅是一次简单的见习,对以后的工作与生活都是一次经验的积累。