学生成绩管理系统数据库设计12页word文档.docx

上传人:b****6 文档编号:4561971 上传时间:2022-12-06 格式:DOCX 页数:13 大小:88.42KB
下载 相关 举报
学生成绩管理系统数据库设计12页word文档.docx_第1页
第1页 / 共13页
学生成绩管理系统数据库设计12页word文档.docx_第2页
第2页 / 共13页
学生成绩管理系统数据库设计12页word文档.docx_第3页
第3页 / 共13页
学生成绩管理系统数据库设计12页word文档.docx_第4页
第4页 / 共13页
学生成绩管理系统数据库设计12页word文档.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统数据库设计12页word文档.docx

《学生成绩管理系统数据库设计12页word文档.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库设计12页word文档.docx(13页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统数据库设计12页word文档.docx

学生成绩管理系统数据库设计12页word文档

JIANGXIAGRICULTURALUNIVERSITY

“教书先生”恐怕是市井百姓最为熟悉的一种称呼,从最初的门馆、私塾到晚清的学堂,“教书先生”那一行当怎么说也算是让国人景仰甚或敬畏的一种社会职业。

只是更早的“先生”概念并非源于教书,最初出现的“先生”一词也并非有传授知识那般的含义。

《孟子》中的“先生何为出此言也?

”;《论语》中的“有酒食,先生馔”;《国策》中的“先生坐,何至于此?

”等等,均指“先生”为父兄或有学问、有德行的长辈。

其实《国策》中本身就有“先生长者,有德之称”的说法。

可见“先生”之原意非真正的“教师”之意,倒是与当今“先生”的称呼更接近。

看来,“先生”之本源含义在于礼貌和尊称,并非具学问者的专称。

称“老师”为“先生”的记载,首见于《礼记?

曲礼》,有“从于先生,不越礼而与人言”,其中之“先生”意为“年长、资深之传授知识者”,与教师、老师之意基本一致。

数据库课程设计报告

单靠“死”记还不行,还得“活”用,姑且称之为“先死后活”吧。

让学生把一周看到或听到的新鲜事记下来,摒弃那些假话套话空话,写出自己的真情实感,篇幅可长可短,并要求运用积累的成语、名言警句等,定期检查点评,选择优秀篇目在班里朗读或展出。

这样,即巩固了所学的材料,又锻炼了学生的写作能力,同时还培养了学生的观察能力、思维能力等等,达到“一石多鸟”的效果。

题目:

学生成绩管理系统数据库设计

课本、报刊杂志中的成语、名言警句等俯首皆是,但学生写作文运用到文章中的甚少,即使运用也很难做到恰如其分。

为什么?

还是没有彻底“记死”的缘故。

要解决这个问题,方法很简单,每天花3-5分钟左右的时间记一条成语、一则名言警句即可。

可以写在后黑板的“积累专栏”上每日一换,可以在每天课前的3分钟让学生轮流讲解,也可让学生个人搜集,每天往笔记本上抄写,教师定期检查等等。

这样,一年就可记300多条成语、300多则名言警句,日积月累,终究会成为一笔不小的财富。

这些成语典故“贮藏”在学生脑中,自然会出口成章,写作时便会随心所欲地“提取”出来,使文章增色添辉。

学院:

姓名:

学号:

专业:

班级:

指导教师:

二0一二年6月

一、需求分析

1.1需求概述

针对江西农大的成绩管理工作量大、繁杂,人工处理非常困难。

学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。

学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。

1.2功能简介

能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。

具体功能应包括:

系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。

二、数据库设计

2.1确定联系集及E-R图

根据前面对系统进行的分析,已经初步了解了学生成绩管理系统的数据处理流程,找出与系统有关的各个实体及其相互联系如下:

①、标示实体集:

班级,课程,学生,成绩四个关系。

②、标示联系集:

学生和班级:

一个班由多个学生组成,一个学生只能归属于某个班;

存在“归属”的关系:

N:

1

学生和课程:

一个学生可以选修多门课程,一门课程提供给多个学生选修;

存在“选修”的关系:

N:

M

关系Score的主码是{studentNo,courseNo,term}显然同一个学生在同一个学期不允许修读同一门课程多次

关系Course的priorCourse属性参照本关系的主码courseNo属性。

这里假设一门课程最多只需要定义一门先修课程。

③、标示属性集:

班级(班级编号,班级名称,所属学院,年级,班级人数)

课程(课程号,课程名,学分,课时数,先修课程)

学生(学号,姓名,性别,出生日期,籍贯,所属班级)

成绩(学号,课程号,开课学期,成绩)

2.2画出E-R图

班级信息图如下:

图2-2-1班级实体集的E-R图

学生信息图如下:

图2-2-2学生实体集E-R图

课程信息图如下:

图2-2-3课程实体集E-R图

成绩信息图如下:

图2-2-4成绩实体集E-R

2.3学生成绩管理系统总E-R图

根据上面对实体联系的分析,可以画出E-R图如下:

图2-2-5学生成绩管理系统总E-R图

三、逻辑数据库设计阶段

逻辑结构是独立于任何一种数据模型的信息结构。

逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。

E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。

设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系,其关系模式中对每个实体定义的属性如下:

课程信息表

Class:

(班级编号,班级名称,所属学院,年级,班级人数)

学生信息表

Student:

(学号,姓名,性别,出生日期,籍贯,所属班级)

课程信息表

Course:

(课程号,课程名,学分,课时数,先修课程)

成绩表

Score:

(学号,课程号,开课学期,成绩)

设计出E-R图后,可将E-R图转换为数据库模式。

本系统建立的数据库为“ScoreDB”,运行本系统时在库中所建立的表分别介绍如下:

3.1班级信息表(Class)

字段名

描述

数据类型

字段限制

classNo

班级编号

char(10)

Primarykey

className

班级名称

varchar(30)

Notnull

institute

所属学院

varchar(30)

Notnull

grade

年级

smallint

Notnull

classNum

班级人数

tinyint

Notnull

3.2学生信息表(Student)

字段名

描述

数据类型

字段权限

studentNo

学号

char(10)

Primarykey

studentName

姓名

Varchar(30)

Notnull

sex

性别

char

(2)

Notnull

birthday

出生日期

datetime

Notnull

native

民族

varchar(30)

Notnull

classNo

所属班级

varchar(30)

Notnull

3.3课程信息表(Course)

字段名

属性

数据类型

字段权限

courseNo

课程号

char(10)

Primarykey

courseName

课程名

varchar(30)

Notnull

creditHour

学分

numeric

Notnull

courseHour

课时数

tinyint

Notnull

priorCourse

先修课程

varchar(30)

Notnull

3.4成绩表(Score)

字段名

属性

数据类型

字段权限

studentNo

学号

char(10)

Primarykey

courseNo

课程号

char(10)

Primarykey

term

开课学期

char(10)

Notnull

score

成绩

numeric

Notnull

四、建表

4.1创建数据库

打开SQL工具“查询分析器”

在查询窗口中键入下列SQL语句

createdatabaseScoreDB

执行上述SQL语句即可新建一名为ScoreDB的数据库。

4.2创建数据表

一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。

数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。

创建数据表的过程其实就是定义字段的过程。

在此学生成绩管理系统中需要创建四个表,即班级信息表、学生信息表、课程信息表和成绩表。

创建数据库后,为ScoreDB数据库添加数据表,步骤如下。

新建查询窗口

在查询窗口中键入下列SQL语句

createtableClass(//创建班级信息表

classtudentNochar(10)primarykey,//班级编号

classtudentNamevarchar(30)notnull,//班级名称

institutevarchar(30)Notnull//所属学院

gradesmallint,Notnull//年级

classNumtinyint,Notnull//班级人数

执行上述SQL语句即可创建课程信息表相关表格

createtableStudent(//创建学生信息表

studentNochar(10)primarykey,//学号

studentNamevarchar(30)notnull,//姓名

sexchar

(2)notnull,//性别

birthdaydatetimenotnull,//出生日期

nativevarchar(30)notnull,//民族

classtudentNoChar(10)notnull,//所属班级

执行上述SQL语句即可创建学生信息表相关表格

createtableCourse(//创建教师信息表

courseNochar(10)primarykey,//课程号

courseNamevarchar(30)notnull,//课程名

creditHournumericnotnull,//学分

courseHourtinyintnotnull,//课时数

priorCoursevarchar(30)notnull,//先修课程

执行上述SQL语句即可创建教师信息表相关表格

createtableScore(//创建成绩表

studentNochar(10)primarykey,//学号

courseNochar(10)primarykey,//课程号

termchar(10)notnull,//开课学期

scorenumericnotnull,//成绩

执行上述SQL语句即可创建成绩表相关表格

五、数据库的运行和维护

5.1定义

基本表的创建、修改及删除;索引的创建和删除。

5.1.1基本表的创建,建表语句

createtableStudent(//创建学生表

studentNochar(10)notnull,

studentNamevarchar(30)notnull,

sexchar

(2)notnull,

birthdaydatetimenotnull,

nativevarchar(20)notnull,

classtudentNoChar(10)notnull,

constraintstudentPKprimarykey(StudentNO),

constraintstudentPK1foreignkey(classtudentNo)referencesclass(classtudentNo)

5.1.2基本表的删除

droptableStudent

5.2数据操作

5.2.1单表查询:

查询学号为“0800006”生的姓名

selectstudentName

fromStudent

wherestudentNo='0800006'

结果:

5.2.2连接查询

查询学生的学号、姓名,所选课程的课程号、课程名和成绩

SelectStudent.studentNo,Student.studentName,Class.classNo,Class.className,Score.score

fromStudent,Class,Score,Course

WhereStudent.studentNo=Score.studentNoandStudent.classNo=Class.classNoandCourse.courseNo=Score.courseNo

结果:

5.2.3操作结果集查询

查询0700003号同学和0800002号同学共同选修的课程

SelectcourseNo

FromScore

WherestudentNo='0700003'

Intersect

SelectcourseNo

Fromscore

WherestudentNo='0800002'

查询结果:

5.2.4嵌套查询

查询选修了“CS0701”这门课的所有学生的学号、姓名、出生日期以及籍贯。

SelectstudentNo,studentName,birthday,native

FromStudent

WherestudentNoin

(selectstudentNo

Fromscore

WhereclassNo='CS0701')

查询结果:

5.3数据库更新操作

5.3.1插入数据

向Student表中添加一项记录:

姓名:

叶问,学号:

0800016,性别:

男,出生年月:

1992-6-19,籍贯:

南昌,班级编号:

CP0802

Insert

Into

Student(studentNo,studentName,sex,birthday,native,classNo)

Values('0800016','叶问','男','1992-6-19','南昌','CP0802'

结果:

5.3.2修改数据

修改吴敏的学号为0800019

UpdateStudent

SetStudentNo='0800019'

WhereStudentName='吴敏’;

5.3.3删除数据

删除所有金融学院学生的记录

Delete

fromClass

Where(institute='金融学院');

5.4为数据库建立索引

5.4.1索引的建立

createindexstudentNameSMonStudent(studentName)

5.4.2索引的删除

dropindexstudentNameSMonStudent(studentName)

5.5数据库的安全性

所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件,软件及数据,防止其偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。

为防止因用户非法使用数据库造成数据泄露、更改或破坏,必须采取一些安全性控制措施以保证数据库中数据的安全、可靠和正确有效。

安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。

主要采用用户标识及鉴定,使用用户名或用户标识号来标明用户身份。

用户想要对对数据库内容进行相关操作,必须申请一个用户名或用户标识号,每次登陆都必须输入该用户名以及相应正确的口令,然后系统对其进行验证,只有通过验证的用户方可对数据库进行操作。

5.6数据库的完整性

5.6.1实体完整性定义:

在班级表Class中将classNo定义为主码。

createtableClass(//创建class表

classNochar(10)notnull,

classNamevarchar(30)notnull,

institutevarchar(30)Notnull,

gradesmallintNotnull,

classNumtinyintnull,

constraintClassPKprimarykey(classNo)

5.6.2参照完整性定义:

在学生成绩表Score中将studentNo、courseNo定义为外码。

createtableScore(

studentNochar(10)notnull,

courseNochar(10)notnull,

termchar(10)notnull,

scorenumeric(5,1)default0notnull,

Check(Scorebetween0.0and100.0),

ConstraintScorePKprimarykey(studentNo,courseNo),

ConstraintScoreFK1foreignkey(studentNo)

ReferencesStudent(studentNo),

ConstraintScoreFK2foreignkey(courseNo)

ReferencesCourse(courseNo)

六、模式求精

通常,如果能仔细分析用户的需求,并正确的识别出所有的实体集和联系集,有E-R图生成的数据库模式往往不需要太多的进一步模式求精。

然而,如果一个实体集中的属性之间存在函数依赖(不包括主码的依赖关系),则需要根据函数依赖理论将其进行规范化。

通过分析以上关系可知Course关系模式中存在一个对非主属性的函数依赖关系:

courseName->priorCourse,由此导致的问题是数据冗余,即每一个相同等级会员都需要存放priorCourse信息。

该模式不满足BCNF范式。

因此,需要对Course进行分解。

依据BCNF可分解为一下两个模式:

NewCourse1(classNo,courseName,creditHour,courseHour)

NewCourse2(courseName,priorCourse)

七、总结

本学生成绩查询系统主要参照课本,相对来说比较简单。

但是由于主要以课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。

设计过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很多。

(1)在设计表时应注意使用正确的字段类型。

(2)在建表语句中,如果这个表的主键是多个属性的组合主键,则必须作为表级完整性进行定义。

随着学生成绩管理类型的不断增加和成绩管理要求的不断提高,管理方面的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情。

在这样的情况下有一个实用学生成绩管理系统是有其必然性的,如果能做出一个完善的学生成绩管理系统就使管理方面的工作量减少很多。

总的来说,通过这次的数据库课程设计锻炼了我们的操作能力和让我们从实际上去分析一件事比较全面和对数据库设计有了更深的了解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1