您的当前位置:首页正文

数据库课程设计论文

2023-11-29 来源:易榕旅网
河南理工大学万方科技学院

数据库设计论文

论文题目: 学生成绩管理数据库的设计 院 系: 电气系 专 业: 学 号: 姓 名: 指导教师: 撰写学年:

年 月 日

摘要

学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。为了减轻学校的负担,增加学生成绩管理的便捷,为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化,我们小组设计了一个学生成绩管理系统。本学年设计叙述到的学生成绩管理系统是用SQL语言实现的。重点介绍了学生成绩管理系统的实现过程:包括概念设计,需求分析,逻辑结构和物理设计,系统的实施与维护等。本系统主要功能有教师管理,学生管理,班级管理,学生信息管理,成绩管理等,包括功能需求描述,数据库设计等内容。

关键词:成绩管理;成绩查询;SQL server

2

目录

1.数据库设计概述 ------------------------------------------------------------------ 1

1.1开发背景 ---------------------------------------------------------------------------------------- 1 1.2 开发目标 --------------------------------------------------------------------------------------- 1

2.需求分析 --------------------------------------------------------------------------- 1

2.1系统功能需求 ---------------------------------------------------------------------------------- 1 2.2 系统模块设计 --------------------------------------------------------------------------------- 2 2.3 开发环境 --------------------------------------------------------------------------------------- 2

3.概念结构设计 --------------------------------------------------------------------- 2

3.1 系统实体设计 --------------------------------------------------------------------------------- 3 3.2 系统E-R图 ------------------------------------------------------------------------------------ 3 3.3 系统数据流图 --------------------------------------------------------------------------------- 7

4.逻辑结构设计 --------------------------------------------------------------------- 7

4.1成绩管理系统数据模型 ---------------------------------------------------------------------- 7

5.数据库的物理设计 ------------------------------------------------------------- 10

5.1 数据库的存储结构 -------------------------------------------------------------------------- 10 5.2 关系模型的存取方法 ----------------------------------------------------------------------- 14 5.3 数据库关系图 -------------------------------------------------------------------------------- 15

6.数据库的实施和维护 ---------------------------------------------------------- 16

6.1 系统的实施 ---------------------------------------------------------------------------------- 16 6.2 系统的调试与维护 -------------------------------------------------------------------------- 16

7.总结 ------------------------------------------------------------------------------- 17

7.1 设计总结 -------------------------------------------------------------------------------------- 17 7.2 致谢 --------------------------------------------------------------------------------------------- 17

8.参考文献 ------------------------------------------------------------------------- 17

1.数据库设计概述

1.1开发背景

学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等.在科学技术突飞猛进的时代,为了减轻学校的负担,增加学生成绩管理的便捷,开发出一个适用于高校的学生成绩管理系统是必要的.

1.2 开发目标

开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平.为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化.不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生在能方便的查看自己的成绩.

2.需求分析

2.1系统功能需求

1.管理员能够实现对整个学生信息的录入、修改、删除、查询等操作,对教师用户的添加、删除、修改等操作。

2.教师能够在一定的权限内对所有学生成绩进行查询,可以对的自己的登录密码进行修改。

系统具体需要实现以下功能:

1.系统管理:对用户管理和系统进行初始化设置。

2.成绩管理:提供学生考试成绩的基本录入、修改、查询、打印等基本管理功能,以及学生单科和总成绩的相关统计功能。

3.学生名单管理:提供对学生名单的基本管理功能,主要是学生名单的录入、修改、删除和浏览/查询等基本功能。

4.基础数据管理:提供对学校基本数据和考试相关基础数据的管理功能,包括:

1

专业设置、班级设置、考试类型设置、考试科目设置和考试学期设置等。

5.数据库管理:对现有的数据进行管理,包括数据备份和恢复,以方便用户对数据库进行管理和维护工作,提高系统的数据安全性。

2.2 系统模块设计

成绩管理系统大体可以分成三大模块如图, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平时成绩、考试成绩、最终成绩以及是否需要重修或补考的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图:

授权用户进入 管教理师管理 学生管课程管成绩查退出数据库 图1系统模块设计流程图

2.3 开发环境

软件环境:Microsoft SQL Server 2000

Windows95/98/2000/XP,Internet Explorer(IE)5.0及其以上版本

硬件环境:CPU:PIII 500以上

内存:512M以上 硬盘空间:1GB以上

3.概念结构设计

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构

2

设计。概念模型是在对用户需求分析之后,画出本系统抽象出的E-R图。

3.1 系统实体设计

由需求分析的结果可知,本系统设计的实体包括:

(1)学生基本信息:学号,姓名,性别,系别, 地址,年龄,专业,身份证号码, 入学时间, 联系方式;

