SQL Server课程设计报告

更新时间:2024-06-16 11:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SQL Server课程设计报告

学生选修课管理系统

院 系: 经济与管理学院

专 业: 农林经济管理15-3 学 号: 6011211314 姓 名: 唐道冬 指导教师: 张兵

2012年 6 月

目 录

1.系统开发背景 ................................................... 2 1.1课题简介 ................................................... 3 1.2设计目的 ................................................... 3 1.3设计内容 ................................................... 3

2. 需求分析 ...................................................... 3 1.1数据需求………………………………………………………………………4 1.2功能需求………………………………………………………………………4

3.概念结构设计 ................................. 错误!未定义书签。

4. 逻辑结构设计 .................................................. 4

5.物理结构设计 ................................. 错误!未定义书签。

6.源程序代码 .................................................... 5 6.1 数据库程序 ................................................... 6 6.2 备份程序 ..................................................... 7 6.3 表程序 ....................................................... 6 6.4 视图 ......................................................... 8 6.5 存储过程 ..................................................... 7 6.6 触发器 ....................................................... 8 7.数据库表及时视图截图 ........................................... 9

8.结束语 ....................................................... 12

1.系统开发背景

1.1课题简介

随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工

作效率成为一个很重要的问题。而建立管理信息系统是一个很好的解决办法。 经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系 实际的宗旨,通过学校提供的这次软件技术实践的机会,在指导教师的帮助下, 历经两周时间,我自行设计一套教学管理系统,在下面的各章中,我将以这套教 学管理信息系统为例,谈谈其开发过程和所涉及到的问题。 1.2设计目的

应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践

更好的结合起来,巩固所学知识。

数据库应用 课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理 软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、 逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打 下基础。 1.3设计内容

运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发教学管理信息系统,完成教学管理信息系统的全部功能,包括学生管理子系统,教师管理自系统,后勤管理子系统。 首先做好需求分析,并完成数据流图和数据字典。

其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。

然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型

2.需求分析

1数据需求

数据字典

主要涉及到以下几个表,分别为:学生基本信息表,课程表,专业信息表,课程设置表,学生选课表,学生与专业之间的属于表以及管理人员的密码表。以下是数据字典: 数据库表名 学生学籍信息表 课程基本信息表 选课成绩信息表

学生基本情况数据表,结构如下: 字段名 学号 学生姓名 性别 专业班级 年龄 电话 地址

课程数据表,结构如下: 字段名 课程号 课程名称 任课教师 电话 上课地点 课时 学分

成绩情况数据表,结构如下: 字段名 课程号 学号 成绩 字段类型 char char int 约束控制 外键 外键 字段类型 char varchar varchar varchar varchar int numeric(2,1) 约束控制 主键(primary key) not null not null not null not null not null not null 字段类型 char varchar char varchar varchar varchar char 约束控制 Primary key not null not null not null not null not null 关系模式名称 学生 课程 成绩 not null

2.功能需求:

(1)实现学生基本情况的录入,修改,删除等基本操作。 (2)对学生基本信息提供灵活的查询方式。

(3)完成一个班级的学期选课功能。

(4)实现学生成绩的录入,修改,删除等基本操作。 (5)能方便的对学生的个人学期成绩进行查询。 (6)具有成绩统计,排名等功能。

(7)具有留级,休学等特殊情况的处理功能。 (8)能输出常用的各种报表。 (9)具有数据备份和数据恢复功能

3. 概念结构设计

(1)学生基本信息:学号,姓名,性别,专业班级,年龄,电话,地址。

(2)课程基本信息: 课程名,课程号,任课老师,电话,分数,学时,学分。 这些实体间的联系包括

地址地址 专业 学分 年龄 学时 电话 学号 学生 成绩 上课 地点 选修课程 课程号 姓名 性别 分数 上课地点 电话 课程名

四 逻辑结构设计

(1)学生(学号,姓名,性别,年龄,地址,专业班级),其主关键字为学号; (2)课程(课程名,课程号,任课老师,上课地点,分数,学时,学分),其中主关键字为课程号;

