收藏 分享(赏)

高校成绩管理系统数据库设计与实现.doc

上传人:微传9988 文档编号:2557145 上传时间:2018-09-22 格式:DOC 页数:43 大小:1.52MB
下载 相关 举报
高校成绩管理系统数据库设计与实现.doc_第1页
第1页 / 共43页
高校成绩管理系统数据库设计与实现.doc_第2页
第2页 / 共43页
高校成绩管理系统数据库设计与实现.doc_第3页
第3页 / 共43页
高校成绩管理系统数据库设计与实现.doc_第4页
第4页 / 共43页
高校成绩管理系统数据库设计与实现.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、高校成绩管理系统数据库设计与实现 一. 数据库需求分析(1). 基本目的以 SQL SERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准 SQL语言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应用系统开发能力。建立一套在现有window操作系统下的c/s高校学生成绩管理系统帮助广大教师教务人员提高工作效率.(2).用户需求某校管理学生成绩的工作人员,根据实际工作需要,提出了以下数据和业务处理需求:1、学校设置了各专业,在专业下开设班级,每个班级包含若干学生,学生信息至少需要包含学号、姓名、性别、年龄、生源所在地、已修学分总数等数据项;另外,

2、需要有地区信息,用于统计某一地区的学生数;2、课程信息表至少需包含课程编号、课程名称、任课教师、开课学期、学时、考试或考查、学分等数据项,课程根据班级开设。3、教师信息至少需要包含教师编号、姓名、性别、年龄、职称、联系电话等数据项;4、学生成绩至少需要学号,学期,课程名称,成绩,任课老师等数据项;5、需要实现以下业务处理和查询功能1.学生成绩按每学年成绩统计2.学生成绩名次排定3.每门课程平均成绩统计4.学生所学课程及学分统计5.对每个学生输入成绩的时候,自动生成学生的已修学分总数6.学生成绩查询7.教师任课查询8.班级课程开设查询补充说明: 假设学籍管理制度是采用学年制,且暂不考虑选修课情况

3、。 同一专业可能有多个班,所以同一门课可能需要多个教师上课,一个教师在一学期可能上多门课程。 考试和考查课均采用百分制记分。(3)学生成绩管理的数据流图二. 数据库概念结构设计在学生成绩管理系统中采用了E-R图的方法来进行数据库概念结构设计,本系统设计采用的是自底向上的设计方法,先设计分局部E-R图,再合并成总体E-R图 ,学生成绩管理系统的E-R图(实体的各属性略)如下图所示:(1)E-R图如下讲 授课 程选 修 成 绩班 级组 成学 生 1n 1m组 成 专 业教 师nnn m图 1. 主体 E-R图1. 学生实体型学 生姓 名性 别 年 龄生 源 地已 修 学 分学 号2. 教师实体型教

4、 师姓 名性 别 年 龄职 称联 系 电 话编 号3.课程实体型课 程课 程 名 称任 课 教 师 开 课 学 期学 时考 试 类 型课 程 编 号 学 分4班级实体型班 级 班 级 编 号班 级 名 称5.专业实体型专 业 专 业 名(2)数据库的结构(3)视图为了方便学生以及教师的操作,使学生成绩管理系统更易于实现,我实现了以下视图1.avgGrade_wq用于平均成绩的查询2.classCourse_wq用于班级开设课程查询3.sCourseGrade_wq用于学生课程成绩查询4.sGE_wq用于学生成绩修改5.studentGrade_wq用于学生成绩的查询6.studentInF_w

5、q 用于学生信息的查询7.teacherCourse_wq用于教师自己开设课程的查询(4)存储过程在本数据库中我实现了俩个存储过程,它们的具体用途如下1. dt_delete_student用于实现学生的删除,当他的已修学分达到所要求的最大学分时,把该学生的信息进行删除2. dt_delete_teacher用于实现教师的删除,当他的年龄达到所要求的最大年龄时,把该教师的信息进行删除(5)触发器在本数据库中我实现了一个触发器 upORin_grade用于实现在成绩表中输入合格的成绩时,在学生表中已修学分栏上加上该课程的学分 三. 数据库逻辑结构设计数据库逻辑设计的任务是把概念数据库设计阶段产生