(2)教师基本信息:教师号, 教师所属系, 性别, 教师名, 年龄, 职称, 联系方式, 教龄;

(3)Course表基本信息:课程号, 课程名称, 课时, 学分, 课程种类, 学年, 学期;

(4)Grade表基本信息:成绩记录号, 课程号, 学号,课程名,平时成绩, 考试成绩, 总成绩;

(5)班级表基本信息:班级号, 班级名称, 所属系, 班级人数, 班长学号; (6)授课表基本信息:授课时间, 授课地点, 课程号,教师号,教师名; (7)选修表基本信息:课程号,学号, 成绩;

(8)课程安排表基本信息:课程号, 课程名称, 学号, 教师号, 教师名; (9)用户表基本信息:用户名,密码,所属权限.

3.2 系统E-R图

根据规划出的实体画出对各个实体具体的描述如下:

3

成绩 n n 考试 所属 班级 n 录入 n 学生 n n n n 教师 授课 图2 系统总E-R图

教授 n 选修 n n 课程

学生 地址 身份证号 联系方式 姓名 学号 年龄 性别 系别 入学时间 图3 学生信息E-R图

4

教师 教龄 职称 所属系

教师名 教师号 性别 年龄 联系方式 班级 图4 教师信息E-R图 班级名 班级号 所属系 班级人数 班长学号 图5 班级信息E-R图

课程 学年 学期 课程名称 课程号 学分 课时 课程种类 图6 课程信息E-R图

5

学号 成绩 成绩 补考 重修 考试成绩

教师名 教师号 课程名 课程号 平时成绩 图7 成绩信息E-R图 教师 教授 学生 课程号 图8 教授关系E-R图

课程名称

教师 授课 课程 授课时间 授课地点 图9 授课关系E-R图

6

3.3 系统数据流图

由数据库系统总E-R图和分E-R图得到数据流图:

1 录入 学生信息 学生 教务人员 2 录入 课程信息 课程 3 登记 学生成绩 成绩 学生 4 查询 学生成绩 图10 系统数据流图

4.逻辑结构设计

设计逻辑结构分三步进行:第一步,将概念经过转化为一般的关系、网状、层次模型;第二步,将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;第三步,对数据模型进行优化。

4.1成绩管理系统数据模型

由系统E—R图转化而得到的成绩管理系统数据模型如下:

7

(1)学生表基本信息:学号,姓名,性别,系别, 地址,年龄,专业,身份证号码, 入学时间, 联系方式。(其中 学号为主键 系别为外键)

表1 Student基本信息表

字段名 Stu _sno Stu _sname Stu_sex Stu_dept Stu_age Stu_address Stu _id Stu_entry Stu_class Stu_contact 字段类型 Varchar(6) varchar(8) char(2) varchar(30) char(4) vachar(30) char(18) datetime Varchar(15) Varchar(13) 约束控制 Not Null(Primary key),在000000到999999之间 Not Null ‘男’或‘女’ Not null Not null Not null Not null Not null 说明 学号 姓名 性别 系别 年龄 地址 身份证号 入学时间 班级 联系方式 (2)Course表基本信息:课程号, 课程名称, 课时, 学分, 课程种类, 学年, 学期(其中 课程号为主键)

表2 Course表

字段名 Co_cno Co_name Co_hour Co_score Co_type Co_year Co_term 字段类型 Varchar(4) varchar(15) smallint smallint varchar(10) smallint smallint 约束控制 主键(primary key),在9000到9999之间 not null not null not null 属于(1,2,3,4,5,6) not null not null,只能选择1,2 3,4 not null 只能选择 春,秋 说明 课程号 课程名称 课时 学分 课程种类 学年 学期 (3)教师基本信息:教师号, 教师所属系, 性别, 教师名, 年龄, 职称, 联系方式, 教龄(其中 教师号为主键)

表3 teacher基本信息表 字段名 T_tno T_dep T_cname T_sex T_age T_position 字段类型 Varchar(10) Varchar(15) Char(6) int smallint varchar(15) 约束控制 Not null not null not null not null not null 说明 教师所属系别 教师名 性别 年龄 职称 not null,在000到999之间 教师号 8

T_contact T_work_age Char(11) smallint not null not null 联系方式 教龄 (4)课程安排表基本信息:课程号, 课程名称, 学号, 教师号, 教师名(其中教师号和课程号为主键)

表4 课程表

字段名 C_cno C_name T_cname T_tno 字段类型 Varchar(4) varchar(15) char(6) varchar(10) 约束控制 Not null not null not null not null 说明 课程号 课程名称 教师名 教师号 (5)授课表基本信息:授课时间, 授课地点, 课程号,教师号,教师名(其中 教师号和课程号为主键)

表5 授课表

