ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库设计(结构化设计方法)——学生考试管理系统

2021-03-20 13:30:53  阅读:202  来源: 互联网

标签:教师 结构化 考核 管理系统 信息 学生 课程 登入 设计


数据库设计(结构化设计方法)——学生考试管理系统

文章目录

作业要求

登录管理模块:

  1. 权限控制:学生不能访问系统管理模块。
  2. 登录错误信息提示。

系统管理模块:

  1. 系统管理员登录系统后,可以维护课程基础信息,如课程名字、开课时间(学期)等,对课程信息进行增、删、改、查。
  2. 以设定课程的考试成绩的计算方法:能够在页面上对某课程动态增加考核点,并填入该考核点的分值比例。(**如:**对J2EE课程,可新增3个考核点,考核点1为到课情况,分值比例为20%;考核点2为作业,分值比例为20%;考核点3为考试,分值比例为60%。能够验证分值比例之和是否等于100%。)
  3. 维护某门课程每次开课的信息,包括开课时间(具体的学年度)、任课教师、选修人数统计等。
  4. 对学生基础信息进行管理,学生信息的增、删、改、查。
  5. 以列表的方式填入选修某门课程的每个学生的成绩,需要针对每个考核点填写,并计算出总成绩。只有选修了该门课的学生才显示。
  6. 能够对管理帐号进行管理,如增、删、改、查,修改密码等。

学生模块:

  1. 可以修改自己的基本信息。
  2. 可以察看每个学年度每个学期开的课程,并选修。
  3. 可查询自己选修的所有课程的成绩。

注意:不考虑学生年级因素。

一、需求分析

本阶段的成果的内容形式主要包括数据流图(Data Flow Diagram)和数据字典(DataDictionary)。

数据流图和数据字典是描述用户需求的重要工具以及阶段成果表达形式。它作为需求分析的成果和用户交流的主要手段和依据,是后续数据库设计的前提。

设计人员从数据流图中可以比较充分地了解软件的结构,所以也是软件设计的重要依据。

1.1、需求说明

作业要求中,把系统分为了三个模块,即登入管理模块、系统管理模块、学生模块。

对这三个模块的内容进行分析之后,可以得知学生考试管理系统主要满足来自三方面的需求,这三个方面分别是学生用户、教师用户和管理员用户。

因此,从原先的三个模块分解为如下四个模块:

  1. 登入管理模块(权限控制以及登入错误信息提示等)
  2. 管理员模块(对教师信息、学生信息、课程信息进行管理等)
  3. 教师模块(对课程考核点进行管理、录入学生成绩以及修改个人信息等)
  4. 学生模块(选课以及退选、查看个人成绩以及修改个人信息等)

1.2、数据流图

1.2.1、系统的顶层数据流图

系统的全局数据流图,也称为顶层数据流图,主要是从整体上描述系统的数据流,反映系统中数据的整体流向,是设计者针对用户和开发者表达出的一个总体描述。

在这里插入图片描述

1.2.2、系统的第0层数据流图

第0层数据流图是对顶层数据流图的细化,它的每一处理还可能继续细化,形成子图。

根据需求可将顶层数据流程图作细化,画出第0层数据流程图,如下图所示。

在这里插入图片描述

根据需求分析结果,明确了该系统的主要功能,分别为:

  1. 管理员设置课程并指定任课教师。
  2. 任课老师设置课程的考核点以及各考核点期末占分。
  3. 学生根据自己的兴趣选择课程。
  4. 任课老师录入学生的各考核点成绩。

1.3、数据字典

数据流图表达了数据与处理的关系,数据流图作为直观的了解系统运行机理的手段,并没有具体描述各类数据的细节,只有通过数据字典进一步细化才能对系统的需求得到具体而确切的了解。数据字典用来说明数据流图中出现的所有元素的详细的定义和描述,包括数据流、加工处理、数据存储、数据的起点和终点或外部实体等。
数据字典包括的项目有:数据项、数据结构、数据流、数据存储、加工逻辑和外部实体。

1.3.1、数据流

