您的当前位置:首页正文

数据库设计奖学金评定系统

来源:九壹网
奖学金评定系统数据库设计

随着大学最近几年来的扩招,大学生人数激增,致使大学奖学金评定工作愈来愈繁重,愈来愈需要一套高效的治理系统来辅助大学奖学金评定工作。因此,我设计了一个用Java语言编写的奖学金评定系统,采纳了基于Swing的界面设计。由于大学人数一样都在万人以上,因此选用SQL Server 2005做为后台数据库,它易于操作,功能壮大,足够处置庞大的学生信息。那个奖学金评定系统能够实现奖学金评定的大体功能,包括学生大体信息的录入、查询、统计等操作和后台数据库的备份和恢复。用户合法注册后必需输入有效密码才能成功进入此系统,能够进行查询信息、统计信息等操作。关于非法操作,系统有识别和防护方法。

1.需求分析

利用范围:参与奖学金评定工作的人员 实现学生大体信息的治理

学生大体信息,学号、姓名、性别、学院、专业、年级、班级、贫困品级信息,能够实现学生大体信息的增加、删除、修改等操作。 实现奖学金相关数据的治理

1.能够以excel形式导入学生成绩,导出奖学金测评的结果;实现奖学金信息的增加、删除、修改等操作。

2.能够查询某个同窗各个模块奖学金评定的信息,包括各个模块的基础分、奖惩分等。 3.能够查询某个同窗的历史成绩,包括获奖情形,和获奖时的成绩。

4.能够查询某个班级所有人某个模块成绩的功能,并能依照成绩的高低排序。 5.能够查询某个班级所有人的最后成绩,并能依照名词排序。

6.依照班级成员的成绩,按比例实现奖学金的评定,其中比例能够通过系统设定。

2.概念结构设计

E—R图

系统E-R图:

学 生 1 包含 n 评 定 m 素 质 1 包含 1 评定结果

各实体E-R图

学生:

学 生 学号 n 成 绩班级 姓名 性别

成绩:

成 绩 院系专业 学号 时间

素养:

素 质 课程 得分 素质编号 素质名称

评定: 学号 评 定 贫困等级 排名 素质编号 得分 时间 基础分 评定结果:

评定结果 学 号 奖励分惩罚分 备 注 综合得分 排 名 奖学金等级

3.逻辑结构设计

将E-R图转换为关系模型事实上确实是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一样遵循如下原那么:一个实体型转换为一个关系模式,实体的属性确实是关系的属性,实体的码确实是关系的码。

学生(学号,姓名,性别,学院,专业,班级),主码为学号 课程成绩(学号,时刻,课程,成绩),主码为学号、时刻和课程 素养(素养编号,素养名称),主码为素养编号

评定(学号,素养编号,时刻,基础分,奖励分,处惩分,得分,排名,贫困品级),主码为学号、素养编号和时刻

评定结果(学号,综合得分,排名,奖学金品级,备注),主码为学号

函数依托、范式:

学生关系模式中,学号为主码,不存在非主属性对主键的部份函数依托和传递函数依托,因此,它知足3NF,又因为它排除所有属性的传递函数依托,它又知足BCNF。

同理,成绩、素养、评定、评定结果关系模式也都知足BCNF。

4.数据字典

学生信息表(student)

列名 stu_id stu_name stu_sex stu_department stu_profession stu_class

课程成绩表(course_score) 列名 stu_id date cou_name cou_score

素养表(quality)

列名 qua_id qua_name 评定表(assess)

列名 stu_id qua_id date basic_score rewards_score punish_score final_score rank poverty_level 评定结果表(ass_result)

列名 stu_id score 数据类型 char(8) float 是否为空 not null null 说明 学号 综合得分 数据类型 char(8) char(3) datetime float float float float int varchar(2) 是否为空 not null not null not null not null not null not null null null null 说明 学号 素质编号 时间 基础分 奖励分 惩罚分 最终得分 排名 贫困等级 数据类型 char(3) varchar(15) 是否为空 not null not null 说明 素质编号 素质名称 数据类型 char(8) datetime varchar(10) float 是否为空 not null not null not null not null 说明 学号 时间 课程 成绩 数据类型 char(8) char(8) char(2) varchar(20) varchar(20) varchar(10) 是否为空 not null not null not null not null not null not null 说明 学号 姓名 性别 院系 专业 班级 rank scholar_grade remark

