100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 数据库应用课程设计 教学管理系统 大学编程作业(TUST天津科技大学)

数据库应用课程设计 教学管理系统 大学编程作业(TUST天津科技大学)

时间:2023-08-02 06:06:50

相关推荐

数据库应用课程设计 教学管理系统 大学编程作业(TUST天津科技大学)

教学管理系统

目录

教学管理系统一、项目简介二、交流学习 数据库应用课程设计报告 教学管理系统一、设计题目:教学管理系统1. 课题简介 : 二、设计目的:三、设计内容和步骤:1、需求分析:2、数据需求:3、功能需求:4、概念模型设计:5 、逻辑结构设计: 四、设计数据库实践:五、总结:

一、项目简介

本教学管理系统,我使用了 Microsoft SQL Server 来制作数据库,实现了简单的增删查改逻辑。通过这次数据库应用课程设计的实践,我巩固了 SQL 的语法知识,熟练应用了Microsoft SQL Server Management Studio 18,为之后的数据库学习打下基础。

这个项目是我大三写的,现在回顾已经非常粗糙,分享出来一方面希望可以帮助初学者,另一方面希望能让同学们可以从目前大学中普遍毫无价值的形式主义作业中解脱出来,更加高效地学习优质计算机知识和主流编程技术,一起发扬开源精神,感受互联网技术的美好愿景。

二、交流学习

互联网开源精神需要大家一起互相交流学习,互相支持奉献。欢迎大家与我友好交流。

加我QQ好友获取所有项目源码和项目文档,感谢大家的支持!

数据库应用课程设计报告 教学管理系统

一、设计题目:教学管理系统

1. 课题简介 :

数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。随着现代信息技术的高速发展,在实际工作中如何提高工作效率成为一个很重要的问题,而建立管理信息系统是一个很好的解决办法。

本着理论联系实际的宗旨,通过这次数据库课程设计实践的机会,我自行设计一套教学管理系统,下面我将以这套教学管理信息系统为例,谈谈其开发过程和所涉及到的问题。

二、设计目的:

应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。

1、进一步学习和掌握数据库原理的基础知识和理论。

2、学习SQL Server数据库管理系统的基本功能和建立数据库各种对象的方法。

3、熟练掌握和使用SQL语言操纵数据库,使用T-SQL语言编程。

4、理解和掌握利用数据库所学的理论知识来设计数据库的基本方法和步骤。

5、通过上机操作和调试程序,提高学生理论联系实际和动手操作能力。

三、设计内容和步骤:

运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发教学管理信息系统,完成教学管理信息系统的全部功能,包括教师管理子系统,学生管理子系统,课程管理子系统 。

图1 教学信息管理系统总架构图

1、需求分析:

需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。重点是调查,收集与分析用户在 数据管理中的信息要求,处理要求,数据的安全性与完整性要求。

根据教学信息管理系统的用户需求,确定教学信息管理系统数据需求和功能需求。

2、数据需求:

学生信息、教师信息、课程信息、选课信息、成绩信息、授课信息等。

3、功能需求:

数据的更新功能,如学生数据、教师数据、课程数据、选课数据、成绩数据、授课数据插入,删除和修改等。

选课和退课功能,如根据学号查询学生选课、退课信息等。

成绩的查询功能,如根据学号查询学生成绩信息等。

4、概念模型设计:

本教学管理系统采用的是自底向上的方法。即首先定义全局的概念结构的框架,然后逐步细化。根据自顶向上地进行需求分析,然后再自底向上地进行概念设计。

根据需求分析的结果,确定组成本系统的实体、属性和实体间的联系,设计系统E-R 图。

图2 教学信息管理系统的基本E-R图

本教学管理系统E-R模型中各实体所包含的基本属性如下:

(1)学生:学号,姓名,性别,所在系,专业,班号。

图3 教学信息管理系统的学生E-R图

(2)课程:课程号,课程名,学分,开课学期,课程性质,考试性质,授课时数,实践时数,平时成绩比例。

图4 教学信息管理系统的课程E-R图

(3)教师:教师号,教师名,性别,职称,学历,出生日期,所在部门。

图5 教学信息管理系统的教师E-R图

各联系应具有的基本属性为:

(1)选课:选课学年,选课学期,考试次数,平时成绩,考试成绩,总评成绩。

