学生成绩管理系统数据模型的设计与实现.docx
- 文档编号:28069226
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:32
- 大小:315.56KB
学生成绩管理系统数据模型的设计与实现.docx
《学生成绩管理系统数据模型的设计与实现.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据模型的设计与实现.docx(32页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统数据模型的设计与实现
论文编码(原论文分类号):
首都师范大学本科毕业论文
成教学生成绩管理系统数据模型的设计与实现
TheDesignandImplementationofDatamodelinAdultEducationalStudentPerformanceManagementSystem
作者刘伟
院系教育技术系
专业教育技术学
学号1077500031
指导教师王晓春
日期2011年5月6日
中文摘要
在计算机高度普及的今天,信息系统已经成为众多企事业单位、教育机构、医疗机构所不可或缺的数据管理仓库。
这些数据与人们的生活息息相关。
它的查询效率直接影响着人们的工作效率。
数据模型设计的好坏直接决定着信息系统的工作效率,所以在系统开发之前进行详细的数据模型设计是十分必要的。
本文以成教学生成绩管理系统为背景深入分析了数据模型设计的方法,讲述了需求分析,概念结构设计,逻辑结构设计直至最终建立数据库的详细过程。
关键字:
成绩管理系统;信息化;数据库;需求分析;数据流图;
Abstract
Today,thedevelopmentofcomputerishighlypopular.Eithertoeducationalorinstitutions,andmedicalinstitutions,informationsystemhasbecameaveryimportantdatamanagementwarehouse.Thesedataaresufficienttopeople'sdailylife.Itsefficiencydirectlyhasimpactonthepeople’sworkefficiency.Thequalityofthedatamodeldesigndirectlydeterminestheefficiencyofinformationsystems,sothedetaileddesignofthedatamodelbeforethedevelopmentofthesystemisverynecessary.Inthispaper,wedeeplyanalyzethewaytoDataModelDesigninthebackgroundofthedevelopmentofAdultEducationalStudentPerformanceManagementSystem.Itdescribestherequirementsanalysis,conceptualdesign,andlogicdesignuntiltheprocesstoestablishadatabase.
Keywords:
Performancemanagementsystem;Information;Database;DemandAnalysis;DFD;
0引言
0.1研究背景
在计算机高度发达,信息更新速度飞快的今天。
学校在管理、教学、办公各个方面也在悄悄地变化。
一个学校的信息化建设水平体现在这个学校信息系统建设的完善程度上。
以现代化工具代替传统手工作业。
无疑使用信息化管理使教学更先进、办公更高效、管理更科学,信息交流更迅速。
学生成绩管理系统是学校信息系统的重要组成部分,教学人员和学生对它的利用率极高。
所以,学生成绩信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但是本系的成教学生成绩管理系统存在诸多问题,远远不能满足广大师生的的需求。
比如不能联网操作,大量数据信息需要管理员一人完成,工作量巨大。
还有查询速度缓慢,查询不准确,报错率高等问题。
因此,开发一套功能完善的管理软件成为很有必要的事情,故决定选择学生成绩管理系统来作为本人的课程设计,在很短的时间里开发出一套界面友好,功能强大,使用简单的适用于各规模学院的学生成绩管理系统。
该学生成绩管理系统能有效的处理在校学生的成绩管理,具有学生信息管理、成绩输入、成绩查询及打印功能。
建立数据模型是数据仓库开发过程中必不可少的一步,它在系统的开发过程中具有非常重要的作用:
1、建立数据模型可以使系统分析师更好的理解商业需求,以确保最终开发的系统可以满足需求。
许多商业领域专家可以清楚的说明白问题和解决方法,但是这是受当时的环境限制的,并不是真正的商业需求。
通过建立数据模型,可以不断的修正和完善商业需求.系统分析师则由这些商业需求出发,选择最合适的开发模式,最终得到正确的系统。
2、数据模型有利于复用和共享。
数据模型建立了基本的逻辑数据结构,新项目可以根据自己的项目范围,复用这个模型。
这扩大了数据模型的应用范围,并且使应用这个模型的所有项目之间具有一致性。
3、数据模型有利于降低系统开发和维护的时间和成本。
在初始阶段定义完整的需求可以使后期的设计,编码,测试和实施更为迅速,过渡更为平滑。
纠正一个模型的错误也远比纠正一个真实系统错误的代价低。
而且,它可以降低用户需求变化带来的成本,当用户提出某些新的需求的时候,修改模型要比修改整个系统简单多了。
4、不对数据模型进行设计将导致很多不良后果。
传统的设计人员是根据数据流程图和分析阶段产生的报告来进行系统的设计,并不是根据数据模型.由于没有建立数据模型,数据结构是比较混乱,需求定义也不够完善,这必然导致最终的系统无法满足需求,出现修改甚至返工的代价。
建立数据模型可以促使开发人员在独立于操作系统的层面上完整考虑需求,因此可以提取出最重要的需求,从而建立完善的系统。
0.2数据模型设计与实现过程
数据模型的设计是以需求分析为基础,在了解了用户对系统的功能需求之后,我们依照这些需求进行数据模型的设计。
把现实世界中的实体通过数据模型设计转换为抽象的概念型的数据,并把实体间的联系转换为数据间的联系。
再依据这些数据和数据间的联系建立数据库。
数据模型的设计包括概念结构设计、逻辑结构设计、物理模型设计。
本论文从需求分析阶段开始论述,可以更清晰的剖析数据模型的设计过程。
即数据流程图、数据字典转换为E-R图,E-R图转换为关系数据模型,再由关系数据模型建立数据库的过程。
0.3论文内容与组织
本文包括五大部分,分别是:
引言、需求分析、概念结构设计、逻辑结构设计、数据库实现以及参考文献。
其中引言又包括研究背景、数据模型设计与实现过程、论文内容与组织。
需求分析包括简述、数据流图、数据字典。
概念结构设计包括概念与方法、局部视图设计、视图集成。
逻辑结构设计包括概念与方法、概念模型向数据模型的转换、数据模型优化。
数据库实现包括数据库系统的选择、实现步骤和方法、建表语句。
1需求分析
1.1简述
需求分析是软件开发过程中不可或缺的重要部分。
它的做事就是明确系统“做什么”的问题。
通过与客户的商讨,制定出一套具有完整功能的开发方案,作为今后开发过程中的准绳。
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工程师确定顾客的需要。
只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。
在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。
假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。
需求分析既然如此重要,自然与本文所论述的“数据模型”设计有着紧密联系,所以在谈模型设计之前就不得不涉及到一些需求分析的问题。
我们仅仅给出数据流图和数据字典,至于需求分析的其他内容本文不做赘述。
1.2数据流图
图1-1为成教学生成绩管理系统的顶层数据流图,反映了整个系统的总体概念。
真正的系统功能并没有得到细化。
只为了用户对系统有一个整体认识,并宏观的看到系统所处理的数据流。
管理员负责把学生的、教师、课程、班级的基本信息录入到系统中,然后系统通过一定的操作把这些基本信息加工成有用的信息。
即学生信息、课程安排信息、教师信息、成绩。
然后这些数据流按照不同用户的需求流向不同的地方。
如当学生向系统发出查询请求后,系统会返回给学生他的个人信息、成绩和他的课程信息。
教师登陆系统后,系统会把教师的相关信息直接呈现给教师,包括教师的个人信息和教师所教课程的信息。
图1-1顶层数据流图
图1-2为成教学生成绩管理系统的0层数据流图。
即把顶层数据流图的“成绩管理系统”进行了细化。
细化为一个个的“加工”,这些“加工”是数据流发生变化的地方。
本图的“加工”是由系统功能确定的,即学生管理、课程管理、成绩管理、重修管理。
比如班级基本信息和学生基本信息通过“学生管理”这一加工变成了学生信息,学生信息是班级基本信息和学生基本信息的综合体,包含了学生和班级的有用信息。
图1-20层数据流图
图1-3为成教学生成绩管理系统的子层数据流图。
由于0层数据流图中的“学生管理”加工又涉及两个分加工,所以需要继续将其分解。
学生管理数据流图1就是把“学生管理”这一加工再进行细化后得到的数据流图。
我们可以看到学生管理被分为了“1.1学生录入”、“1.2学生安排”。
图1-3学生管理数据流图
图1-4为成教学生成绩管理系统的子层数据流图。
由于0层数据流图中的“课程管理”加工又涉及两个分加工,所以需要继续将其分解。
课程管理数据流图2就是把“课程管理”这一加工再进行细化后得到的数据流图。
我们可以看到学生管理被分为了“2.1课程录入”、“2.2课程安排”。
图1-4课程管理数据流图
图1-5为成教学生成绩管理系统的子层数据流图。
由于0层数据流图中的“成绩管理”加工又涉及三个分加工,所以需要继续将其分解。
成绩管理数据流图3就是把“成绩管理”这一加工再进行细化后得到的数据流图。
我们可以看到成绩管理被分为了“3.1成绩录入”、“3.2成绩查询”和“3.3改分权限管理”。
图1-5成绩管理数据流图
1.3数据字典
表1-1至表1-6为数据项:
表1-1学生信息
数据项
含义说明
别名
类型
长度
取值含义
学号
唯一标识每个学生
学生编号
char
8
前2位标别该学生所在年级,后六位按顺序编号
学生名
记录学生姓名
学生姓名
char
8
年龄
记录学生年龄
学生年龄
int
2
学员年龄必须在18到45岁之间
性别
记录学生性别
学生性别
char
1
表1-2教师信息
数据项
含义说明
别名
类型
长度
取值含义
教师号
唯一标识每个教师
教师编号
char
8
前2位标别该教师所交年级,后六位按顺序编号
教师名
记录教师姓名
教师姓名
char
8
表1-3班级信息
数据项
含义说明
别名
类型
长度
取值含义
班级号
唯一标识每个班级
班级编号
char
4
前2位标别该班级所属年级,后两位按顺序编号
班级名
记录班级名称
班级名称
char
8
表1-4课程信息
数据项
含义说明
别名
类型
长度
取值含义
课程号
唯一标识每门课程
课程编号
char
8
前2位标别该课程所在年级,后六位按顺序编号
课程名
记录课程名称
课程名称
char
8
表1-5用户信息
数据项
含义说明
别名
类型
长度
取值含义
账号
记录用户登录名
登录名
char
8
学生,教师的编号
密码
记录用户登陆密码
登陆密码
char
8
由8位数字和字母混合组成
权限
记录登陆权限
登录权限
int
1
表1-6课设信息
数据项
含义说明
别名
类型
长度
取值含义
教师号
唯一标识每个教师
教师编号
char
8
前2位标别该教师所交年级,后六位按顺序编号
班级号
唯一标识每个班级
班级编号
char
4
前2位标别该班级所属年级,后两位按顺序编号
课程号
唯一标识每门课程
课程编号
char
8
前2位标别该课程所在年级,后六位按顺序编号
分数修改权限
记录分数是否为可更改状态
修改权限
int
4
0表示可修改,1表示不可修改
上课地点
备注上课地点,时间等信息
课程备注
char
40
表1-7至表1-13为数据结构:
表1-7班级数据结构
数据结构:
班级
含义说明:
记录班级有关信息
组成:
班级号+班级名
表1-8学生数据结构
数据结构:
学生
含义说明:
记录学生有关信息
组成:
学号+姓名+年龄+性别
表1-9教师数据结构
数据结构:
教师
含义说明:
记录教师有关信息
组成:
教师号+教师名
表1-10课程数据结构
数据结构:
课程
含义说明:
记录课程有关信息
组成:
课程号+程名
表1-11用户数据结构
数据结构:
用户
含义说明:
记录用户有关信息
组成:
密码+权限
表1-12选课数据结构
数据结构:
选课
含义说明:
记录学生成绩
组成:
学生号+课程号+成绩
表1-13课设数据结构
数据结构:
课设
含义说明:
记录课程安排情况
组成:
班级号+课程号+教师号+分数修改权限+上课地点
表1-14至表1-18为数据流:
表1-14学生基本信息数据流
数据流:
学生基本信息
说明:
记录学生基本信息
数据来源:
管理员
数据去向:
学生管理
表1-15课程基本信息数据流
数据流:
课程基本信息
说明:
记录课程基本信息
数据来源:
管理员
数据去向:
课程管理
表1-16班级基本信息数据流
数据流:
班级基本信息
说明:
记录班级基本信息
数据来源:
管理员
数据去向:
学生管理、课程管理
表1-17学生信息数据流
数据流:
学生信息
说明:
记录与学生相关的所有信息
数据来源:
学生管理
数据去向:
成绩管理
表1-18课程信息数据流
数据流:
课程信息
说明:
记录与课程相关的所有信息
数据来源:
课程管理
数据去向:
成绩管理、重修管理
表1-19至表1-22为处理过程:
表1-19成绩管理处理过程
处理过程:
成绩管理
说明:
为每名学生记录成绩
输入:
学生、课程、成绩
输出:
成绩查询
处理:
记录每个学生每门课程的成绩
表1-20课程安排处理过程
处理过程:
课程管理
说明:
为班级安排课程
输入:
班级、教师、课程
输出:
课程安排
处理:
安排出每个班上什么课,由哪个老师教
表1-21重修管理处理过程
处理过程:
重修管理
说明:
帮重修的学生重新选课
输入:
课程
输出:
新旧课程参照
处理:
把某个学生没过的课的旧课名与现在的新课名进行对照
表1-22学生管理处理过程
处理过程:
学生管理
说明:
为学生分配班级
输入:
学生、班级
输出:
班级安排
处理:
每个学生有一个班级
2概念结构设计
通过需求分析,我们已经得到了用户的应用需求,但这些应用需求还是现实世界的具体需求,我们应该首先把他们抽象为信息世界的结构,才能更好地、更准确地用某一个DBMS实现用户的这些需求。
本文论述的第二章——概念结构设计,就是为了讲述成教学生成绩管理系统的概念结构是如何设计的。
本章节分为两大部分来论述,第一部分是局部视图设计,根据需求分析中得到了数据流图和数据字典对每一个应用子模块进行设计;第二部分是视图集成,这部分主要论述如何把第一部分得出的各个子视图结合成一个总视图。
2.1概念结构设计的方法
设计概念结构通常有四种方法:
第一种:
自顶向下。
即首先定义全局概念结构的框架,然后逐步细化。
第二种:
自底向上。
即首先定义各局部应用的概念结构,然后将他们集成起来,得到全局概念结构。
第三种:
逐步扩张。
首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。
第四种:
混合策略。
即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
本文采用自底向上的方法,以E-R模型为工具来描述概念结构。
2.2局部视图设计
2.2.1选择局部应用
选择局部应用是局部视图设计的第一步。
在需求分析阶段,我们已经得到了多层数据流图和数据字典。
这一节中,我们需要在多层数据流图中选择适当的一层,让这一层中的每一部分对应一个局部应用,即可以这一层的数据流图为出发点,设计分E-R图。
但是顶层数据流图概括性很强,只能反映系统的全貌,所以这一层不适合作为设计的出发点。
而底层数据流图又过于局限,不能显示出整个系统的应用组成,故一般我们选择中层数据流图。
在本系统中即为0层数据流图。
在这里我们选择的局部应用分别为:
学生管理、课程管理、成绩管理、重修管理。
2.2.2设计分E-R图
如图2-1,学生管理过程中,有两个实体参与。
分别是学生和班级。
学生和班级为组成关系,一个学生对一个班级,一个班级对多个学生。
为了节省篇幅,E-R图中省略了各实体的属性描述,这些实体的属性分别为(下同):
学生:
{学号,学生名,性别,年龄,班级号}
班级:
{班级号,班级名,班级人数}
图2-1学生管理部分E-R图
如图2-2,课程管理过程中,有三个实体参与。
分别是课程、班级、教师。
课程、班级和老师指教是课设关系。
一个课程对应多个老师,一个老师对应多个课程。
一个课程对应多个班级,一个班级对应多个课程。
一个班级对多个老师,一个老师对多个班级。
实体的属性分别是:
课程:
{课程号,课程名}
教师:
{教师号,教师名}
班级:
{班级号,班级名}
课设:
{班号,课程号,教师号,上课地点}
图2-2课程管理部分E-R图
如图2-3和图2-4,成绩管理过程中,有四个实体参与。
分别是学生、课程、老师、班级。
学生和课程之间是选课关系。
一个学生对多门课程,一门课程对多个学生。
课程、班级和老师指教是课设关系。
一个课程对应多个老师,一个老师对应多个课程。
一个课程对应多个班级,一个班级对应多个课程。
一个班级对多个老师,一个老师对多个班级。
实体的属性分别是:
学生:
{学号,学生名,性别,年龄,班级号}
课程:
{课程号,课程名}
教师:
{教师号,教师名}
班级:
{班级号,班级名}
选课:
{学生号,课程号,成绩}
课设:
{班号,课程号,教师号,分数修改权限}
图2-3成绩管理部分E-R图
(1)
图2-4成绩管理部分E-R图
(2)
2.3视图集成
2.3.1生成初步E-R图
如图2-5为初步E-R图,成绩管理与课程管理的分E-R图具有相同部分,即课程,教师,班级,课设,可以合并处理,但是应该注意各实体和关系的属性要全面,在后面逻辑设计的时候应该避免属性。
图2-5学生成绩管理系统初步E-R图
2.3.2修改与重构
如图2-6为基本E-R图,学生:
{学号,学生名,性别,年龄,班级号},学生和班级两实体间存在“组成”关系,通过“组成”可以导出学生的班级号,所以学生实体中的班级号是冗余数据,应该去掉。
学生:
{学号,学生名,性别,年龄}
图2-6学生成绩管理系统基本E-R图
3逻辑结构设计
3.1逻辑结构设计的概念和方法
概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。
但是仅仅靠概念模型是不能设计数据库的,我们还需要把概念模型转化为数据模型,这就是本章所要论述的逻辑结构设计。
逻辑结构设计一般要分三步进行:
第一步:
将概念结构转化为一般的关系,网状,层次模型。
第二步:
将转化来的关系,网状,层次模型向特定的DBMS支持下的数据模型转换。
第三步:
对数据模型进行优化。
本文采用的是现在较为流行的关系模型。
如图3-1是系统的完整数据模型图,3.2节会对此图进行详细分析。
图3-1系统的完整数据模型图
3.2概念结构(E-R图)向逻辑结构的转换
如图2-6,“学生”、“班级”、“课程”、“教师”都是单个实体。
可以直接转换成关系,只要注意属性不要遗漏,名称不要冲突即可。
学生:
{学号,学生名,性别,年龄},见表3-1。
班级:
{班级号,班级名},见表3-2。
课程:
{课程号,课程名},见表3-3。
教师:
{教师号,教师名},见表3-4。
表3-1学生数据模型
字段名
类型
长度
说明
学生号
Char
8
学生编号
学生名
Char
8
学生姓名
年龄
Int
2
学生年龄
性别
Char
1
学生性别
表3-2班级数据模型
字段名
类型
长度
说明
班级号
Char
8
班级编号
班级名
Char
8
班级名称
表3-3课程数据模型
字段名
类型
长度
说明
课程号
Char
8
课程编号
课程名
Char
8
课程名称
表3-4教师数据模型
字段名
类型
长度
说明
教师号
Char
8
教师编号
教师名
Char
8
教师姓名
如图2-6,“组成”是学生和班级的关系。
学生、班级是n:
1的关系,这种关系有两种转换方法,一种是把1合并到n里,关系的码为n端实体的码。
另一种方法是转换为一个独立的关系模式,关系的属性分别是两端实体的码,和关系本身的属性,关系的码是n端实体的码。
组成:
{学号,班级号},见表3-5。
表3-5组成数据模型
字段名
类型
长度
说明
学号
Char
8
学生编号
班级号
Char
8
班级编号
“课设”是课程、班级、教师的关系。
课程、班级、教师是n:
m:
z的关系,应该转换为一个独立的、关系,关系的码为各实体的码。
分数修改权限和上课地点都是关系本身的属性,是由课程管理和成绩管理两个分E-R图的课设关系合并后得到的总属性。
课设:
{班级号,课程号,教师号,分数修改权限,上课地点},见表3-6。
表3-6课设数据模型
字段名
类型
长度
说明
班级号
Char
8
班级编号
教师号
Char
8
教师编号
课程号
Char
8
课程编号
分数修改权限
Int
4
以0、1表示
备注
Char
40
记录上课地点等信息
“选课”是学生和课程的关系。
学生、课程是n:
m的关系,应该转换为一个独立的关系,关系的码为各实体的码。
成绩是关系本身的属性。
选课:
{学号,课程号,成绩},见表3-7。
表3-7选课数据模型
字段名
类型
长度
说明
学号
Char
8
学生编号
课程号
Char
8
课程编号
成绩
Char
2
成绩
“新旧参照”是临时表,为了避免当课程改名后,系统出错的问题。
新旧参照(temp):
{原班级名,原课程名,现班级名,现课程名},见表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 数据模型 设计 实现