6、的概念数据库模式变换为逻辑数据库模式。在上面的学生成绩管理系统 E一 R图中实体与实体之间关系的基础上,形成数据库中的表格,以及各个表格之间的关系。学 生成绩管理系统中数据库中各个表格的设计结果如下面的几个表格所示:1.各张表的实现(1) 表 Student_wq关系模式 Student_wq(学号 wq, 姓名 wq, 性别 wq, 年龄 wq, 生源地 wq, 已修学分 wq, 班级编号 wq)(2) 表 Class_wq关系模式 Class_wq(班级编号 wq, 班级名称 wq, 专业名 wq)(3) 表 Course_wq关系模式 Course_wq(课程编号 wq, 课程名称 wq

7、, 任课教师 wq, 开课学期 wq, 学时 wq, 考试类型 wq, 学分 wq)(4) 表 OpenCourse_wq关系模式 OpenCourse_wq(课程编号 wq, 班级编号 wq, 开课学期 wq, 教师编号 wq)(5) 表 Report_wq关系模式 Report_wq(学号 wq, 课程编号 wq, 成绩 wq, 任课教师 wq, 开课学期 wq)(6) 表 Teacher_wq关系模式 Teacher_wq(教师编号 wq, 姓名 wq, 性别 wq, 年龄 wq, 职称 wq, 联系电话 wq)2,实现级联删除的关系图四. 数据库物理结构设计数据库的物理结构的设计就是对

8、数据库在物理设备上的存储结构与存取方法的设计。它依赖于给定的计算机系统。来确定存储结构,设计数据的存取路径,确定数据的存放位置。而所谓数据库物理结构设计就是为一个给定的数据库的逻辑结构选取一个最适合应用环境的物理结构和存取方法的过程 (1) 索引设计是数据库物理设计的基本问题,对关系选择有效的索引对提高数据库的访问效率有很大的帮助本数据库中我设计了如下的索引:1. 在表 Class_wq中建立了按(班级编号 wq)升序的唯一索引class_no2. 在表 Course_wq中建立了按(课程编号 wq)升序的唯一索引course_no3. 在表 Student_wq 中建立了按(学号 wq)升序

9、的唯一索引student_no4. 在表 Teacher_wq中建立了按(教师编号 wq)升序的唯一索引 teacher_no(2) 分区索引设计的本质是确定数据库的存放位置,其目的是提高性能.在本系统中由于我的数据库较小,所以也没对其进行设计,就将数据库存放在安装 SQL Server 分区上 五.数据库实施所谓数据库的实施,就是根据数据库的逻辑结构设计和物理结构设计的结果,在具体 RDBMS支持的计算机系统上建立实际的数据库模式,装入数据,并进行测试和试运行的过程(1)数据库的建立这主要是在企业管理器中实现的,结果如下:(2)数据库中各张表的实现1.表 Class_wq 的实现SQL语句:

