学生信息管理系统实验报告

  • 格式:doc
  • 大小:1.84 MB
  • 文档页数:23

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生信息管理系统实验报告

顾宏

一.需求分析

学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率.

二.概念设计(E-R图)(表设计)

用sql-server绘制数据库模型关系图:

三.规范化设计

字段数据类型长度是否允许空值备注

四.存储过程设计

1)首先建立名为guhong的数据库:

2)定义guohong_student表:2)定义guohong_teacher表:

3)定义guohong_course表:4)定义guohong_score表:

5)查看MS企业管理器(多了四个表):

6)为数据库各表建立索引(如果各表的数据海量,可以加快查询的速度):

7)创建各表的存储过程:

drop procedure guhong_student_pro

go

create procedure guhong_student_pro

( @学号char(10),

@姓char (10),

@名char (10),

@性别char (5) ='男' ,

@住址char(100),

@班级char(30),

@专业char(30),

@邮箱char(30),

@电话号码char(15),

@备注text,

)

as

insert into guhong_student values(@学号, @姓,@名, @性别, @住址, @班级, @专业, @邮箱, @电话号码,@备注)

go

五.触发器设计

(1)插入触发器

触发guohong_student表

drop trigger guohong_student_insert_trig go

create trigger guohong_student_insert_trig on guohong_student

for insert

as

select * from guohong_student

go

当在guohong_student表中插入某一字段,将触发insert事件,

在guohong_student表插入该学生所一个部分新记录,并将结果显示到查询分析器上。

触发guohong_course表

drop trigger guohong_course_insert_trig

go

create trigger guohong_course_insert_trig

on guohong_course

for insert

as

go

当在guohong_course表中插入某一字段,将触发insert事件,

在guohong_course表插入该学生所一个部分新记录,并将结果显示到查询分析器上。

触发guohong_teacher表

drop trigger guohong_teacher_insert_trig

go

create trigger guohong_teacher_insert_trig

on guohong_teacher

for insert

as

go

当在guohong_teacher表中插入某一字段,将触发insert事件,

在guohong_teacher表插入该学生所一个部分新记录,并将结果显示到查询分析器上。

(2)更新触发器

创建一个触发器,它实现当guohong_student表中gh_st_id学号字段的更改,将同步实现guohong_score的学号的改变。

drop trigger guohong_score_update_trig

go

create Trigger guohong_score_update_trig

on guohong_student

for update

As

if update(gh_st_id)

begin

update guohong_score

set guohong_score.gh_st_id=i.gh_st_id

from guohong_score as br , deleted as d ,inserted as i

Where br.gh_st_id=d.gh_st_id

end

go

创建一个触发器,它实现当guohong_course表中gh_co_id课程号字段的更改,将同步实现guohong_score的课程号的改变。

drop trigger guohong_course_update_trig

go

create Trigger guohong_course_update_trig

on guohong_course

for update

As

if update(gh_co_id)

begin

update guohong_score

set guohong_score.gh_co_id=i.gh_co_id

from guohong_score as br , deleted as d ,inserted as i

Where br. gh_co_id =d. gh_co_id

end

go