图6 教学信息管理系统的选课E-R图

(2)成绩:学号,课程号,考试次数,考试成绩。

图7 教学信息管理系统的成绩E-R图

(3)授课:学年,学期,授课时数,辅导时数,带实验时数。

图8 教学信息管理系统的授课E-R图

5 、逻辑结构设计:

设计关系模式主要是从E-R模型出发,根据转换规则将其直接转换为关系模式。将E-R 图转化为关系模型,确定系统的全局模式,并根据用户需求或功能需求确定用户子模式,并对各个关系模式进行详细描述。

这个E-R模型转换出的关系模式如下(其中主键用下画线标识):

(1)学生(学号,姓名,性别,所在系,专业,班号)。

(2)课程(课程号,课程名,学分,开课学期,课程性质,考试性质,授课时数,实践时数)。

(3)教师(教师号,教师名,性别,职称,学历,出生日期,所在部门)。

(4)选课(学号,课程号,选课学年,选课学期),学号为引用"学生"关系模式的外键,课程号为引用"课程"关系模式的外键。

(5)成绩(学号,课程号,考试次数,考试成绩),学号为引用"学生"关系模式的外键,课程号为引用"课程"关系模式的外键。

(6)授课(课程号,教师号,授课学年,授课学期,授课类别,授课时数),课程号为引用"课程"关系模式的外键,教师号为引用"教师"关系模式的外键。

数据库表的结构,设计各表的结构:

(1)学生表的结构 :

表1 学生表的结构

(2)课程表的结构 :

表2 课程表的结构

(3)教师表的结构:

表3 教师表的结构

(4)选课表的结构:

表4 选课表的结构

(5)成绩表的结构:

表5 成绩表的结构

(6)授课表的结构:

表6 授课表的结构

在设计关系模式阶段我们已经确定了教学管理系统所包含的全部关系模式的结构,并且这些关系模式能够满足生成报表的需求。因此在设计外模式阶段,应该确定各报表的生成方法:

(1)学生选课情况报表:

用类似于带参数视图的内联表值函数来生成该报表,将学年、学期和班号作为输入参数。代码如下:

/*** 1、学生选课情况报表*/SELECT 班号, 学生表.学号, 姓名, 课程名FROM 学生表 JOIN 选课表 ON 学生表.学号 = 选课表.学号JOIN 课程表 ON 课程表.课程号 = 选课表.课程号WHERE 班号 = '13班' AND 选课学年 = '' AND 选课学期 = 2

(2)学生考试成绩报表:

该报表要求每个学期结束时以班为单位生成,并且是生成指定学年和学期中指定班学生的正常考试成绩表(考试次数为1)。学年、学期、班号应作为输入参数,因此应该用内联表值函数实现。代码如下:

/*** 2、学生考试成绩报表*/SELECT 班号, 学生表.学号, 姓名, 课程名, 考试成绩FROM 学生表 JOIN 成绩表 ON 学生表.学号 = 成绩表.学号JOIN 课程表 ON 课程表.课程号 = 成绩表.课程号JOIN 选课表 ON 课程表.课程号 = 选课表.课程号WHERE 班号 = '13班' AND 选课学年 = '' AND 选课学期 = 1

(3)学生累计修课总学分报表:

该报表是以班为单位,生成一份学生修课总学分。

/*** 3、学生累计修课总学分报表*/SELECT 学生表.学号, 姓名, 班号, 总学分 = SUM(学分)FROM 学生表 JOIN 选课表 ON 学生表.学号 = 选课表.学号JOIN 课程表 ON 课程表.课程号 = 选课表.课程号WHERE 考试成绩 >= 60GROUP BY 学生表.学号

四、设计数据库实践:

用DBMS 所提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果描述出来,成为DBMS可以接受的源代码,在经过调试生成目标模式 。

1、建立数据库:

建立数据库,确定数据库名、数据文件和日志文件的文件名、存储位置等。

图9 建立数据库

2 、建立基本表:

建立基本表,基本表的详细描述如下:

(1)学生表的建立:

/*** 教学管理系统* 创建表*//*** 1、创建学生表*/CREATE TABLE 学生表 (学号 char(8) PRIMARY KEY,姓名 char(8),性别 char(2) CHECK( 性别 IN ('男', '女') ),所在系 char(20),专业 char(20),班号 char(6));

(2)课程表的建立:

/*** 2、创建课程表*/CREATE TABLE 课程表 (课程号 char(8) PRIMARY KEY,课程名 varchar(30) NOT NULL,学分tinyint CHECK( 学分 BETWEEN 1 AND 8 ),开课学期 tinyint CHECK( 开课学期 BETWEEN 1 AND 12 ) ,课程性质 char(4) CHECK( 课程性质 IN ('必修', '选修') ),考试性质 char(4) CHECK( 考试性质 IN ('考试', '考查') ),授课时数 tinyint CHECK( 授课时数 <= 68 ),实践时数 tinyint);

(3)教师表的建立:

/*** 3、创建教师表*/CREATE TABLE 教师表 (教师号 char(10) PRIMARY KEY,教师名 char(8) NOT NULL,性别char(2) CHECK( 性别 IN ('男', '女') ),职称char(6) CHECK( 职称 IN ('助教','讲师','副教授','教授') ),学历char(6) CHECK( 学历 IN ('本科','硕士','博士','博士后') ),出生日期 smalldatetime,所在部门 char (20));

(4)选课表的建立:

/*** 4、创建选课表*/CREATE TABLE 选课表 (学号char(8) NOT NULL,课程号 char(8) NOT NULL,选课学年 char(8) NOT NULL,选课学期 char(8) NOT NULL,PRIMARY KEY(学号, 课程号),FOREIGN KEY(学号) REFERENCES 学生表(学号),FOREIGN KEY(课程号) REFERENCES 课程表(课程号));

(5)成绩表的建立:

/*** 5、创建成绩表*/CREATE TABLE 成绩表 (学号char(8) NOT NULL,课程号 char(8) NOT NULL,考试次数 tinyint CHECK( 考试次数 BETWEEN 1 AND 3),考试成绩 tinyint CHECK( 考试成绩 BETWEEN 0 AND 100),PRIMARY KEY(学号, 课程号, 考试次数),FOREIGN KEY(学号) REFERENCES 学生表(学号),FOREIGN KEY(课程号) REFERENCES 课程表(课程号));

(6)授课表的建立:

/*** 6、创建授课表*/CREATE TABLE 授课表 (课程号 char(8) NOT NULL,教师号 char(10) NOT NULL,授课学年 char(4),授课学期 tinyint,授课类别 char(6) CHECK( 授课类别 IN ('主讲', '辅导', '带实验') ),授课时数 tinyint,PRIMARY KEY(课程号, 教师号, 授课学年, 授课学期),FOREIGN KEY(课程号) REFERENCES 课程表(课程号),FOREIGN KEY(教师号) REFERENCES 教师表(教师号));

图10 建立基本表

3、插入测试数据:

(1)插入学生信息:

/*** 教学管理系统* 插入数据*//*** 1、插入学生表*/INSERT INTO 学生表 VALUES('1330', '邓磊', '男', '计算机系', '计算机科学与技术', '13班');INSERT INTO 学生表 VALUES('1101', '曾烨磊', '女', '计算机系', '计算机科学与技术', '11班');INSERT INTO 学生表 VALUES('1102', '蔡绍辉', '女', '计算机系', '计算机科学与技术', '11班');INSERT INTO 学生表 VALUES('1103', '孙正豪', '男', '计算机系', '计算机科学与技术', '11班');INSERT INTO 学生表 VALUES('1204', '卢子骞', '男', '计算机系', '计算机科学与技术', '12班');INSERT INTO 学生表 VALUES('1201', '陈立轩', '女', '计算机系', '计算机科学与技术', '12班');INSERT INTO 学生表 VALUES('1202', '蒋凯瑞', '女', '计算机系', '计算机科学与技术', '12班');INSERT INTO 学生表 VALUES('1303', '江嘉懿', '男', '计算机系', '计算机科学与技术', '13班');INSERT INTO 学生表 VALUES('1404', '吕展鹏', '男', '计算机系', '计算机科学与技术', '14班');INSERT INTO 学生表 VALUES('1408', '谭建辉', '男', '计算机系', '计算机科学与技术', '14班');INSERT INTO 学生表 VALUES('2105', '路鸣泽', '男', '计算机系', '移动软件', '21班');INSERT INTO 学生表 VALUES('2106', '路明非', '男', '计算机系', '移动软件', '21班');INSERT INTO 学生表 VALUES('2107', '乔微尼', '女', '计算机系', '移动软件', '21班');INSERT INTO 学生表 VALUES('2205', '郭瑞霖', '男', '计算机系', '移动软件', '22班');INSERT INTO 学生表 VALUES('2206', '陶鹭洋', '男', '计算机系', '移动软件', '22班');INSERT INTO 学生表 VALUES('2207', '唐伟宸', '女', '计算机系', '移动软件', '22班');INSERT INTO 学生表 VALUES('2305', '段明', '男', '计算机系', '移动软件', '23班');INSERT INTO 学生表 VALUES('2306', '邓胤祥', '男', '计算机系', '移动软件', '23班');INSERT INTO 学生表 VALUES('2401', '白果', '女', '计算机系', '网络工程', '24班');INSERT INTO 学生表 VALUES('2402', '王敏儿', '女', '计算机系', '网络工程', '24班');INSERT INTO 学生表 VALUES('3110', '李小琳', '女', '计算机系', '通信工程', '31班');INSERT INTO 学生表 VALUES('3102', '李小花', '女', '计算机系', '通信工程', '31班');INSERT INTO 学生表 VALUES('3103', '李小玲', '女', '计算机系', '通信工程', '31班');INSERT INTO 学生表 VALUES('3204', '王尼尼', '男', '计算机系', '通信工程', '32班');INSERT INTO 学生表 VALUES('3205', '胡烨华', '男', '计算机系', '通信工程', '32班');INSERT INTO 学生表 VALUES('3208', '田皓轩', '男', '计算机系', '通信工程', '32班');INSERT INTO 学生表 VALUES('3304', '徐鹏煊', '男', '计算机系', '通信工程', '33班');INSERT INTO 学生表 VALUES('3308', '邹擎苍', '男', '计算机系', '通信工程', '33班');INSERT INTO 学生表 VALUES('3404', '程峻熙', '男', '计算机系', '通信工程', '34班');INSERT INTO 学生表 VALUES('3409', '廖钰轩', '男', '计算机系', '通信工程', '34班');INSERT INTO 学生表 VALUES('4104', '郝振家', '男', '计算机系', '通信工程', '41班');INSERT INTO 学生表 VALUES('4105', '金健雄', '女', '计算机系', '网络运维', '41班');INSERT INTO 学生表 VALUES('4106', '姚瑞霖', '男', '计算机系', '网络运维', '41班');INSERT INTO 学生表 VALUES('4206', '宋书航', '男', '计算机系', '网络运维', '42班');INSERT INTO 学生表 VALUES('4207', '史烨伟', '男', '计算机系', '网络运维', '42班');INSERT INTO 学生表 VALUES('4208', '江立果', '男', '计算机系', '网络运维', '42班');INSERT INTO 学生表 VALUES('4307', '谭晓啸', '男', '计算机系', '网络运维', '43班');INSERT INTO 学生表 VALUES('4309', '魏荣轩', '男', '计算机系', '网络运维', '43班');INSERT INTO 学生表 VALUES('4408', '武驰', '男', '计算机系', '网络运维', '44班');INSERT INTO 学生表 VALUES('4406', '顾荣轩', '男', '计算机系', '网络运维', '44班');INSERT INTO 学生表 VALUES('5106', '张小海', '男', '计算机系', '智能物联', '51班');INSERT INTO 学生表 VALUES('5107', '孔懿轩', '男', '计算机系', '智能物联', '51班');INSERT INTO 学生表 VALUES('5105', '龚修杰', '男', '计算机系', '智能物联', '51班');INSERT INTO 学生表 VALUES('5206', '钱小平', '男', '计算机系', '智能物联', '52班');INSERT INTO 学生表 VALUES('5207', '覃致远', '男', '计算机系', '智能物联', '52班');INSERT INTO 学生表 VALUES('5202', '韩伟祺', '男', '计算机系', '智能物联', '52班');INSERT INTO 学生表 VALUES('5301', '傅弘文', '男', '计算机系', '智能物联', '53班');INSERT INTO 学生表 VALUES('5308', '沈伟泽', '男', '计算机系', '智能物联', '53班');INSERT INTO 学生表 VALUES('5406', '熊鹏', '男', '计算机系', '智能物联', '54班');INSERT INTO 学生表 VALUES('5404', '冯哲瀚', '男', '计算机系', '智能物联', '54班');