int char(5) varchar(5) null null null 排名 奖学金等级 备注 3 数据和数据处置要求

系统要紧包括两部份数据的治理:一是学生大体信息治理(包括贫困信息),二是奖学金相关数据的治理。

其中奖学金数据要紧包括四个模块:思想道德素养测评模块,专业素养测评模块,身心素养测评模块,文化素养测评模块。

(1)每一个模块的最后得分是三个部份分数加权所得的分数(基础分,奖励分,处惩分),要求录入原始数据,实现各模块最后得分的计算。

如输入三科成绩(高等数学、大学英语、数据结构):85,88,91;奖励分:12;处惩分:-4;那么通过系统计算得专业素养分为:(85+88+91)/3 * %60+(12-4) * %60 = (2)同理通过各个模块的加权取得某学生的最后得分。

(3)能够实现各个模块加权值的定制(如能够把专业素养权值%60改成%65)。 系统大体流程图

4 平安性和完整性要求

本程序实现学生与奖学金评定系统治理员的界面分离模式,同时实现治理员对学生有全大体信息的治理功能,并给数据据库的角色授予了不同权限。

5 源程序代码

数据库程序

/* 创建数据库奖学金评定系统*/

create database 奖学金评定系统 on primary

(name='scholarship',filename='d:\\scholarship\\',size=5,maxsize=20,filegrowth=2) log on

(name='scholarship_log',filename='d:\\scholarship\\',size=5,maxsize=20,filegrowth=2) go

表程序

use 奖学金评定系统 go

/*创建学生信息表*/

create table student(

stu_id char(8) primary key, /*学号stu_id为主码,列级完整性约束*/ stu_name char(8) not null,

stu_sex char(2) not null check(stu_sex in('男','女')),

)

stu_xueyuan varchar(20) not null, stu_profession varchar(10) not null, stu_class varchar(10) not null,

/*创建课程成绩表*/

create table cou_score(

stu_id char(8), date datetime,

cou_name varchar(10), cou_score float not null,

primary key(stu_id,date,cou_name), /*主码由stu_id、date和cou_name组foreign key(stu_id) references student(stu_id) /*stu_id是外码,被参

成,表级完整性约束*/

照表是student,表级完整性约束*/ on delete cascade on update cascade )

/*创建素养表*/

create table quality( )

/*创建奖学金评定表*/ create table assess(

stu_id char(8), qua_id char(3), date datetime,

basic_score float not null, rewards_score float not null, punish_score float not null, final_score float, rank int,

poverty_level varchar(2),

primary key(stu_id,qua_id,date), /*主码由stu_id、qua_id和date组成,表foreign key(stu_id) references student(stu_id) /*stu_id是外码,被参qua_id char(3) primary key, /*素养编号qua_id为主码,列级完整性约束*/ qua_name varchar(15) not null

级完整性约束*/

照表是student,表级完整性约束*/

on delete cascade on update cascade,

foreign key(qua_id) references quality(qua_id) /*qua_id是外码,被参照表是quality,表级完整性约束*/

on delete cascade on update cascade )

/*创建奖学金评定结果表*/

create table ass_result( )

stu_id char(10) primary key, /*学号stu_id为主码,列级完整性约束*/ score float,

scholar_grade char(5), rank int,

remark varchar(5)

视图程序

/*创建奖学金评定结果视图*/ create view view_result as

select as '学号',stu_name as '姓名',stu_sex as '性别',

stu_xueyuan as '学院',stu_profession as '专业',stu_class as '班级',score as '得分',

rank as '排名',scholar_grade as '奖学金品级',remark as '备注' from student,ass_result where =

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

Top