数据库课程设计计算机工程系党务信息管理系统大学论文.docx
《数据库课程设计计算机工程系党务信息管理系统大学论文.docx》由会员分享,可在线阅读,更多相关《数据库课程设计计算机工程系党务信息管理系统大学论文.docx(23页珍藏版)》请在冰豆网上搜索。
数据库课程设计计算机工程系党务信息管理系统大学论文
《数据库原理及应用课程设计》
系统开发报告
学号:
姓名:
题目:
计算机工程系党务信息管理系统
指导教师:
提交时间:
2016年12月
计算机工程系
目录
1绪论1
2党务信息管理系统概述2
2.1现状分析2
2.2系统目标2
2.3系统特点3
3党务信息管理系统数据库设计3
3.1需求分析3
3.2数据库概念结构设计5
3.3数据库逻辑结构设计8
4党务管理系统数据库功能模块的创建10
4.1建立学生表,成绩表,积极分子表,预备党员表,正式党员表,用户表10
4.2给各表建立主外键,并设置删除和更新的级联15
4.3建立触发器15
4.4视图的创建16
4.5存储过程的创建16
5总结20
1绪论
随着信息技术的蓬勃发展,现代社会进入了以计算机为中心的信息时代,以计算机技术为核心的新技术革命正在以一种前所未有的持久方式改变着世界的面貌,全面推动了社会的发展,改变了社会经济结构。
人们对工作的观念也发生了变化,生活节奏越来越快,生活方式出现了多样化。
社会环境发生的这种深刻的变化导致工作改革跟不上,使得传统手工信息管理模式面临着严峻的挑战,所以开发管理系统减轻信息管理人员工作压力和提高党务信息管理人员的工作效率是社会发展的必然形势。
为了加强党员信息管理,及时准确了解党员情况,提升党员管理信息化的水平,我结合自身工作实际,经过详细需求分析和论证,提出开发党员管理系统,以电子信息化手段替代传统处理手段,建立一种集党员信息查询、 发展审核、 统计、 分类、汇总于一体, 贯穿党员培养发展全过程,结合党员考核、 党费收缴、 组织关系转入转出等相关功能使党员信息管理更为规范化、 制度化。
系统涵盖了基层党组织和党员等日常管理的主要工作,为基层党组织和党员提供直观 形象便捷的信息服务,满足信息管理者和普通党员的日常需要,对党务以及与党务相关的各项服务和信息进行管理。
目前,本系统实现了超级管理员(党务秘书)和普通管理员(团支书)的登录功能,不同权限的用户登录系统,实现对系统的不同操作。
团支书只能查看本班的推优学生、积极分子、预备党员以及正式党员的信息。
其中只能对推优学生的信息进行增加、删除、修改操作和对自己的登录信息进行修改,包括用户名、密码和班级。
党务秘书能对全系的推优学生、积极分子、预备党员和正式党员的信息进行查询、增加、删除和修改操作。
也能对普通管理员和超级管理员的信息进行增删改查的操作。
本系统还实现了可以将班级推优学生转换成入党积极分子 ,积极分子转换为发展对象,发展对象转换为预备党员等。
此次数据库课程设计的主要设计如下:
原理分析、程序设计过程、程序实现和程序调试以及数据库的设计。
需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。
2党务信息管理系统概述
2.1现状分析
作为我系学生党员信息的管理者,在平时的工作实践中,渐渐认识到党员的人数越来越多,传统的党员信息管理方式出现了很多新问题,比如党务信息管理者的工作压力越来越大,工作效率也不能通过有效的途径进行提高。
所以急需开发党务信息管理系统。
党员信息管理是对党内各项业务和事务的一项工作,是贯彻党的基本路线的重要保证。
所以计算机为中心的信息时代的到来,党的建设工作也要与时俱进,实现现代化,而采用计算机信息科学技术实现党务工作信息化,正是实现党的建设现代化的有益尝试和积极探索。
通过分析我系学生党员信息管理业务,结合我系党员信息管理自身特点,有效的把党务内部活动有机组织起来,搭建一个行之有效的党员信息管理系统应用于我系学生党员管理。
基于以上原因,计算机工程系党务信息管理系统能实现党务信息的便捷管理。
2.2系统目标
计算机工程系党务信息管理系统的主要目的是利用计算机对各班推优学生、积极分子、预备党员和正式党员的信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成按各种条件把各种人员信息进行统计和汇总。
实现各班团支书直接登录系统进行本班推优人员信息的填写和上报。
以及实现党员的发展。
计算机工程系党务信息管理系统主要有以下几大功能:
(1)用户按权限登录。
不同的用户按自己的权限登录系统实现不同的操作。
本系统设有超级管理员(党务秘书)和普通管理员(团支书)的登录功能,团支书只能查看本班的推优学生、积极分子、预备党员以及正式党员的信息。
其中只能对推优学生的信息进行增加、删除、修改操作和对自己的登录信息进行修改,包括用户名、密码和班级。
党务秘书能对全系的推优学生、积极分子、预备党员和正式党员的信息进行查询、增加、删除和修改操作。
也能对普通管理员和超级管理员的信息进行增删改查的操作。
(2)对人员信息的管理。
可以实现对推优学生、积极分子、预备党员和正式党员信息的增删改查的日常管理工作。
(3)查询与统计功能。
系统可以根据用户输入的条件迅速统计出按各种条件统计出的人员的数量。
并通过文字和生动的图表展现出来。
(4)党员发展功能。
系统能实现将班级推优学生转换成入党积极分子 ,积极分子转换为发展对象,发展对象转换为预备党员以及预备党员转换为正式党员的功能。
2.3系统特点
(1)本系统使党务管理基本实现了信息化,系统设计的各种查询要求代替了原来了人工查询,即节省了人力,又减轻了管理人员的工作量,最重要的是由计算机操作,可以提高数据的准确性,避免人为的错误,方便管理。
(2)本系统设置了网上推优功能,各班级团支书直接通过网络在系统上填写上报本班的推优人员信息,免去了人员繁琐的跑动。
(3)本系统的信息处理贯穿整个党员发展的过程,使党员发展过程变得高效便捷。
3党务信息管理系统数据库设计
3.1需求分析
本系统
1)需要实现不同用户的权限的用户登录系统实现不同的操作,系统设置了超级管理员(党务秘书)、普通管理员(团支书)和普通用户的权限登录。
2)需要实现对各类人员的基本信息的管理工作。
系统设置了对推优学生、积极分子、预备党员和正式党员的增删改查的基本管理功能。
3)各班网上推优的功能。
系统实现了团支书登录系统能够对本班推优学生的增删改查的功能。
4)党员发展各个阶段的信息转换功能。
系统实现了将班级推优学生转换成入党积极分子 ,积极分子转换为发展对象,发展对象转换为预备党员以及预备党员转换为正式党员的功能。
3.1.1设计策略
本设计是基于B/S模式下党员信息管理系统的设计。
党务信息管理系统开发的目的主要是为了实现我系党务管理工作的信息化,以提高工作效率,方便管理。
主要实现对学生党员的信息更改、入党申请人信息进行建档,流动党员组织转移、党费收缴,组织生活情况、是否受表彰等情况进行掌握和了解。
实现无纸化办公, 实现党员信息管理的电子化,真正为党员管理提供一个电子平台,以减轻管理人员的工作负担。
通过强大的查询和索检高效的统计分析出各项数据,以及对系统自身的用户权限管理。
本系统采用B/S模式,基于servlet+MySQL 数据库+jsp+javabeen+html+css+js等技术实现。
3.1.2系统总体结构图
图3-1系统总体结构图
3.2数据库概念结构设计
数据库概念设计是整个数据库设计的关键。
根据用户需求设计数据库的概念,数据模型。
我们首先要将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种信息结构不是DBMS支持的数据模型,而是概念级模型。
然后再把概念模型转换为具体机器上DBMS支持的数据模型。
概念模型是对现实世界的抽象和概括。
它真实,充分地反映了现实世界中的事物和事物之间的联系,能满足用户对数据的处理要求。
由于其简洁、明晰、独立于机器,很容易理解,因此可以用概念模型和不熟悉计算机的用户交换意见,使用户能积极参与数据库的设计工作。
概念模型易于变动,还很容易向各种数据模型转换。
图3-2用户实体——关系图
图3-3推优学生实体——关系图
图3-4积极分子实体——关系图
图3-5预备党员实体—关系图
图3-6正式党员实体
图3-7学生成绩实体关系图
3.3数据库逻辑结构设计
3.3.1实体
根据上述概念模型设计得出的E—R图,我们可以得出系统中涉及的主要实体有6个,其结构如下:
(1)用户(用户名,密码,权限,班级)
(2)推优学生(学号,姓名,性别,出生年月,籍贯,班级职务,年级,专业,班级,简介,照片,审核状态,是否符合)
(3)积极分子(学号,入库时间,是否培训,培训得分,所属支部,党内职务)
(4)预备党员(学号,入库时间,培训得分,入党时间,所属支部,党内职务)
(5)正式党员(学号,入库时间,培训得分,入党时间,转正时间,所属支部,党内职务)
(6)学生成绩(ID,学号,学期,排名,操行,班级总人数)
3.3.2实体间的联系
党务管理系统中实体之间有6个联系,其关系如下:
(1)具有关系:
学生和成绩的关系是1:
N,一个学生拥有N个学期的成绩。
(2)属于1关系:
学生和积极分子的关系是1:
1,一个学生对应一条积极分子信息。
(3)属于2关系:
学生和预备党员的关系是1:
1,一个学生对应一条预备党员信息。
(4)属于3关系:
学生和积极分子的关系是1:
1,一个学生对应一条正式党员信息。
根据以上逻辑结构分析可以知道:
一个学生拥有多个学期的成绩,一个学生被推诿为积极分子、预备党员正式党员时只对应一条记录。
其关系模式为:
(1)推优学生(学号(主键),姓名,性别,出生年月,籍贯,班级职务,年级,专业,班级,简介,照片,审核状态,是否符合)
(2)积极分子(学号(主键、外键),入库时间,是否培训,培训得分,所属支部,党内职务)
(3)预备党员(学号(主键、外键),入库时间,培训得分,入党时间,所属支部,党内职务)
(4)正式党员(学号(主键、外键),入库时间,培训得分,入党时间,转正时间,所属支部,党内职务)
(5)学生成绩(ID(主键),学号(外键),学期,排名,操行,班级总人数)
表、视图汇总
视图/表名
类型
说明
学生
基本表
存放学生基本信息
学生成绩
基本表
存放学生各学期成绩信息
积极分子
基本表
存放积极分子信息
预备党员
基本表
存放预备党员信息
正式党员
基本表
存放正式党员信息
用户
基本表
存放用户信息
班级团支书视图
视图
存放某个班级团支书所能浏览的本班人员的信息
3.3.3完整性约束
(1)推优学生:
学号(主键)
(2)积极分子:
学号(主键、外键)
(3)预备党员:
学号(主键、外键)
(4)正式党员:
学号(主键、外键)
(5)学生成绩:
ID(主键),学号(外键)
(6)用户:
ID(主键)
4党务管理系统数据库功能模块的创建
4.1建立学生表,成绩表,积极分子表,预备党员表,正式党员表,用户表
CREATETABLE`student`(//学生表
`StId`int(11)NOTNULLDEFAULT'0',
`Sno`char(9)NOTNULLDEFAULT'',
`Sname`varchar(255)DEFAULTNULL,
`Ssex`enum('男','女')DEFAULT'男',
`Sbirth`dateDEFAULT'1995-11-14',
`Sroot`varchar(25)DEFAULTNULL,
`Spost`varchar(50)DEFAULTNULL,
`Sgrade`enum('大一','大二','大三','大四','毕业')DEFAULT'大三',
`Smajor`enum('新媒体','计科','网工','软工')DEFAULT'网工',
`Sclass`enum('521','522','541','542','543','544','551','552','561','562')DEFAULTNULL,
`Sintroduce`text,
`Spicture`varchar(255)DEFAULTNULL,
`ischecked`enum('已审核','待审核')DEFAULT'待审核',
`compliance`enum('0','1')DEFAULT'0',
PRIMARYKEY(`Sno`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
CREATETABLE`grade`(//学生成绩表
`GrId`int(11)NOTNULLAUTO_INCREMENT,
`Sno`char(9)DEFAULTNULL,
`term`enum('大一一学期','大一二学期','大二一学期','大二二学期','大三一学期','大三二学期')DEFAULTNULL,
`ranking`int(11)DEFAULTNULL,
`behavior`int(11)DEFAULTNULL,
`summation`int(11)DEFAULTNULL,
PRIMARYKEY(`GrId`),
KEY`con3`(`Sno`),
CONSTRAINT`con3`FOREIGNKEY(`Sno`)REFERENCES`student`(`Sno`)ONDELETECASCADEONUPDATECASCADE
)ENGINE=InnoDBAUTO_INCREMENT=20DEFAULTCHARSET=utf8;
CREATETABLE`activists`(//积极分子表
`AcId`int(11)NOTNULLDEFAULT'0',
`Sno`char(9)NOTNULLDEFAULT'',`Aintime`dateNOTNULLDEFAULT'2010-10-01',
`Aistrained`enum('是','否')NOTNULLDEFAULT'否',
`Atrainedscore`floatDEFAULTNULL,
`branch`enum('第一支部','第二支部')NOTNULLDEFAULT'第一支部',
`postinparty`varchar(50)DEFAULTNULL,
PRIMARYKEY(`Sno`),
CONSTRAINT`con4`FOREIGNKEY(`Sno`)REFERENCES`student`(`Sno`)ONDELETECASCADEONUPDATECASCADE
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
CREATETABLE`preparmember`(//预备党员表
`PreId`int(11)NOTNULLDEFAULT'0',
`Aintime`dateNOTNULLDEFAULT'2016-10-01',
`Atrainedscore`floatDEFAULTNULL,
`devetime`dateNOTNULLDEFAULT'2016-11-01',
`pmtrainedscore`floatDEFAULTNULL,
`cfirpretime`dateNOTNULLDEFAULT'2106-11-01',
`branch`enum('第一支部','第二支部')NOTNULLDEFAULT'第一支部',
`postinparty`varchar(50)DEFAULTNULL,
`Sno`char(9)NOTNULLDEFAULT'',
PRIMARYKEY(`Sno`),
CONSTRAINT`con1`FOREIGNKEY(`Sno`)REFERENCES`student`(`Sno`)ONDELETECASCADEONUPDATECASCADE
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
CREATETABLE`parmember`(//正式党员表
`PmId`int(11)NOTNULLDEFAULT'0',
`Sno`char(9)NOTNULLDEFAULT'',
`Aintime`dateNOTNULLDEFAULT'2016-10-01',
`Atrainedscore`floatDEFAULTNULL,
`devetime`dateNOTNULLDEFAULT'2016-11-01',
`pmtrainedscore`floatDEFAULTNULL,
`cfirpretime`dateDEFAULTNULL,
`turnformaltime`dateDEFAULTNULL,
`branch`enum('第一支部','第二支部')NOTNULLDEFAULT'第一支部',
`postinparty`varchar(50)DEFAULTNULL,
PRIMARYKEY(`Sno`),
KEY`con2`(`Sno`),
CONSTRAINT`con2`FOREIGNKEY(`Sno`)REFERENCES`student`(`Sno`)ONDELETECASCADEONUPDATECASCADE
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
CREATETABLE`user`(//用户表
`Id`int(11)NOTNULLAUTO_INCREMENT,
`username`varchar(20)NOTNULLDEFAULT'',
`password`varchar(20)NOTNULLDEFAULT'',
`identity`enum('党务秘书','团支书')NOTNULLDEFAULT'党务秘书',
`uclass`varchar(255)NOTNULLDEFAULT'',
PRIMARYKEY(`Id`)
)ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8;
4.2给各表建立主外键,并设置删除和更新的级联
1)给积极分子表添加约束,并设置删除和更新的级联
altertableactivistsaddCONSTRAINTcon4foreignkey(Sno)REFERENCESstudent(Sno)ONDELETECASCADEONUPDATECASCADE;
2)给成绩表添加约束,并设置删除和更新的级联
altertablegradeaddCONSTRAINTcon3foreignkey(Sno)REFERENCESstudent(Sno)ONDELETECASCADEONUPDATECASCADE;
3)给正式党员表添加约束,并设置删除和更新的级联
altertableparmemberaddCONSTRAINTcon2foreignkey(Sno)REFERENCESstudent(Sno)ONDELETECASCADEONUPDATECASCADE;
4)给预备党员表添加约束,并设置删除和更新的级联
altertablepreparmemberaddCONSTRAINTcon1foreignkey(Sno)REFERENCESstudent(Sno)ONDELETECASCADEONUPDATECASCADE;
4.3建立触发器
/*创建触发器,把通过审核的推优学生加入到积极分子列表中*/
CREATETRIGGER`enter`
BEFOREupdateON`student`
FOREACHROW
BEGIN
ifpliance=0&&pliance=1then
insertintoactivists(Sno,Aintime,Aistrained,Atrainedscore,branch,postinparty)
values(old.Sno,'2014-11-11','是',100,'第一支部','无');
ENDIF;END;
4.4视图的创建
创建查看552班学生信息的视图
createviewstucopy
as
select*fromstudent
whereSclass='552';
4.5存储过程的创建
1)/*创建存储过程,分别按“年级”、“专业”、“班级”、“支部”、“支部年级”、“总人数”统计积极分子人数*/
CREATEPROCEDURE`countact`(gvarchar(255),mvarchar(255),cvarchar(255),bvarchar(255))
begin
DECLAREsintdefault0;
ifmisnull&&cisnull&&bisnullthen
selectcount(*)intosfromstudent,activistswherestudent.Sno=activists.Snoandstudent.Sgrade=g;
elseifcisnull&&bisnullthen
selectcount(*)intosfromstudent,activistswherestudent.Sno=activists.Snoandstudent.Sgrade=gandstudent.Smajor=m;
elseifmisnull&&bisnullthen
selectcount(*)intosfromstudent,activistswherestudent.Sno=activists.Snoandstudent.Sgrade=gandstudent.Sclass=c;
elseifmisnull&&cisnull&&gisnullthen
selectcount(*)intosfromstudent,activistswherestudent.Sno=activists.Snoandactivists.branch=b;
elseifmisnull&&cisnullthen
selectcount(*)intosfromstudent,activistswherestudent.Sno=activists.Snoandstudent.Sgrade=gandactivists.branch=b;
elseifmisnull&&ci