10、CREATE TABLE Class_wq (班级编号 wq varchar (50) NOT NULL ,班级名称 wq varchar (50) NOT NULL ,专业名 wq varchar (50) NOT NULL PRIMARY KEY(班级编号 wq)2.表 Course_wq 的实现SQL语句:CREATE TABLE Course_wq(课程编号 wq char (50) NOT NULL ,课程名称 wq char (50) NULL ,任课教师 wq char (50) NULL ,开课学期 wq char (50) NULL ,学时 wq char (50) NULL

11、 ,考试类型 wq char (50) NULL ,学分 wq char (50) NULL PRIMARY KEY(课程编号 wq) 3.表 OpenCourse_wq 的实现SQL语句:CREATE TABLE OpenCourse_wq(课程编号 wq char (50) NOT NULL ,班级编号 wq varchar (50) NOT NULL ,开课学期 wq char (50) NULL ,教师编号 wq char (50) NOT NULL PRIMARY KEY(课程编号 wq, 班级编号 wq, 教师编号wq) 4表 Report_wq 的实现SQL语句:CREATE T

12、ABLE Report_wq(学号 wq char (50) NOT NULL ,课程编号 wq char (50) NOT NULL ,成绩 wq float NULL ,任课教师 wq char (50) NULL ,开课学期 wq char (50) NULL PRIMARY KEY(学号 wq, 课程编号 wq) 5.表 Student_wq 的实现SQL语句:CREATE TABLE Student_wq (学号 wq char (50) NOT NULL ,姓名 wq char (50) NULL ,性别 wq char (50) NULL ,年龄 wq char (50) NUL

13、L ,生源地 wq char (50) NULL ,已修学分 wq char (50) NULL ,班级编号 wq char (50) NULL ,PRIMARY KEY(学号 wq) 6.表 Teacher_wq 的实现SQL语句:CREATE TABLE Teacher_wq(教师编号 wq char (50) NOT NULL ,姓名 wq char (50) ,性别 wq char (50) ,年龄 wq char (50) ,职称 wq char (50) ,联系电话 wq char (50) PRIMARY KEY(教师编号 wq) (3) 数据库中索引的实现1. 在表 Class

14、_wq中的唯一索引 class_noSQL语句:create unique index class_no on Class_wq(班级编号 wq)运行结果如下:2. 在表 Course_wq中的唯一索引 course_wqSQL语句:create unique index course_no on Course_wq(课程编号 wq)运行结果如下:3. 在表 Student_wq 中唯一索引 student_noSQL语句:create unique index student_no on Student_wq(学号 wq)运行结果如下:4.在表 Teacher_wq中的唯一索引 teache

15、r_noSQL语句:create unique index teacher_no on Teacher_wq(教师编号 wq)运行结果如下:(4) 数据库中视图的实现1.视图 avgGrade_wq用于平均成绩的查询SQL语句:CREATE VIEW avgGrade_wqASSELECT Report_wq.课程编号 wq, dCourse_wq.课程名称wq, Report_wq.成绩 wq FROM dbo.Course_wq INNER JOINReport_wq ON Course_wq.课程编号 wq = Report_wq.课程编号 wq2.视图 classCourse_wq用于

16、班级开设课程查询SQL语句:CREATE VIEW classCourse_wqASSELECT OpenCourse_wq.班级编号 wq, Course_wq.课程名称 wq, Course_wq.任课教师 wq, OpenCourse_wq.开课学期 wq FROM Course_wq INNER JOINOpenCourse_wq ON Course_wq.课程编号 wq = OpenCourse_wq.课程编号 wq3.sCourseGrade_wq用于学生课程成绩查询SQL语句:CREATE VIEW sCourseGrade_wqASSELECT Student_wq.学号 wq

17、, Course_wq.课程名称 wq, Course_wq.学分 wqFROM Course_wq INNER JOIN Report_wq ON Course_wq.课程编号 wq =Report_wq.课程编号 wq INNER JOIN Student_wq ON .Report_wq.学号 wq = Student_wq.学号 wq4.sGE_wq用于学生成绩修改SQL语句:CREATE VIEW sGE_wqASSELECT Report_wq.学号 wq, Report_wq.课程编号 wq, Report_wq.成绩 wq, Report_wq.任课教师 wq,Report_w

18、q.开课学期 wq, Student_wq.班级编号 wqFROM Report_wq INNER JOINStudent_wq ON Report_wq.学号 wq = Student_wq.学号 wq5.studentGrade_wq用于学生成绩的查询SQL语句:CREATE VIEW studentGrade_wqASSELECT Report_wq.学号 wq, Course_wq.课程名称 wq, Report_wq.成绩 wq, Course_wq.开课学期 wqFROM Course_wq INNER JOIN Report_wq ON Course_wq课程编号 wq = Re

19、port_wq.课程编号 wq6.studentInF_wq 用于学生信息的查询SQL语句:CREATE VIEW studentInF_wqASSELECT Class_wq.班级名称 wq, Class_wq.专业名 wq, Student_wq.学号 wq, Student_wq.性别 wq, Student_wq.姓名 wq FROM Class_wq INNER JOIN Student_wq ON Class_wq.班级编号 wq = Student_wq.班级编号 wq7.teacherCourse_wq用于教师自己开设课程的查询SQL语句:CREATE VIEW teacher

20、Course_wqASSELECT Course_wq.课程名称 wq, Course_wq.任课教师 wq, Course_wq.开课学期 wq,Teacher_wq.教师编号 wqFROM Course_wq INNER JOIN Teacher_wq ON Course_wq.任课教师 wq = Teacher_wq.姓名 wq它们的结果如下所示:(5) 数据库中存储过程的实现1. 存储过程 dt_delete_student的实现SQL语句:CREATE PROCEDURE dt_delete_studentmax_credit charASdelete from Student_wq

21、 where 已修学分wqmax_credit2. 存储过程 dt_delete_teacher的实现SQL语句:CREATE PROCEDURE dt_delete_teacher max_year charASdelete from Teacher_wq where 年龄 wqmax_year它们的结果显示如下:(6) 数据库中触发器的实现1触发器 upORin_grade的实现SQL语句及结果显示:六.应用系统开发与试运行(1)系统的功能模块设计 本系统包括六大模块:用户登录模块,学生成绩及信息和教师信息维护模块,信息查询模块,信息统计模块,帮助模块,退出模块.如下图所示(2)系统的试运

22、行1. 用户登入主要有三种方式,分别为管理员,教师,学生当用户以不同身份登入时,所能使用的功能是不同的为方便起见,我在数据库中只创建了一个用户名及密码 (1)管理员身份他能使用所有的功能(2)教师身份以教师身份登入时有些功能被屏蔽了(3)同学身份以同学身份登入时有些功能被屏蔽了2.主界面在用户登入后就进入了主界面2. 下面以管理员身份登入演示系统功能(1)修改模块1.学生成绩修改(1)可先在下面的教师及课程编号,班级编号,学期中的ComboBox下拉列表中选择,在按成绩查询从而查询出成绩(2)若发现查询出成绩有误,再在上面输入其学号,成绩,按成绩修改按钮进行修改,在按查询按钮可看出成绩已修改2.学生信息修改(1)先在下面 groupBox中输入学号,查询出其原来的学生信息

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

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报