序号数据流名来源流向组成备注
F1课程信息管理员P2课程信息处理课程号+课程名称+任课老师工号+开课时间
F2教师信息管理员P3教师信息处理工号+姓名+性别+登入密码+电子邮箱+电话号码
F3学生信息管理员P4学生信息处理学号+姓名+性别+登入密码+电子邮箱+电话号码
F4登入信息管理员P1登入系统账号+密码+账户类别
F5管理员信息P5显示个人信息管理员账号+姓名+性别+登入密码+电子邮箱+电话号码
F6登入信息学生P1登入系统账号(学号)+密码+账户类别
F7账户信息P1登入系统P5显示个人信息账号(学、工号)+姓名+性别+登入密码+电子邮箱+电话号码
F8已处理的课程信息P2课程信息处理S1课程信息课程号+课程名称+开课时间
F9任课教师P2课程信息处理S6教师任课信息课程号+教师工号
F10已处理的教师信息P3教师信息处理S2教师信息工号+姓名+性别+登入密码+电子邮箱+电话号码
F11已处理的学生信息P4学生信息处理S3学生信息学号+姓名+性别+登入密码+电子邮箱+电话号码
F12课程信息P6显示课程信息学生课程号+课程名称+任课老师工号+任课老师名称+开课时间
F13选课信息学生P7选课学号
F14退课信息学生P8退课学号
F15成绩信息P11显示学生成绩学生学号+课程号+考核点名称+考核点分数+总成绩
F16学生个人信息P5显示个人信息学生学号+姓名+性别+登入密码+电子邮箱+电话号码
F17登入信息教师P1登入系统账号(工号)+密码+账号类别
F18教师个人信息P5显示个人信息教师工号+姓名+性别+登入密码+电子邮箱+电话号码
F19考核点信息教师P9设置考核点信息考核点名称+考核点占分
F20选课结果P7选课S7学生选课信息课程号+学号
F21退课结果P8退课S7学生选课信息课程号+学号
F22学生考核点成绩教师P10计算学生成绩考核点分数
F23学生成绩P10计算学生成绩S8学生成绩学号+课程号+考核点名称+考核点分数
F24任课课程信息P12显示任课信息教师课程号+课程名称+任课老师工号+开课时间
F25课程考核点信息P9设置课程考核点S5课程考核点信息课程号+考核点名称+考核点占分
F26选课学生信息P13显示选课学生信息教师学号+姓名+性别+登入密码+电子邮箱+电话号码

1.3.2、数据存储

序号数据文件文件组成关键标识
S1课程信息课程号+课程名称+开课时间课程号
S2教师信息工号+姓名+性别+登入密码+电子邮箱+电话号码工号
S3学生信息学号+姓名+性别+登入密码+电子邮箱+电话号码学号
S4登入账户信息账号(学、工号)+密码全部
S5课程考核点信息课程号+考核点名称+考核点占分全部
S6教师任课信息课程号+教师工号全部
S7学生选课信息课程号+学号全部
S8学生成绩学号+课程号+考核点名称+考核点分数全部

1.3.3、处理过程逻辑

序号处理过程输入输出处理逻辑
P1登入系统账号和密码以及用户类型账户信息检验登入账户的正确性
P2课程信息处理课程信息处理之后的课程信息检验课程信息的正确性以及增删改查操作
P3教师信息处理教师信息处理后的教师信息检验教师信息的正确性以及增删改查操作
P4学生信息处理学生信息处理后的学生信息检验学生信息的正确性以及增删改查操作
P5显示个人信息账户信息用户的个人信息根据登入账户不同显示不同的用户个人信息
P6显示课程信息教师任课信息和课程信息详细的课程信息显示课程信息以及任课教师
P7选课学生选课信息和课程信息选课结果处理学生选课
P8退课退课信息和学生选课信息退课结果处理学生退课
P9设置考核点信息考核点信息和课程信息课程考核点信息对课程设置考核点信息
P10录入学生成绩学生考核点成绩、课程考核点信息和学生选课信息学生成绩对学生所选的课程的考核点进行评分
P11显示学生成绩学生成绩成绩信息计算总成绩并显示学生考核点成绩以及总成绩
P12显示任课信息教师任课信息和课程信息任课课程信息显示老师所任课程的详细信息
P13显示选课学生信息学生选课信息、教师任课信息、学生信息选课学生信息显示选择某门课程的所有学生信息