(2)插入课程信息:

/*** 2、插入课程表*/INSERT INTO 课程表 VALUES('A001', '《高等数学》', '4', '1', '必修', '考试', '46', '8');INSERT INTO 课程表 VALUES('A002', '《线性代数》', '3', '2', '必修', '考试', '42', '8');INSERT INTO 课程表 VALUES('A003', '《概率论与数理统计》', '3', '3', '必修', '考试', '42', '8');INSERT INTO 课程表 VALUES('A004', '《离散数学》', '2', '4', '选修', '考查', '52', '6');INSERT INTO 课程表 VALUES('A005', '《数学建模》', '4', '5', '选修', '考查', '52', '8');INSERT INTO 课程表 VALUES('B001', '《大学语文》', '2', '1', '必修', '考试', '46', '8');INSERT INTO 课程表 VALUES('B002', '《大学英语》', '2', '1', '选修', '考查', '46', '8');INSERT INTO 课程表 VALUES('B003', '《大学物理》', '4', '2', '必修', '考试', '33', '8');INSERT INTO 课程表 VALUES('B004', '《大学政治》', '4', '2', '必修', '考试', '42', '8')INSERT INTO 课程表 VALUES('B005', '《大学体育》', '3', '1', '选修', '考试', '42', '8');

(3)插入教师信息:

/*** 3、插入教师表*/INSERT INTO 教师表 VALUES('T001', '汪天磊', '男', '教授', '本科', '2000-01-01', '计算机');INSERT INTO 教师表 VALUES('T002', '陆怡婷', '男', '助教', '博士', '1998-01-01', '计算机');INSERT INTO 教师表 VALUES('T003', '路易斯', '男', '讲师', '硕士', '1997-01-01', '计算机');INSERT INTO 教师表 VALUES('T004', '达芬奇', '男', '助教', '博士', '2001-01-01', '计算机');INSERT INTO 教师表 VALUES('T005', '阿萨斯', '男', '讲师', '博士', '-01-01', '计算机');INSERT INTO 教师表 VALUES('T006', '尼克尔', '男', '教授', '博士', '2000-01-01', '计算机');INSERT INTO 教师表 VALUES('T007', '桐人君', '男', '助教', '本科', '-01-01', '计算机');INSERT INTO 教师表 VALUES('T008', '明代尔', '男', '教授', '硕士', '1981-01-01', '计算机');INSERT INTO 教师表 VALUES('T009', '李义海', '男', '讲师', '博士', '1970-01-01', '计算机');INSERT INTO 教师表 VALUES('T010', '鲁军一', '男', '教授', '博士', '-01-01', '计算机');

(4)插入选课信息:

/*** 4、插入选课表*/INSERT INTO 选课表 VALUES('1330', 'A001', '', '1');INSERT INTO 选课表 VALUES('1330', 'A002', '', '2');INSERT INTO 选课表 VALUES('1330', 'A003', '', '3');INSERT INTO 选课表 VALUES('1330', 'A004', '', '4');INSERT INTO 选课表 VALUES('1330', 'A005', '', '5');INSERT INTO 选课表 VALUES('1330', 'B001', '', '1');INSERT INTO 选课表 VALUES('1330', 'B002', '', '1');INSERT INTO 选课表 VALUES('1330', 'B003', '', '2');INSERT INTO 选课表 VALUES('1330', 'B004', '', '2');INSERT INTO 选课表 VALUES('1330', 'B005', '', '1');

(5)插入成绩信息:

/*** 5、插入成绩表*/INSERT INTO 成绩表 VALUES('1330', 'A001', '1', '99');INSERT INTO 成绩表 VALUES('1330', 'A002', '1', '87');INSERT INTO 成绩表 VALUES('1330', 'A003', '1', '88');INSERT INTO 成绩表 VALUES('1330', 'A004', '1', '97');INSERT INTO 成绩表 VALUES('1330', 'A005', '1', '99');INSERT INTO 成绩表 VALUES('1330', 'B001', '1', '95');INSERT INTO 成绩表 VALUES('1330', 'B002', '1', '96');INSERT INTO 成绩表 VALUES('1330', 'B003', '1', '91');INSERT INTO 成绩表 VALUES('1330', 'B004', '1', '92');INSERT INTO 成绩表 VALUES('1330', 'B005', '1', '93');

