学生信息管理系统数据库总结报告Word格式.docx
《学生信息管理系统数据库总结报告Word格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统数据库总结报告Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
第2章设计内容
1数据库设计
1需求分析
“学生管理信息系统”包括十个模块:
用户信息管理,班级信息管理,学籍信息管理,课程信息管理,成绩信息管理,奖惩信息管理,个人收费信息管理,消息信息管理。
这十个模块既相互联系又相互独立.
(1)在系统管理模块中,当点击“退出”时,系统能够正常的关闭;
(2)在学生管理模块:
添加学生。
当生刚进校时要进行添加信息的添加;
删除学生。
当学生毕业后,学生信息转移备份数据库中,系统的基本数据库中需要删除学生信息。
该功能主要进行删除学生信息;
(3)在课程管理模块中,能够正确的对课程信息进行增加、修改和删除;
(4)在成绩管理模块中,能够对已经进行了选课的学生所选择的课程进行成绩的添加以及修改;
(5)在信息查询模块中,第一,能通过学号、姓名、性别、学院、专业等条件正确的查询到学生的基本信息;
第二,能通过课程名、授课老师来查询出基本的课程信息;
第三,在成绩信息查询中,能够查询出所有科目的成绩;
(6)能够针对SQLSERVER2000执行数据的基本处理,如添加、删除等.
1.系统工作流程图:
图2。
1系统工作流程图
2.系统业务流程图:
业务流程图是一种用尽可能少、尽可能简单的方法来描述业务处理过程的方法.由它比较适用于反映事务处理类型的业务过程。
2系统业务流程图
系统数据流程图:
3系统数据流程图
数据流程图是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程。
数据字典:
1)数据项:
表2.1数据项
数据项名称
数据项含义说明
别名
数据类型
长度
取值范围
学号
为每个学生设置一个代号
无
字符
4
a000-x999
姓名
学生的名字
50
中、外文
性别
学生的性别
2
男、女
出生日期
学生出生的日期
日期
8
19**/**/*-2***/**/**
民族
学生的民族
中文
入学时间
学生的入学时间
9
19**/**/*-2***/**/**
籍贯
学生的籍贯
100
班级
学生的班级
专业
学生的专业
2)数据结构的定义:
表2.2课程信息数据字典
名字:
课程信息
描述:
学生选课所产生的课程信息
定义:
课程信息=课程号+课程名+授课老师+授课地点+课程类型+授课时间
表2。
3分数信息数据字典
名字:
分数信息
学生选择课程所得分数
分数信息=课程号+学号+分数
表2.4学生信息数据字典
学生信息
学生的基本信息
学生信息=学生号+学生姓名+学生性别+民族+籍贯+入学时间+专业+所属学院+出生日期
3)数据流的定义:
表2.5成绩统计
数据流名称:
成绩统计
简要说明:
对各科成绩进行统计
数据流来源:
P1.8
数据流去向:
课程管理模块
数据结构:
序号+学号+课程编号+学期+成绩
4)数据存储:
数据存储名:
输入数据流:
课程基本信息,年级开课课程
输出数据流:
学生选修的课程信息
成绩信息
更新后的成绩信息
输出数据流:
学生各科分数及成绩的统计
2.1。
2概念设计
(1)学生信息实体E-R图:
4学生信息E—R图
(2)课程信息E-R图:
5课程信息E-R图
(2)教师信息E—R图:
6教师信息E—R图
系统E-R图:
学生信息表,学校信息表,教师信息表,课程表,成绩等表之间的联系描绘出关系模型。
联系是指学生管理系统中各个实体的联系,拥有一对一、一对多、多对多的联系。
如图2.1所示:
7学生管理系统总E—R图
3逻辑设计
逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型转换为具体DBMS所能支持的数据模型(即逻辑结构),并对其进行优化。
逻辑结构设计一般分为三步进行:
从E-R图向关系模式转化数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E—R图中的实体、实体的属性和实体之间的联系转化为关系模式。
一个实体类型转换为一个关系模型,将每种实体类型转换为一个关系,实体的属性就是关系的属性,实体的关键字就是关系的关键字。
将“客房”实体转换为一个关系模型,其中,带下划线的属性为主属性,该主属性为关系模型外键。
设计逻辑结构时一般要分三步进行:
第一步:
将概念经过转化为一般的关系、网状、层次模型;
第二部:
将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
第三部:
对数据模型进行优化。
学籍管理(学生注册,导入学生,学生查询,学生统计,学生毕业,修改学籍)
收费管理(费用减免,学生交费,交费查询,未交费查询)
成绩管理(成绩录入,成绩查询,班级成绩统计,年级成绩统计,班级成绩明细,不及格名单,学生单科名次,学生总分名次)
学籍变动(学生留降级处理,学生跳升级处理,学生借读处理,学生休学处理,学生复学处理,学生调班处理,学生转校处理,学生退学处理,学籍变动查询,学生试读查询,学生试读登记)
学生信息管理(系统管理,学籍管理,学籍变动,收费管理,宿舍管理,成绩管理,学生评语,消息文件管理)
4物理设计
物理设计是对给定的逻辑数据模型配置一个最适合应用环境的物理结构。
物理设计的输入要素包括:
模式和子模式、物理设计指南、硬件特性、OS和DBMS的约束、运行要求等.
物理设计的输出信息主要是物理数据库结构说明书。
其内容包括物理数据库结构、存储记录格式、存储记录位置分配及访问方法等。
1.存储结构
存储结构是建立一种由逻辑结构到存储空间的映射。
存储结构是把一组结点存放在按地址相邻的存储单元里,结点间的逻辑关系用存储单元的自然顺序关系来表达的,即用一块存储区域存储线性数据结构,为使用整数编码访问数据结点提供了便利。
2.索引的创建
为student表创建一个以student_id为索引的关键字的唯一聚簇索引
1)展开数据库中的表右键学生表,单击所有任务弹出的索引管理。
2)在窗体点新建索引名称为student_id_index,点击复选框“聚簇索引”、“惟一值”。
事务日志文件备份及存放
SQLServer创建数据库的时候,会同时创建事物日志文件,事物日志存储在一个单独的日志文件上.在修改写入数据库之前,事物日志会自动地记录对数据库对象所做的所有修改,事物日志有助于防止数据库损坏。
日志文件与数据文件要分开放在不同的磁盘上,这样事物日志就可以单独的备份,事务日志不会抢占数据库的空间,可以很容易的监测事务日志的空间。
存取方法:
数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。
物理设计的任务之一就是要确定选择哪些存取方法,即建立哪些存取路径。
存取方法是快速存取数据库中数据的技术。
数据库管理系统一般都提供多种存取方祛。
常用的存取方法有二类.第一类是索引方法,第二类是聚簇(Cluster)方法。
索引方法是数据库中经典的存取方法,使用最普遍。
索引法是为了加速对表中的数据行的检索而创建的一种分散的存储结构.是针对一个表而建立的,它能够以一列或多列的值为关键字,迅速查找/存取表中行数据加快了数据检索。
例如在本数据库中的:
学生(学号,姓名,性别,班级,出生年月,家庭住址,邮政编码,联系电话,入学时间)
课程信息(课程编号、课程名称、开课日期、学时。
)
整个系统需要调用学生表、成绩表等,所以学生表属性“学号”,成绩表表中的属性“学号”,将经常出现在查询条件中,可以考虑在上面建立聚簇索引以提高查询效率.
5数据库实现
数据库实现是通过数据字段、关系图、存储过程和触发器实现等各部分的功能实现的。
(1)数据字段:
学生信息表:
学号,姓名,性别,民族,籍贯,入学时间,班级,专业,出生日期。
表2。
6学生信息表
序号
TableName(表名)
FieldName(字段)
FieldType(字段类型)
IsPrimaryKey(是否主键)1为主键
1
student_Info
student_id
[varchar](15)NOTNULL
1
2
student_name
[varchar](20)NULL
3
student_gender
[char]
(2)NULL
0
birth_date
[varchar](15)NULL
5
class_no
[char](3)NOTNULL
6
tele_number
[varchar](20)NULL
7
in_date
address
[varchar](30)NULL
comment
[varchar](100)NULL
课程信息表:
课程编号,课程名称,开课学期,学分,教师编号,学院编号等。
详细情况如表2.7:
表2.7课程表
course_info
course_No
[int]NOTNULL
1
course_Name
[varchar](30)NULL
0
course_type
[char](20)NULL
0
4
course_des
[varchar](60)NULL
表4—1教师信息表:
教师编号,教师名称,职称,学院编号等。
详细情况如表2。
7:
8教师信息表
teacher_info
teacher_id
[varchar](15)NOTNULL
teacher_Name
[varchar]
(2)NULL
[varchar](15)NULL
(2)关系图:
学生管理信息系统包含学生信息表、教师信息表、课程信息表、学校信息表、成绩信息表、专业信息表、班级信息表组成.利用各个表的主键把各个表连接到一起。
利用关系图表现出来.如图2.8所示:
图2.8学生管理系统关系图
(3)运用到存储过程的如下:
1).为dataebase数据库创建一个带重编译选项的存储过程,用于托运单信息表中的托运人。
CREATEPROCspa
@学生char(8)
WITHRECOMPILE
AS
SELECT*FROM学生信息
学号=@学号
2)。
为datebase数据库建立一个存储过程,通过执行存储过程将学生信息添加到学生表。
CREATEPROCEDUREinsAS
@student_idchar(8)=NULL,
@student_namenvarchar(8)=NULL,
@student_genderchar
(2)=NULL,
@birth_datesmalldatetime=NULL,
@class_nochar(6)=NULL,
@in_datesmalldatetime=NULL,
@home_addrnvarchar(40)=NULL,
DECLARE@bitSexbit
IF@student_gender=’男’
SET@bitSex=1
ELSESET@bitSex=0
INSERTstudent
(student_id,student_name,student_gender,birth_date,class_no,)
VALUES
(@student_id,@student_name,@student_gender,@birth_date,@class_no,@in_date,@home_addr)
(4)触发器程序及其功能:
运用到触发器的如下:
为维修信息表建立INSERT触发器以自动更新教师信息表中教师人数.
USESims_four
GO
/*如果存在同名的触发器,则删除之*/
IFEXISTS(select教师人数fromsysobjectswheretype=’tr’and教师人数=’教师人数insert'
DROPTRIGGER教师信息_insert
GO
CREATETRIGGER教师人数_insertON教师人数
FORINSERT
DECLARE@NumOf教师人数TINYINT
SELECT@NumOf教师人数=c.教师人数_numFROM教师信息c,insertedi
WHEREc.教师编号=i.教师编号号
IF(@NumOf教师人数〉0)
BEGIN
UPDATE教师信息SET教师人数_num=教师人数t_num+1
FROM教师信息c,insertediWHEREc.教师人数=i.教师人数
END
ELSE(空值,直接写下面代码也可)
BEGIN
UPDATE教师信息SET为序人_num=(
SELECTCOUNT(s.教师编号)FROM教师信息s,insertedi
WHEREs.教师编号=i.教师编号)
FROM教师信息c,insertediWHEREc。
教师编号=i.教师编号
2.2程序设计
2.2.1概要设计
学生管理信息系统包括学校信息管理,教师信息管理,学生信息管理,成绩信息管理,补考重修管理以及帮助说明,在成绩信息编辑页面,可以编辑更新学生成绩情况,,而在成绩查询界面,可以查到详细的学生各科成绩.
学生信息管理分为年级信息管理,学籍信息管理,班级信息管理,成绩信息管理,课程信息管理,查询管理,其中有关学生学籍等信息的输入,包括学生基本信息,所在班级,所学课程和成绩等.学生信息的查询,包括学生基本信息,所在班级,所学课程和成绩等。
班级管理信息的查询班级管理信息的修改学校基本课程的输入,查询学生课程的设置和修改学生成绩信息的输入,修改,查询,统计。
所以为其设计管理信息系统的时候,首先要考虑其组织结构。
按照结构化的系统设计方法,将整个学生管理系统分解成相对独立的若干模块,通过对模块的设计和模块之间关系的协调来实现整个软件系统的功能,从而得到学生管理系统的功能模块结构图。
本系统的功能模块结构如图2。
9所示:
9系统的功能模块结构图
课程信息管理包括课程信息设置、年级课程开设。
其中课程信息设置时,可以输入课程编号实现对课程信息的设置,包括课程和所任课老师姓名;
年级课程开设时,可以输入学年编号实现对学年课程信息的开设,包括课程名称,课程类型及课程描述等
10课程管理功能模块图
2程序实现
程序实现主要是代码在编译器中运行得到的结果,客房类型管理窗体主要由文本框及命令按钮组成,管理员点击“添加、修改、删除、关闭”按钮系统会通过上述四个控件与数据库进行连接并进行数据的相应操作。
实现具体功能窗口如图2.11所示:
11功能实现窗口图
窗体代码:
PrivateSubcmdDel_Click()
IfTxtcouNo.Text<
>
””Then
myCourse。
rsDK1"
select*fromcourse_infowherecourse_no='
”&
TxtcouNo。
Text&”’”
IfMsgBox("
确定要删除该记录吗?
”,vbQuestion+vbOKCancel,”删除记录"
)=vbOKThen
myCourse.rs1。
Delete
CallClearText
Else
ExitSub
EndIf
myCourse.rsDK1"
select*fromcourse_info”
IfmyCourse。
rs1.EOFThen
Frame2.Enabled=False
Course_Grid.Clear
Course_Grid。
FormatString="
|课程编号|课程名称|课程类型|课程描述"
SetCourse_Grid。
DataSource=myCourse。
rs1
|课程编号|课程名称|课程类型|课程描述”
Frame1。
Enabled=False
cmdAdd.Caption="
添加(&
A)”
cmdSave。
Caption=”保存(&S)”
cmdDel。
EndIf
EndSub
数据库连接语句:
PublicFunctionrsDK1(sqlAsString)
Setrs1=NewADODB.Recordset
Withrs1
。
Source=sql
.ActiveConnection=cnSIMS
.CursorType=adOpenKeyset
LockType=adLockOptimistic
Open,,,,adCmdText
EndWith
EndFunction
第3章设计总结
本次课程设计,我的题目是学生管理信息系统。
要求编写一学生管理信息系统,实现对学生信息的计算机管理。
题目给出了,我先自己做了一份规划要求,首先要有学生基本信息包括:
班级,性别,学号,要求能输入至少四个科目的成绩。
其次对系统的使用权限做如下规定:
学生只能查询本人的成绩,管理员可以输入,修改和查询每个学生的成绩。
管理员和学生都可以随时修改自己的密码。
还有要方便学生对学生的各科成绩进行排序,并按总成绩排序。
求各科的平均成绩,并求出每个学生的平均成绩.
在这次的课程设计中,使我对数据库的知识有了更深刻了解,增加可我对数据库这门课兴趣,强化了我的实际动手能力。
同时也找到自己的不足。
我一定会继续学习增加自己的数据库知识,在今后的学习中我会更加的努力,增加自己的知识储备。
对仓库管理系统的开发,我付出了大量的时间,但是,我得到的收获远远不是这些时间可以衡量的,它将是我终生的财富,必将给我今后的学习和工作带来更多的收益。
通过对此管理系统的开发,使我对软件开发有了一个比较清楚的认识,体会到理论和实践的重要性。
由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如,用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高.
开始的登陆窗口,我们遇到了不会写代码的问题,这个登陆窗口是一个有用户名,有密码的界面,当你选择一个用户名,它有相应的口令,口令正确才可以进入.这是一个要有变量来实现的过程,当然也要对应的数据窗口.其实,这个问题不会写代码没有关系的,我们可以从数据窗口中的变量设置中找到SQL语句,这样就解决了问题。
我们的登陆窗口粗略的完成了.
由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如数据冗余,文档组织不合理,帮助文档没有编写,用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。
通过这次的课程设计,使我增加了对数据库基本概念的理解,提高对知识的理解和应用能力,并且对数据库的应用都有了更深的了解,使我的数据库编写水平又有了明显的提高。