二、概念设计

上述的数据流图和数据字典共同构成了对用户需求的表达,它们是系统分析员(数据库管理员)在需求调查过程中和用户反复交互得到的。

建设系统实际要处理的数据基本上已经在数据流图中得到体现,整个设计过程的后续步骤提供基础和依据。

在概念设计阶段,主要采用的设计手段目前还是实体联系模型(E-R Model)。绘制E-R图的关键是确定E-R图的各种结构,包括实体、属性和联系。

2.1、实体

要建立系统的E-R模型的描述,需进一步从数据流图和数据字典中提取系统所有的实体及其属性。为了简化E-R图的处置,现实世界的事物能作为属性对待的尽量作为属性对待,实体的指导原则如下:

  1. 属性必须是不可分的数据项,即属性中不能包含其它的属性或实体。
  2. E-R图中的关联必须是实体之间的关联,属性不能和其它实体之间有关联。

由前面分析得到的数据流图和数据字典,可以抽象得到实体主要有3个:管理员、教师、学生、课程、考核点。其中,

  • 管理员实体属性有:账号、姓名、性别、登入密码、电子邮箱、电话号码。
  • 教师实体属性有:工号、姓名、性别、登入密码、电子邮箱、电话号码。
  • 学生实体属性有:学号、姓名、性别、登入密码、电子邮箱、电话号码。
  • 课程实体属性有:课程号、课程名称、开课时间。
  • 考核点实体属性有:考核点名称、考核点占分。

2.2、系统局部E-R图

在需求分析阶段我们采用的是自上而下的分析方法,那么要在其基础上进一步作概念设计我们面临的是细化的分析数据流图以及数据字典,分析得到实体及其属性后,进一步可分析各实体之间的联系。

2.2.1、教师实体、课程实体和考核点实体的联系

一名教师可以讲授多门课程,而每门课只能被一名教师讲授,所以它们之间是一对多的联系(1:n)。

每门课程可以包含多个考核点,而一个考核点只能属于一门课程,所以它们之间的联系是一对多的(1:n)。

在这里插入图片描述

2.2.2、学生实体与课程实体的联系

一个学生可以选修多个课程,而每一个课程都能够被多个学生选修,因此,它们之间也属于一对多的关系。当学生实体与课程实体联系之后,产生考核点成绩属性。

在这里插入图片描述

2.3、系统全局E-R图

系统的局部E-R图,仅反映系统局部实体之间的联系,但无法反映系统在整体上实体间的相互联系。而对于一个比较复杂的应用系统来说,这些局部的E-R图往往有多人各自分析完成的,只反映局部的独立应用的状况,在系统整体的运作需要时,他们之间有可能存在重复的部分或冲突的情况,如实体的划分、实体或属性的命名不一致等,属性的具体含义(包括数据类型以及取值范围等不一致)问题,都可能造成上述提到的现象。
为解决这些问题,必须理清系统在应用环境中的具体语义,进行综合统一,通过调整消除那些问题,得到系统的全局E-R图。

在这里插入图片描述

三、逻辑结构设计

逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。

3.1、ER图到关系模式的转换

首先,课程实体以及它们的联系。任课教师与课程之间是一对多的联系类型,因此,将任课教师和课程分别设计成如下的关系模式:

  • 教师(工号,姓名,性别,登入密码,电子邮箱,电话号码)
  • 课程(课程号,课程名称,开课时间,工号)

学生与课程之间是多对多的联系类型,所以将学生和选修分别设计成如下的关系模式:

  • 学生(学号,姓名,性别,登入密码,电子邮箱,电话号码)
  • 选修(学号,课程号)

将管理员的关系模式设计为:

  • 管理员(账号,姓名,性别,登入密码,电子邮箱,电话号码)

对于考核点、课程和学生,由于课程与考核点是一对多的关系,学生选修课程之后能够拥有考核点成绩。

  • 考核点(课程号,考核点名称,考核点占比)
  • 考核点成绩(学号,课程号,考核点名称,分数)

3.2、关系模式的规范及调整