(6)插入授课信息:

/*** 6、插入授课表*/INSERT INTO 授课表 VALUES('A001', 'T001', '', 1, '主讲', 33);INSERT INTO 授课表 VALUES('A002', 'T002', '', 2, '主讲', 24);INSERT INTO 授课表 VALUES('A003', 'T003', '', 1, '主讲', 25);INSERT INTO 授课表 VALUES('A004', 'T004', '', 2, '主讲', 25);INSERT INTO 授课表 VALUES('A005', 'T005', '', 2, '主讲', 25);INSERT INTO 授课表 VALUES('B001', 'T006', '', 2, '主讲', 25);INSERT INTO 授课表 VALUES('B002', 'T007', '', 1, '主讲', 33);INSERT INTO 授课表 VALUES('B003', 'T008', '', 2, '主讲', 24);INSERT INTO 授课表 VALUES('B004', 'T009', '', 1, '主讲', 25);INSERT INTO 授课表 VALUES('B005', 't010', '', 1, '主讲', 33);

图11 插入测试数据

3、查询数据:

(1)查询学生成绩(建立总学分视图,总学分报表视图):

(1)查询学生成绩(建立总学分视图,总学分报表视图):/*** 4、查询学生成绩*/CREATE VIEW v_总学分(学号, 总学分)ASSELECT 学生表.学号, SUM(学分)FROM 学生表 JOIN 成绩表 ON 学生表.学号 = 成绩表.学号JOIN 课程表 ON 课程表.课程号 = 成绩表.课程号WHERE 考试成绩 >= 60GROUP BY 学生表.学号

图12 建立总学分视图

/*** 5、总学分报表*/CREATE VIEW v_总学分报表ASSELECT 学生表.学号, 姓名, 班号, 总学分FROM 学生表 JOIN v_总学分 ON 学生表.学号 = v_总学分.学号

图13 建立总学分报表视图

(2)查询成绩实例:

根据系、专业、班等信息查询学生的基本信息:

/*** 6、根据系、专业、班等信息查询学生的基本信息*/select * from 学生表 where 所在系 = '计算机系' and 专业 = '计算机科学与技术' and 学号 = 1330

图14 根据系、专业、班等信息查询学生的基本信息

根据学期查询课程的基本信息:

/*** 7、根据学期查询课程的基本信息*/select * from 课程表 where 开课学期 = 2

图15 根据学期查询课程的基本信息

根据部门查询教师的基本信息:

/*** 8、根据部门查询教师的基本信息*/select * from 教师表 where 所在部门 = '计算机'

图16 根据部门查询教师的基本信息

根据班号查询学生在当前学期和学年的选课情况:

/*** 9、根据班号查询学生在当前学期和学年的选课情况*/select 课程号,选课学年,选课学期from 选课表 C JOIN 学生表 S ON C.学号 = S.学号WHERE 班号 = '13班'

图17 根据班号查询学生在当前学期和学年的选课情况

根据班号查询学生在当前学期和学年的考试情况:

/*** 10、根据班号查询学生在当前学期和学年的考试情况*/SELECT 姓名,考试成绩,选课学期,选课学年FROM 选课表 C JOIN 学生表 S ON C.学号 = S.学号JOIN 成绩表 X ON X.学号 = C.学号WHERE 班号 = '13班'

图18 根据班号查询学生在当前学期和学年的考试情况

4、创建触发器(总评成绩的实现):

根据考试次数来处理总评成绩。这种维护数据一致性的要求用触发器实现比较合适。代码如下:

/*** 11、总评成绩的实现*/CREATE TRIGGER tri_FinalGradeON 成绩表 FOR insertASUPDATE 成绩表 SET 总评成绩 = CASEWHEN 考试次数= 1 THEN 平时成绩 * 平时成绩比例 +考试成绩* (1- 平时成绩比例)ELSE 考试成绩ENDFROM 成绩表 a JOIN 课程表 b ON a.课程号 = b.课程号WHERE 学号IN(SELECT学号 FROM INSERTED)AND a.课程号 IN (SELECT 课程号 FROM INSERTED)

五、总结:

数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,巩固了数据库基本原理和基础理论的理解,掌握了数据库应用系统设计开发的基本方法,进一步提高了综合运用所学知识的能力。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。