(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。可以与学生关系模式合并为:学生(学号,姓名,性别,年龄,地址,专业班级,成绩,课程号)。

五物理结构设计

(1) 数据结构:设置每一数据表的属性名,类型,宽度。 (2)设置参照属性:

成绩信息(课程号,学号,分数)的学号参照学生基本信息的学号。 成绩信息(课程号,学号,分数)的课程号参照课程基本信息的课程号。 (3)关系:

学生基本信息与成绩信息建立关于学号的关系。 课程基本信息与成绩信息建立关于课程号的关系。 (4)数据库名称:选课管理系统。 逻辑数据名称:选课管理系统。

数据文件:选课管理.mdf,初始大小:2MB,最大空间:20MB,增加量:2MB。 日志文件:选课管理_log.ldf,初始大小:2MB,最大空间:20MB,增加量:2MB。 备份设备名:rsxtbf,备份文件:rsbf.bak

(5)索引:对于每一数据表关于主关键字建立索引文件。 (6)设置触发器:

要求学生基本信息中的学号被修改时,学生的选修课信息表被修改。

要求在学生基本信息中插入新的学号时,学生的选修课信息表被插入新的学号。

要求在学生基本信息中删除工号时,学生的选修课信息表的学号被删除。

(7)设置视图:

为用户提供包含学号,姓名,性别,年龄,地址,专业班级,成绩,课程号的视图。 (8)设置存储过程:

根据用户所提交的成绩信息,为用户提供关于学生的学生基本信息(学号,姓名,

性别,年龄,地址,专业班级)。

根据用户所提交的成绩信息,为用户提供关于学生的选课信息(课程号,学号,

分数)。

6.源程序代码

6.1 数据库程序

create database 学生选课管理系统 on primary

(name=选课管理,

filename='d:\\选课管理.mdf', size=2,

maxsize=20, filegrowth=2) log on

(name=选课管理_log,

filename='d:\\ 选课管理_log.ldf', size=2,

maxsize=20,

filegrowth=2)

6.2 备份程序

sp_addumpdevice 'disk','rsxtbf','d:\\beifen\\rsbf.bak' go

backup database 学生选课管理系统 to rsbf

6.3 表程序

(1)学生表基本信息表的建立 Create table 学生基本信息

( 学号 char(9) not null,

专业班级 varchar(20) not null, 姓名 varchar(10) not null, 性别 varchar(2) not null, 年龄 char(2) ,

地址 varchar(20) not null, 电话 varchar(11) not null, constraint PK_STUDENT primary key (学号) )

(2)选修课程基本信息表的建立

Create table 选修课程基本信息

( 课程号 char(5) not null,

课程名 varchar(10) not null, 任课教师 varchar(8) not null,

教师电话 varchar(11) not null,

上课地点 varchar(20) not null, 学时 smallint not null, 学分 int not null,

constraint PK_COURSE primary key (课程号)

)

(3)成绩信息表的建立

Create table 成绩信息

( 成绩 varchar(3) not null,

学号 char(9) not null, 课程号 char(5) not null,

foreign key(学号) references 学生基本信息(学号),

foreign key(课程号) references 选修课程基本信息(课程号) )

6.4 视图

create view 学生基本信息视图(学号,专业班级,姓名,性别,年龄,地址,电话) as select.学生基本信息.学号,学生基本信息.专业班级,姓名,性别,年龄,地址,电话

from 学生基本信息,成绩信息

where 学生基本信息.学号=成绩信息.学号

6.5 存储过程定义

1.关于学生基本信息表的存储过程

create procedure yg

@xl varchar(8)=null

as if @xl is null

print '请输入学号!'

else

select 学生姓名,性别,地址,年龄,专业

from 学生基本信息,成绩信息

where学生基本信息.学号=成绩信息.学号

2.关于课程基本信息表的存储过程

create procedure yg

@xl varchar(8)=null

as if @xl is null

print '请输入课程号!'

else

select 学生姓名,性别,地址,年龄,专业

from 基本信息,成绩信息

where课程基本信息.课程号=成绩信息.课程号

6.6 触发器

(1).修改学号的触发器

create trigger goha on学生基本信息 for update as begin

if(columns_updated()&01)>0

update 成绩信息

set成绩信息.学号=(select a.学号 from inserted a)

where成绩信息.学号=(select b.学号 from deleted b) end

(2)修改课程号的触发器

create trigger goha on课程基本信息 for update as begin

if(columns_updated()&01)>0

update 成绩信息

set成绩信息.课程号=(select a.课程号 from inserted a) where成绩信息..课程号=(select b.课程号 from deleted b) end

(3)插入新学号的触发器

create trigger jbinsert on 学生基本信息

for insert as

if(columns_updated()&1)>0 begin

insert into 成绩信息(学号) select 学号,

end

(4)插入课程号的触发器

create trigger jbinsert on 选修课程基本信息

for insert as

if(columns_updated()&1)>0 begin

insert into 成绩信息(课程号) select 课程号,

end

(5)删除学号的触发器

create trigger check_delete on 学生基本信息 for delete as begin

delete成绩信息

where成绩信息.学号=(select 学号 from deleted) end

(6)删除课程号的触发器

create trigger check_delete on 选修课程基本信息 for delete as begin

delete成绩信息

where成绩信息.课程号=(select 课程号 from deleted) end

7.数据库表及时视图截图 (1)学生表基本信息表

(2)选修课程基本信息表

(3)成绩表

(4)视图

8.结束语

在张老师的指导下,运用老师课堂上讲的知识,我设计出了一个可以查询学生选课关了的系统。这次课程设计是对这学期数据库课程的一个知识综合,它需要运用到前面所学的知识。通过这次课程设计,使我将平时所学的知识运用到实践中,提高了自己实际上机操作的能力。在实际操作中发现平时的知识的不足。总之,这是对平时掌握知识的一次检验,也是一次对平时不足的弥补。感谢张老师这学期对课本知识和做人为事的教导.使我们在轻松愉快中掌握了数据库的基本操作。忠心的

本文来源:https://www.bwwdw.com/article/1903.html

Top