当前位置:文档之家› SQL课程设计 学生信息管理系统

SQL课程设计 学生信息管理系统

辽宁工业大学《管理信息系统设计专题》报告

题目:学生信息管理系统

院(系): 软件学院

专业班级:软件技术000班

学号:000000000

学生姓名:000000

指导教师:000000

教师职称:副教授

起止时间:2010.06.28-2010.07.09

设计任务及评语

院(系):软件学院教研室:软件教研室学号000000 学生姓名00000 专业班级软件技术001 设计题目学生信息管理系统

设计任务

要求根据管理信息系统及数据库设计原理,按照系统设计的步骤和规范,完成各阶段的设计内容。

需求分析具体实际,数据流图、数据字典、关系模型要规范。

在sql server2000 上实现数据库的模型建立(数据库、表的建立、完整性约束的实现、关系图、必要的存储过程及触发器的编程),并用VB实现简单的应用程序。

设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。

绩成绩:指导教师签字:

年月日

目录

第1章设计目的与要求 (1)

1.1设计目的 (1)

1.2设计环境 (1)

1.3主要参考资料 (1)

1.4设计内容及要求 (1)

第2章设设计内容 (2)

2.1数据库设计 (2)

2.1.1需求分析 (2)

2.1.2概念设计 (6)

2.1.3逻辑设计 (7)

2.1.4物理设计 (8)

2. 1. 5 数据库实现 (9)

2.2程序设计 (11)

2.2.1概要设计 (11)

2.2.2程序实现 (13)

第3章设计总结 (15)

参考文献 (16)

第1章设计目的与要求

1.1设计目的

本实践课的主要目的是:(1)、掌握运用管理系统及数据库原理知识进行系统分析和设计的方法;(2)掌握关系数据库的设计方法;(3)掌握SQL Server 2000技术应用;(4)掌握简单的数据库应用程序编写方法;(5)理解C/S模式结构。

1.2设计环境

在设备CPU:T1400 @ 1.73GHZ ;硬盘:250 G;分辨率:最佳效果1024*768的情况下,运用VB6.0为前台工具,采用VB语言,以SQL Server 2000作为后台数据库,在Windows XP环境下编写并测试运行的。

1.3主要参考资料

1.《管理信息系统》黄梯云高等教育出版社

2.《数据库系统概论》萨师煊高等教育出版社

3.《SQL Server 2000 数据库应用系统开发技术》朱如龙编,机械工业出版社。

4.《SQL Server 2000 数据库应用系统开发技术实验指导》朱如龙编,机械工业出版社

1.4设计内容及要求

一、内容

1.要求根据管理信息系统及数据库设计原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。

2.需求分析具体实际,数据流图、数据字典、关系模型要正确规范

3.在sql server2000 上实现设计的数据库模型。

4.对应用程序进行概要设计。

5.用VB实现简单的应用程序编写。

二、要求

设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出课程设计报告。

第2章设设计内容

2.1数据库设计

2.1.1需求分析

数据项和数据结构如下:

学生信息管理系统包括班级信息管理、学籍信息管理、班级信息管理、成绩信息管理、课程信息管理、查询管理六大快,而年级信息管理又包括了学校年级设置于学校信息设置,学籍信息管理包括了班级信息管理,成绩信息管理包括了成绩信息管理,课程信息管理包括了课程信息管理和年级课程开设两块,查询管理包括了班级信息查询,课程信息查询,成绩信息查询以及血迹信息管理。

学校年级设置主要就是对于学校里的年级的设置,学籍性息设置主要是针对于学生们的学籍的管理班级信息管理主要是针对于班级信息的设置成绩信息设置主要是针对于学生们的成绩,课程信息设置主要是针对于课程的一些基本信息管理,年级课程开设主要是针对于一些课程开设的时间,而查询这一块主要就是各种的查询,类如班级信息,课程信息等一些基本信息的查询都是由这一块完成的

1.系统工作流程图

系统工作流程图主要描述出了系统在工作时候的大致情况,通过这个图我们可以很容易的了解系统工作时的大致情况,具体如图2.1.1所示。

图2.1.1系统工作流程图

2.系统业务流程图:

业务流程图是一种用尽可能少、尽可能简单的方法来描述业务处理过程的方法。由于它的符号简单明了,所以非常易于阅读和理解业务流程。但它的不足是对于一些专业性较强的业务处理细节缺乏足够的表现手段,它比较适用于反映事务处理类型的业务过程

学籍管理

毕业审查 成绩管理 选课 人才培养方案 教师管理

教学计划

教务管理 教学评估

排课 实际开课