字段名 Learn_room T_cname T_tno Learn_time C_cno 字段类型 varchar(8) char(6) varchar(10) Varchar(8) Varchar(4) 约束控制 Not null Not null not null 在 9000到9999之间 说明 上课地点 教师名 授课时间 课程号 Not null 在000到999之间 教师号 (6)班级表基本信息:班级号, 班级名称, 所属系, 班级人数, 班长学号(其中 所属系为主键)

表6 class基本信息表

字段名 Cl_cno Cl_name Cl_dep Cl_number Cl_monitor 字段类型 varchar(4) Varchar(15) Varchar(10) int Varchar(6) 约束控制 主键(primary key),在0000到9999之间 not null not null not null,大于0 且小于100 not null 说明 班级号 班级名称 所属系 人数 班长学号 (7)Grade表基本信息(成绩记录号, 课程号, 学号,课程名,平时成绩, 考试成绩, 总成绩)(其中成绩记录号,课程号,学号为主键)

表7 Grade基本信息表 字段名 Score_id C_cno 字段类型 int Varchar(4) 约束控制 not null 外部键 说明 成绩记录号 课程号 9

C_name T_name T_tno Stu_sno practic_grade exam_grade FGrade Re_choose Re_exam varchar(15) varchar(8) Varchar(10) Varchar(6) int int Dec(3,1) char(2) char(2) not null not null not null 外部键 Not null ,大于等于0, 小于等于100 Not null ,大于等于0, 小于等于100 nor_score占30% exam_score占70% 是 否 是 否 课程名称 教师名 教师号 学号 平时成绩 考试成绩 成绩 重修 补考 (8)用户表基本信息:用户名,密码,所属权限

表8 User基本信息表

字段名 Username UserID Userauth 字段类型 varchar(10) varchar(6) varchar(10) 约束控制 Not null Not null 在学生,教师,教学秘书之间 说明 用户名 密码 权限 5.数据库的物理设计

5.1 数据库的存储结构

确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括:确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。

(1)创建学生基本信息表:

create table Student(

Stu_sno numeric(6) constraint A1 check(Stu_sno between 000000 and 999999), Stu_sname varchar(8) not null,

Stu_sex char(2) constraint A2 check(Stu_sex in('男','女')), Stu_dept varchar(30) not null,

Stu_age char(4) constraint A3 check(Stu_age between 10 and 30 ), Stu_address varchar(30) not null, Stu_id char(18) not null, Stu_entry datetime not null, Stu_contact Varchar(13),

10

Stu_class Varchar(15),

constraint Stu_key primary key(Stu_sno) )

create index Stusno on Student(Stu_sno asc) create index Stusdept on Student(Stu_dept)

(2)创建课程表:

create table Course(

C_cno numeric(4) constraint B1 check(C_cno between 9000 and 9999), C_name varchar(15) not null, C_hour smallint not null,

C_score smallint constraint B4 check(C_score in ('1','2','3','4','5','6')and C_score is not null)

C_type varchar(10) not null,

C_year smallint constraint B2 check(C_year in('1','2','3','4')and C_year is not null ),

C_term char(2) constraint B3 check(C_term in('春','秋')and C_term is not null), C_num smallint not null ,

constraint C_key primary key(C_cno) )

create index Courseid on Course(C_cno asc);

(3)创建成绩表Grade

create table Grade( Grade_id int not null,

T_tno Varchar(10) not null, C_cno numeric(4),

C_name varchar(15) not null, Stu_sno numeric(6),

practic_grade int constraint D1 check (practic_grade between 0 and 100 ), exam_grade int constraint D2 check(exam_grade between 0 and 100 ), FGrade Dec(3,1) ,

Re_choose char(2) constraint D3 check(Re_choose in ('是','否')), Re_exam char(2) constraint D4 check(Re_exam in ('是','否')),

11

constraint D5 check((0.3*practic_grade)+(0.7*exam_grade)=FGrade), constraint Grade_key primary key(C_cno,T_tno,Stu_sno),

constraint GForeign_key1 foreign key(Stu_sno)references Student(Stu_sno), constraint GForeign_key2 foreign key(C_cno)references Course(C_cno), constraint GForeign_key3 foreign key(T_tno)references Teacher(T_tno) )

create index GradeID on Grade(Grade_id)

(4)创建教师基本信息表Teacher

create table Teacher(

T_tno varchar(10) constraint C1 check(T_tno between 000 and 999 and T_tno is not null),

T_dep varchar(15) not null, T_cname char(6) not null, T_sex char(2) not null, T_age smallint not null, T_position varchar(15) not null, T_contact char(11) not null, T_work_age smallint not null, constraint T_key primary key(T_tno) )

create index Teatno on Teacher(T_tno asc)

(5)创建班级表Class