首先,需要我们确定上面建立的关系模式中的函数依赖,一般在作需求分析时就了解到一些数据项的依赖关系,如教师的编号决定了教师的姓名和其它的数据项信息,而实体间的联系本身也是反映了一种函数依赖关系,但是这不是研究的对象,我们针对的是在一个关系模式中的函数依赖对象。

其次,对上一步确立的所有函数依赖进行检查,判别是否存在部分函数依赖以及传递函数依赖,针对有的依赖通过投影分解,消除在一个关系模式中存在的部分函数依赖和传递函数依赖。

对以上八个关系模式进行检查发现,在“课程”中存在部分函数依赖,即工号不依赖于主键课程号,因此对此进行投影分解,增加新的关系模式“授课”。

最终得到的关系模式如下,均已符合第三范式:

  • 教师(工号,姓名,性别,登入密码,电子邮箱,电话号码)
  • 课程(课程号,课程名称,开课时间)
  • 授课(工号,课程号)
  • 学生(学号,姓名,性别,登入密码,电子邮箱,电话号码)
  • 选修(学号,课程号)
  • 管理员(账号,姓名,性别,登入密码,电子邮箱,电话号码)
  • 考核点(课程号,考核点名称,考核点占比)
  • 考核点成绩(学号,课程号,考核点名称,分数)

3.3、各数据表的表结构设计

在上述经由E-R模型得到关系模式并且得到适当的调整后,我们可以结合在需求表述中数据字典包含的数据项信息,得到数据库的表结构。

我们应该根据3.1节的内容,具体设计各个数据表的表结构,包括表名,表中各列的字段名、数据类型、数据长度和表的主键和外键;还要考虑应该建立哪些索引以及索引的类型。

3.3.1、数据库中的表清单

数据库表名关系模式名称备注
Admin管理员管理员信息表
Teacher教师教师信息表
Student学生学生信息表
Course课程课程信息表
TeaCourse授课教师授课表
StuCourse选修学生选课表
ScorePoint考核点考核点信息表
Score考核点成绩考核点成绩信息

3.3.2、教师信息表Teacher字段信息

字段名称含义属性类型长度备注
teacherid工号char10主键,也可作为登录标识
tname姓名varchar6非空
tsex性别varchar2男、女
tpassword登入密码varchar20可以是数字、英文以及符号等
temail电子邮箱varchar40
tphone电话号码varchar15

3.3.3、管理员信息表Admin字段信息

字段名称含义属性类型长度备注
aid账号char10主键,也可作为登录标识
aname姓名varchar6非空
asex性别varchar2男、女
apassword登入密码varchar20可以是数字、英文以及符号等
aemail电子邮箱varchar40
aphone电话号码varchar15

3.3.4、学生信息表Student字段信息

字段名称含义属性类型长度备注
studentid学号varchar10主键,也可作为登录标识
sname姓名varchar6非空
ssex性别varchar2男、女
spassword登入密码varchar20可以是数字、英文以及符号等
semail电子邮箱varchar40
sphone电话号码varchar15

3.3.5、课程信息表Course字段信息

字段名称含义属性类型长度备注
courseid课程号varchar10主键
cname课程名称varchar20非空
ctime课程时间int5如20201

3.3.6、教师授课表TeaCourse字段信息

字段名称含义属性类型长度备注
teacherid工号varchar10外键(Teacher.teacherid)
courseid课程号varchar10外键(Course.courseid)

3.3.7、学生选课表StuCourse字段信息

字段名称含义属性类型长度备注
studentid学号varchar10外键(Student.studentid)
courseid课程号varchar10外键(Course.courseid)

3.3.8、考核点信息表ScorePoint字段信息

字段名称含义属性类型长度备注
courseid课程号varchar10外键(Course.courseid)
pname考核点名称varchar20非空
ppercent考核点占比int3(1…100)表示所占百分比

3.3.9、考核点成绩Score字段信息

字段名称含义属性类型长度备注
studentid学号varchar10外键(Student.studentid)
courseid课程号varchar10外键(Course.courseid)
pname考核点名称varchar20非空
pscore分数int3(1…100)表示分值

标签:教师,结构化,考核,管理系统,信息,学生,课程,登入,设计
来源: https://blog.csdn.net/bestzy6/article/details/115026061

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有