教务处

考试成绩 学生

奖惩信息

学生信息

学分管理制度

入学通知

学生处

毕业证

登记表

学生档案

学籍

图2.1.2系统业务流程图

3.系统数据流程图:

数据流程图是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程。

图2.1.3系统数据流程图

4.数据字典: 1)数据项:

表2.1.1数据项

学生

管理员

教师

D1 登陆性息 P1.1

登陆

S1.1

D2 权限性息 P1.2 判定权限

S1.2

S1.3

D3 教师性息 D4 学生信息

P1.3

维护教师性息

P1.4 维护学生信息

S1.10

S1.4

S1.8

P1.6 课程管理

P1.8 成绩管理

S1.4

D10

成绩信息

S1.6

D6 开课信息 D5 班级信息

P1.7 数据处理

S1.14

S1.13

S1.15

数据项名称数据项含义说明别名数据类型长度取值范围学号为学生设置的代号无整型 4 a000-x999教师名称教师名称无字符型100 中、外文班级班级名无整型 4 中文

专业专业名无整型 4 中文

学费学费多少无整型 4 a000-x999出生日期出生日期无整型 4 a000-x999入学时间入学时间无整型 4 a000-x999课程课程名无整型 4 中、外文成绩成绩无整型 4 a000-x999 2)数据结构的定义:

数据结构的名称:班级信息

含义说明:数据库中用来说明班级类型的信息

数据结构组成:班级编号+类型名称+班级数量+住宿费+人数

数据结构的名称:学校信息

含义说明:数据库中用来说明学校信息的

数据结构组成:学校名称+班级编号+专业编号+学生信息+教师信息+课程信息3)数据流的定义:

数据流名称:班级信息设置

简要说明:学校对班级进行设置

数据流来源:班级信息管理模块

数据流去向:P1.8

数据结构:班机编号+班级名称

数据流名称:课程管理

简要说明:对各科目进行管理

数据流来源:P1.8

数据流去向:课程管理模块

数据结构:课程编号+课程名称

4)数据存储:

数据存储名:课程信息

输入数据流:课程基本信息,

输出数据流:正确的课程信息

数据存储名:课程信息

输入数据流:更新后的课程信息

输出数据流:目前的课程信息,课程具体开课时间等

2.1.2概念设计

学生性息管理系统的实体E-R 图: 学籍性息表E-R 图如图2.1.4所示

图2.1.4学生信息表E-R 图

成绩性息表E-R 图如图2.1.5所示。

图2.1.5房间E-R 图

年级信息表E-R 图如图2.1.6所示

成绩性息表管理

课程编号号 课程名

称名 学生编号

学分

成绩

学生姓名

学籍性息表

学生编号号

学生姓名 学生籍贯

年龄

学生性别

年级信息管理表

年级数

年级编号

...

班级编号

图2.1.6年级信息管理E-R 图

学生信息管理总体E-R 图如图2.1.7所示。

图2.1.7整体E-R 图

2.1.3逻辑设计

逻辑结构设计就是将概念结构设计出来概念模型转换乘具体DBMS 所能支持的数据模型(即逻辑结构),并对其进行优化。逻辑结构设计一般分为三步进行: 1. 从E-R 图向关系模式转化 数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R 图中的实体、实体的属性和实体之间的联系转化为关系模式。一个实体类型转换为一个关系模型,将每种实体类型转换为一个关系,实体的属性就是关系的属性,实体的关键字就是关系的关键字。将“客房”实体转换为一个关系模型,其中,带下划线的属性为主属性,该主属性为关系模型外键。

学院

专业

学校

管理

成绩 教师

学生

课程

班级 拥有

拥有

拥有

管理

管理

管理

管理

选择

1 1

1

1

1

1

n n

n

n m

n

n

m

n

n

年级基本信息(年级编号、班级编号、班级名称、班级数量、年级人数)。

班级(班级编号、班级数、班级人数、班级名称。)

学籍信息(学生姓名、学好、科目、成绩、学分)

2.1.4物理设计

1.存储结构

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。物理设计通常分为两步:(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。

存储结构是建立一种由逻辑结构到存储空间的映射。存储结构是把一组结点存放在按地址相邻的存储单元里,结点间的逻辑关系用存储单元的自然顺序关系来表达的,即用一块存储区域存储线性数据结构,为使用整数编码访问数据结点提供了便利。

2.索引的创建

为表创建一个以student_id为索引的关键字的唯一聚簇索引

1)展开数据库中的表右键student_id表,单击所有任务弹出的索引管理。