create table Class(

Cl_cno varchar(4) constraint E1 check(Cl_cno between 0000 and 9999 and Cl_cno is not null),

Cl_name varchar(15) not null, Cl_dept varchar(30),

Cl_number int constraint E2 check(Cl_number between 0 and 100 and Cl_number is not null ) ,

Class_monitor numeric(6) not null, constraint CL1_key primary key(Cl_dept), )

12

create index class1 on class(Cl_dept asc)

(6)创建授课表schooling

create table schooling( Learn_room varchar(8) not null, Learn_time varchar(8) not null,

C_cno numeric(4)constraint F1 check(C_cno between 9000 and 9999),

T_tno varchar(10) constraint F2 check(T_tno between 000 and 999 and T_tno is not null),

T_cname char(6) not null,

constraint sch_key primary key(C_cno,T_tno) )

create index schooling1 on schooling( T_tno asc) create index schooling2 on schooling(C_cno asc)

(7)创建课程安排表arrange_lesson

create table arrange_lessson(

C_cno numeric(4)constraint H1 check(C_cno between 9000 and 9999), C_name varchar(15) not null,

T_tno varchar(10) constraint H2 check(T_tno between 000 and 999 and T_tno is not null),

T_cname char(6) not null, C_type varchar(10) not null,

C_year smallint check (C_year in('1','2','3','4')and C_year is not null), C_term char(2) constraint H4 check(C_term in('春','秋')and C_term is not null ),

Cl_name varchar(15) not null,

constraint ARlesson_KEY primary key(C_cno,T_tno) ,

constraint Stu1_key foreign key(Stu_dept)references Class(Cl_dept) )

create index Teacher on arrange_lessson(T_tno asc) create index Course on arrange_lessson(C_cno asc)

(8)创建用户表Users

13

create table Users(

Username varchar(10) not null, UserID varchar(6) not null,

Userauth varchar(10) constraint I1 check(Userauth in('学生','教师','教学秘书')))

5.2 关系模型的存取方法

在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实际设计中最常用的存取方法是索引,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。

数据库中设计了如下索引: (1)在Student表中建立索引:

create index Stusno on Student(Stu_sno asc) create index Stusdept on Student(Stu_dept) (2)在Course表中建立索引:

create index Courseid on Course(C_cno asc); (3)在Teacher表中建立索引:

create index Teatno on Teacher(T_tno asc) (4)在授课表中建立索引

create index schooling1 on schooling( T_tno asc) create index schooling2 on schooling(C_cno asc) (5)在课程表中建立索引:

create index Teacher on arrange_lessson(T_tno asc)

14

create index Course on arrange_lessson(C_cno asc) (6)在Grade表中建立索引:

create index GradeID on Grade(Grade_id) (7)在Class表中建立索引:

create index class1 on class(Cl_dept asc)

5.3 数据库关系图

图11 系统关系图

15

6.数据库的实施和维护

6.1 系统的实施

按照物理模型实现应用软件的编写和测试,系统试运行,编写技术文件,系统转换,系统交付使用,以及运行后的系统维护和评价等工作。

执行数据库后部分关系图如下: (1)学生基本信息视图:

图12 学生视图

(2)学生成绩视图:

图13 学生成绩视图

(3)授课表视图:

图14 授课视图

(4)教师表视图:

图15 教师视图

(5)教师录入成绩视图:

图16 教师录入成绩视图

(6)教师课程安排表视图:

图17 课程安排视图

6.2 系统的调试与维护

系统程序和数据的维护又包括程序的维护,数据文件的维护,代码的维护等等。维护是系统在使用中应对系统注意,并加以维护,维护包括:

1系统运行的日常维护;

16

2系统运行情况的记录; 3系统程序和数据的维护。

7.总结

7.1 设计总结

初学数据库,所学的数据库知识都是基础,简单的设计,简单的代码,随着时间、进度的增加,我们的设计难度明显加大,许多地方不清晰,更不熟悉。但是在团队合作中,每个组员负责自己的模块,从需求分析,系统流程图,结构图,到数据流图,数据表,建立索引,视图等,同学们一起努力,如果不够好,大家一起修改一起研究,就这样改了再改,最终完成了此次设计。 通过这次设计,更加掌握了SQL Server的使用,综合练习了SQL Server的数据库设计技术,深入了解了数据库系统,进一步加深对系统整体设计的了解,使我学到很多课本上没有学到的知识。

7.2 致谢

8.参考文献

[1]密君英. SQL Server2005中文版经典实例教程.出版社:中国电力出版社,第1版,2008,8,1 [2]唐红亮. SQL.Server数据库设计与系统开发教程.出版社: 清华大学出版社,第一版,2007,10

[3]彭林,余艳. SQL Server 2000 金典教程.出版社: 人民邮电出版社,第1版,2001,8,1

17

因篇幅问题不能全部显示,请点此查看更多更全内容