2)在窗体点新建索引名称为student,点击复选框“聚簇索引”、“惟一值”。3.事务日志文件备份及存放

在大型系统中,数据库的数据备份、日志文件备份等数据只在故障恢复时才使用,而且数据量很大,可以考虑放在磁带上。对于拥有多个磁盘驱动器或磁盘阵列的系统,可以考虑将表和索引分别存放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别工作,因而可以保证物理读写速度比较快。将比较大的表分别存放在不同的磁盘上,可以加快存取的速度,特别是在多用户的环境下。

将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。由于各个系统所能提供的对数据进行物理安排的手段、方法差异很大,因此设计人员应该在仔细了解给定的DBMS在这方面提供了什么方法、系统的实际应用环境的基础上进行物理安排。

4.存取方法:

现行的DBMS一般都提供了多种存取方法,其中,最常用的是索引法。索引法是为了加速对表中的数据行的检索而创建的一种分散的存储结构。是针对一个表而建立的,

它能够以一列或多列的值为关键字,迅速查找/存取表中行数据加快了数据检索。例如在本数据库中:

年级基本信息(年级编号、班级编号、班级名称、班级数量、年级人数。

班级(班级编号、班级数、班级人数、班级名称。)

整个系统需要调用年级基本信息表、班级表等,所以年级基本信息表属性“编号”,班级表中的属性“班级编号”,将经常出现在查询条件中,可以考虑在上面建立索引以提高效率。

2.1.5 数据库实现

1.成绩信息表:学号,姓名,课程编号,课程名称,成绩,学分,,班级,专业。

表2.1.2成绩信息表

列名数据类型大小允许空

Number Char(20) 否

Name Char(20) 是

Namber Char(20) 是

Kecheng name Char(20) 是

prefission Char(8) 是

scord Char(10) 是

grade Char(50) 是

professional Char(20) 是

2.年级信息表:年级数,年级编号,班级编号,班级名称,班级数,

表2.1.3年级信息表

列名数据类型大小允许空

Grade nameber Char(20) 否

Grade Numbers Char(20) 是

Class number Char(20) 是

Class name Char(20) 是

Class number Char(8) 是

3.学籍信息表:姓名,学号,班级,性别,成绩,民族,籍贯,专业

表2.1.4学籍信息表

列名数据类型大小允许空

Number Char(20)

Name Char(20) 是

Sex Char(20) 是

National Char(20) 是

Native Char(8) 是

Class Char(50) 是

Prefessional Char(20) 是

以关系型为目标将E-R实体图中概念模型映射为关系模型,具体旅店信息管理模型实现

设计,如图所示:

图2.1.8系统关系图

我选取制作的是年级信息模块

所用的数据库为:年级信息。

1)存储过程:

Create procedure nianji on 学生信息

(@nan ji char(20)

@number char(20)

@ban ji char(20)

@nian ji shu char(20)

@ban ji ming char(20)

AS

Insert into 年级基本信息(年级数,班级数,班级编号,班级名,年级编号)valuse(@number,@number,@name)

GO

2)触发器程序:

为表建立my触发器以自动更新class表中的学生人数目

USE JWGL

GO

IF EXISTS(SELECT name FROM sysobjects

WHERE type ='TR'AND name ='student_insert')

DROP TRIGGER student_insert

GO

CREATE TRIGGER student_insert ON student

FOR UPDATE

AS

IF UPDATE(class_id)

BEGIN

UPDATE room SET student_num=(

SELECT COUNT(r.class_id)FROM student r,inserted i

WHERE r.typeld_id=i.typeld_id)

FROM student m,inserted i

WHERE m.typeld_id=i.typeld_id

UPDATE room SET student_num=(

SELECT COUNT(r.student_id)FROM student r,deleted e

WHERE r.typeld_id=e.typeld_id)

FROM student m,deleted e

WHERE m.typeld_id=e.typeld_id

END

GO

2.2程序设计

2.2.1概要设计

为了实现无纸化办公,以及规范化,迅捷话等我们开发了这一学生成绩管理系统,

系统主要需要完成的功能有:学校信息管理、教师信息管理、学生性息管理、课程性息管理、成绩性息编辑、成绩性息查询、补考重修管理以及帮助说明,通过分工我要完成的是教师性息管理、课程性息管理以及补考重修管理三个模块。整体功能模块图如图2.2.1所示:

图2.2.1整体功能模块图

年级信息管理包括学校年级设置、学校信息设置。其中学校信息设置时,可以输入学校学院编号实现对学校信息的设置,包括学生住宿等;学校年级设置时,可以输入年级编号实现对学校年级信息的设计,包括年级名称等如图2.2.2 所示

成绩信息管理 查询管理

学生信息管理系统

班级信息管理 学校年级设置 学籍信息设置 班级信息设置 学籍信息管理

成绩信息设置 课程信息设置 年级课程开设 课程信息查询 课程信息管理

成绩信息查询 班级信息查询 学校信息设置 学籍信息管理 年级信息管理

图2.2.2课程管理功能模块图

2.2.2程序实现

学校年级设置运新后窗口如图2.2.3

所示:

图2.2.3学校年级设置窗口图

学校年级设置窗口代码如下: Private Sub cmdDel_Click()

年级性息管理

学校年级设置

学校性息设置

If txtGradeNo.Text = "" Then

MsgBox "请选择要删除的记录!", vbOKOnly + vbInformation, "删除记录"

Exit Sub

End If

If MsgBox("确认要删除年级编号为" & txtGradeNo.Text & " 的记录吗?", vbOKCancel + vbQuestion, "删除记录") = vbOK Then

myAddGrade.rsDK1 "select * from schoolgrade_info where grade_No='" & txtGradeNo.Text & "'"

myAddGrade.rs1.Delete

myAddGrade.rsDK1 "select * from schoolgrade_info"

If myAddGrade.rs1.EOF Then

AddGradeGrid.Clear

AddGradeGrid.FormatString = " | 年级编号|年级名称"

Else

Set AddGradeGrid.DataSource = myAddGrade.rs1

AddGradeGrid.FormatString = " | 年级编号|年级名称"

End If

cmdDel.Enabled = False

cmdSave.Enabled = False

txtGradeNo.Text = ""

txtGradeName.Text = ""

End If End Sub

程序连接代码如下:

Public Function rsDK(Table As String)

Set rsSims = New ADODB.Recordset

With rsSims .Source = Table

.ActiveConnection = cnSIMS

.CursorType = adOpenKeyset

.LockType = adLockOptimistic

.Open , , , , adCmdTable End With End Function

第3章设计总结

通过这次为期两周时间的课程设计让我对数据库这一学科的很多知识得到了一次更深的理解,当初原本以为自己已经基本掌握了数据库SQL的全部知识,但当我开始着手实际操作时才发现原来过去自己所掌握的知识是那么的贫乏。

这次我们所做的课设题目为学生成绩管理系统,我们四个人分工合作,一人一部分,开始做表时还算顺利,但当到了后来设计窗体,报表什么的问题就来了,很多东西都不懂,为此我们去图书馆参阅了很多书籍,也请教过很多次老师同学,但是因为我们的没有经验,所以设计出来的东西总是漏洞百出,不是数据冗余,就是文档组织不合理,而且最后发现帮助文档居然没有编,就一个空空的空文档,点进去什么也没有,更可气的是在点击教师性息管理界面的时候居然有些性息不显示,反复检查也检查不出来是哪里出了问题,最后才发现居然是属性没有设好。还有就是在与vb连接的时候真可谓是困难重重阿,不断地试不断的失败,最后在同学们的帮助下总算是ok了,再者还有存储过程和触发器的部分那代码写起来总是丢三落四,结果就是总是出现语法错误无法完成,经过耐心的检查终于找到了原因

总的来说这课程设计真的不是很好过,不仅需要丰富的知识,严谨的思维,还需要充分的耐心,往往一个小小的窗口就能让我们改来改去该半天,不过经过此次的可生设计不仅让我学到了很多过去漏掉的只是,而且也让我更有耐心了

参考文献

1 黄剀涛 .Visual Basic 6.0中文版高级应用.北京:北京大学出版社,2006:31-35

2 孙春来.SQL Server中文版编程基础.上海:电子工业出版社,2008:195-210

3 知寒工作室.SQL Server 2000案例教程.北京:机械工业出版社,2007:619-625

4 徐建平,赵永.SQL Server 2000基础教程.北京:机械工业出版社出版,2006:51-69 5《SQL Server开发指南》熊桂喜清华大学出版社

6《SQL Server开发和应用》刘玉生电子工业出版社

7《SQL Server 2000开发指南》张营电子工业出版社

8《https://www.doczj.com/doc/0e15918942.html,编程实例详解》王华杰中国铁道出版社

9《https://www.doczj.com/doc/0e15918942.html,数据库开发》Thomsen 清华大学出版社

10《SQL Server应用开发技术指南》彭东清华大学出版社

11《数据库原理及应用》钱雪忠北京邮电大学出报社

12《数据库原理概论》王珊高等教育出版社

相关主题
文本预览
相关文档 最新文档