《本科毕业设计论文--数据库课程设计计算机工程系党务信息管理系统.doc》由会员分享,可在线阅读,更多相关《本科毕业设计论文--数据库课程设计计算机工程系党务信息管理系统.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 数据库原理及应用课程设计 系统开发报告学 号: 姓 名: 题 目: 计算机工程系党务信息管理系统 指导教师: 提交时间: 2016年12月 计算机工程系 1目 录1 绪论12 党务信息管理系统概述22.1现状分析22.2系统目标22.3系统特点33 党务信息管理系统数据库设计33.1需求分析33.2数据库概念结构设计53.3数据库逻辑结构设计84 党务管理系统数据库功能模块的创建104.1 建立学生表,成绩表,积极分子表,预备党员表,正式党员表,用户表104.2 给各表建立主外键,并设置删除和更新的级联154.3 建立触发器154.4 视图的创建164.5 存储过程的创建165 总结2021
2、 绪论随着信息技术的蓬勃发展,现代社会进入了以计算机为中心的信息时代,以计算机技术为核心的新技术革命正在以一种前所未有的持久方式改变着世界的面貌,全面推动了社会的发展,改变了社会经济结构。人们对工作的观念也发生了变化,生活节奏越来越快,生活方式出现了多样化。社会环境发生的这种深刻的变化导致工作改革跟不上,使得传统手工信息管理模式面临着严峻的挑战,所以开发管理系统减轻信息管理人员工作压力和提高党务信息管理人员的工作效率是社会发展的必然形势。为了加强党员信息管理,及时准确了解党员情况,提升党员管理信息化的水平,我结合自身工作实际,经过详细需求分析和论证,提出开发党员管理系统,以电子信息化手段替代传
3、统处理手段,建立一种集党员信息查询、发展审核、统计、分类、汇总于一体,贯穿党员培养发展全过程,结合党员考核、党费收缴、组织关系转入转出等相关功能使党员信息管理更为规范化、制度化。系统涵盖了基层党组织和党员等日常管理的主要工作,为基层党组织和党员提供直观形象便捷的信息服务,满足信息管理者和普通党员的日常需要,对党务以及与党务相关的各项服务和信息进行管理。 目前,本系统实现了超级管理员(党务秘书)和普通管理员(团支书)的登录功能,不同权限的用户登录系统,实现对系统的不同操作。团支书只能查看本班的推优学生、积极分子、预备党员以及正式党员的信息。其中只能对推优学生的信息进行增加、删除、修改操作和对自己
4、的登录信息进行修改,包括用户名、密码和班级。党务秘书能对全系的推优学生、积极分子、预备党员和正式党员的信息进行查询、增加、删除和修改操作。也能对普通管理员和超级管理员的信息进行增删改查的操作。本系统还实现了可以将班级推优学生转换成入党积极分子,积极分子转换为发展对象,发展对象转换为预备党员等。此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计。需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。2 党务信息管理系统概述2.1现状分析作为我系学生党员信息的管理者,在平时的工作实践中,渐渐认识到党员的人数越来越多,传统的党员信息管理方式
5、出现了很多新问题,比如党务信息管理者的工作压力越来越大,工作效率也不能通过有效的途径进行提高。所以急需开发党务信息管理系统。党员信息管理是对党内各项业务和事务的一项工作,是贯彻党的基本路线的重要保证。所以计算机为中心的信息时代的到来,党的建设工作也要与时俱进,实现现代化,而采用计算机信息科学技术实现党务工作信息化,正是实现党的建设现代化的有益尝试和积极探索。通过分析我系学生党员信息管理业务,结合我系党员信息管理自身特点,有效的把党务内部活动有机组织起来,搭建一个行之有效的党员信息管理系统应用于我系学生党员管理。基于以上原因,计算机工程系党务信息管理系统能实现党务信息的便捷管理。2.2系统目标
6、计算机工程系党务信息管理系统的主要目的是利用计算机对各班推优学生、积极分子、预备党员和正式党员的信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成按各种条件把各种人员信息进行统计和汇总。实现各班团支书直接登录系统进行本班推优人员信息的填写和上报。以及实现党员的发展。计算机工程系党务信息管理系统主要有以下几大功能:(1) 用户按权限登录。不同的用户按自己的权限登录系统实现不同的操作。本系统设有超级管理员(党务秘书)和普通管理员(团支书)的登录功能,团支书只能查看本班的推优学生、积极分子、预备党员以及正式党员的信息。其中只能对推优学生的信息进行增加、删除、修改操作和对自己的登录
7、信息进行修改,包括用户名、密码和班级。党务秘书能对全系的推优学生、积极分子、预备党员和正式党员的信息进行查询、增加、删除和修改操作。也能对普通管理员和超级管理员的信息进行增删改查的操作。 (2)对人员信息的管理。可以实现对推优学生、积极分子、预备党员和正式党员信息的增删改查的日常管理工作。(3)查询与统计功能。系统可以根据用户输入的条件迅速统计出按各种条件统计出的人员的数量。并通过文字和生动的图表展现出来。(4)党员发展功能。系统能实现将班级推优学生转换成入党积极分子,积极分子转换为发展对象,发展对象转换为预备党员以及预备党员转换为正式党员的功能。2.3系统特点(1)本系统使党务管理基本实现了
8、信息化,系统设计的各种查询要求代替了原来了人工查询,即节省了人力,又减轻了管理人员的工作量,最重要的是由计算机操作,可以提高数据的准确性,避免人为的错误,方便管理。(2)本系统设置了网上推优功能,各班级团支书直接通过网络在系统上填写上报本班的推优人员信息,免去了人员繁琐的跑动。(3)本系统的信息处理贯穿整个党员发展的过程,使党员发展过程变得高效便捷。3 党务信息管理系统数据库设计3.1需求分析 本系统1) 需要实现不同用户的权限的用户登录系统实现不同的操作,系统设置了超级管理员(党务秘书)、普通管理员(团支书)和普通用户的权限登录。2) 需要实现对各类人员的基本信息的管理工作。系统设置了对推优
9、学生、积极分子、预备党员和正式党员的增删改查的基本管理功能。3) 各班网上推优的功能。系统实现了团支书登录系统能够对本班推优学生的增删改查的功能。4)党员发展各个阶段的信息转换功能。系统实现了将班级推优学生转换成入党积极分子,积极分子转换为发展对象,发展对象转换为预备党员以及预备党员转换为正式党员的功能。3.1.1 设计策略本设计是基于B/S模式下党员信息管理系统的设计。党务信息管理系统开发的目的主要是为了实现我系党务管理工作的信息化,以提高工作效率,方便管理。主要实现对学生党员的信息更改、入党申请人信息进行建档,流动党员组织转移、党费收缴,组织生活情况、是否受表彰等情况进行掌握和了解。实现无
10、纸化办公,实现党员信息管理的电子化,真正为党员管理提供一个电子平台,以减轻管理人员的工作负担。通过强大的查询和索检高效的统计分析出各项数据,以及对系统自身的用户权限管理。本系统采用B/S模式,基于servlet+MySQL数据库+jsp+javabeen+html+css+js等技术实现。3.1.2 系统总体结构图 图3-1 系统总体结构图3.2数据库概念结构设计数据库概念设计是整个数据库设计的关键。根据用户需求设计数据库的概念,数据模型。我们首先要将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种信息结构不是DBMS支持的数据模型,而是概念级模型。然后再把概念模型转换为具体机
11、器上DBMS支持的数据模型。概念模型是对现实世界的抽象和概括。它真实,充分地反映了现实世界中的事物和事物之间的联系,能满足用户对数据的处理要求。由于其简洁、明晰、独立于机器,很容易理解,因此可以用概念模型和不熟悉计算机的用户交换意见,使用户能积极参与数据库的设计工作。概念模型易于变动,还很容易向各种数据模型转换。 图3-2 用户实体关系图 图3-3 推优学生实体关系图 图3-4 积极分子实体关系图 图3-5 预备党员实体关系图奖励工资住房公积金福利补贴失业保险基本工资工资日期 图3-6 正式党员实体 图3-7 学生成绩实体关系图203.3数据库逻辑结构设计 3.3.1 实体根据上述概念模型设计
12、得出的ER图,我们可以得出系统中涉及的主要实体有6个,其结构如下:(1)用户(用户名,密码,权限,班级)(2)推优学生(学号,姓名,性别,出生年月,籍贯,班级职务,年级,专业,班级,简介,照片,审核状态,是否符合)(3)积极分子(学号,入库时间,是否培训,培训得分,所属支部,党内职务)(4)预备党员(学号,入库时间,培训得分,入党时间,所属支部,党内职务)(5)正式党员(学号,入库时间,培训得分,入党时间,转正时间,所属支部,党内职务)(6)学生成绩(ID,学号,学期,排名,操行,班级总人数) 3.3.2 实体间的联系党务管理系统中实体之间有6个联系,其关系如下:(1)具有关系:学生和成绩的关
13、系是1:N,一个学生拥有N个学期的成绩。(2)属于1关系:学生和积极分子的关系是1:1,一个学生对应一条积极分子信息。(3)属于2关系:学生和预备党员的关系是1:1,一个学生对应一条预备党员信息。(4)属于3关系:学生和积极分子的关系是1:1,一个学生对应一条正式党员信息。根据以上逻辑结构分析可以知道:一个学生拥有多个学期的成绩,一个学生被推诿为积极分子、预备党员正式党员时只对应一条记录。其关系模式为:(1)推优学生(学号(主键),姓名,性别,出生年月,籍贯,班级职务,年级,专业,班级,简介,照片,审核状态,是否符合)(2)积极分子(学号(主键、外键),入库时间,是否培训,培训得分,所属支部,
14、党内职务)(3)预备党员(学号(主键、外键),入库时间,培训得分,入党时间,所属支部,党内职务)(4)正式党员(学号(主键、外键),入库时间,培训得分,入党时间,转正时间,所属支部,党内职务)(5)学生成绩(ID(主键),学号(外键),学期,排名,操行,班级总人数)表、视图汇总视图/表名类型说明学生基本表存放学生基本信息学生成绩基本表存放学生各学期成绩信息积极分子基本表存放积极分子信息预备党员基本表存放预备党员信息正式党员基本表存放正式党员信息用户基本表存放用户信息班级团支书视图视图存放某个班级团支书所能浏览的本班人员的信息3.3.3 完整性约束(1) 推优学生:学号(主键) (2)积极分子:
15、学号(主键、外键)(3) 预备党员:学号(主键、外键) (4)正式党员:学号(主键、外键)(5) 学生成绩:ID(主键),学号(外键) (6)用户:ID(主键)4 党务管理系统数据库功能模块的创建4.1 建立学生表,成绩表,积极分子表,预备党员表,正式党员表,用户表CREATE TABLE student (/学生表 StId int(11) NOT NULL DEFAULT 0, Sno char(9) NOT NULL DEFAULT , Sname varchar(255) DEFAULT NULL, Ssex enum(男,女) DEFAULT 男, Sbirth date DEFAU
16、LT 1995-11-14, Sroot varchar(25) DEFAULT NULL, Spost varchar(50) DEFAULT NULL, Sgrade enum(大一,大二,大三,大四,毕业) DEFAULT 大三, Smajor enum(新媒体,计科,网工,软工) DEFAULT 网工, Sclass enum(521,522,541,542,543,544,551,552,561,562) DEFAULT NULL, Sintroduce text, Spicture varchar(255) DEFAULT NULL, ischecked enum(已审核,待审核)
17、 DEFAULT 待审核, compliance enum(0,1) DEFAULT 0, PRIMARY KEY (Sno) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE grade (/学生成绩表 GrId int(11) NOT NULL AUTO_INCREMENT, Sno char(9) DEFAULT NULL, term enum(大一一学期,大一二学期,大二一学期,大二二学期,大三一学期,大三二学期) DEFAULT NULL, ranking int(11) DEFAULT NULL, behavior int(11) DE
18、FAULT NULL, summation int(11) DEFAULT NULL, PRIMARY KEY (GrId), KEY con3 (Sno), CONSTRAINT con3 FOREIGN KEY (Sno) REFERENCES student (Sno) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;CREATE TABLE activists (/积极分子表AcId int(11) NOT NULL DEFAULT 0,Sno char(
19、9) NOT NULL DEFAULT , Aintime date NOT NULL DEFAULT 2010-10-01,Aistrained enum(是,否) NOT NULL DEFAULT 否,Atrainedscore float DEFAULT NULL,branch enum(第一支部,第二支部) NOT NULL DEFAULT 第一支部,postinparty varchar(50) DEFAULT NULL,PRIMARY KEY (Sno),CONSTRAINT con4 FOREIGN KEY (Sno) REFERENCES student (Sno) ON DE
20、LETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE preparmember (/预备党员表 PreId int(11) NOT NULL DEFAULT 0, Aintime date NOT NULL DEFAULT 2016-10-01, Atrainedscore float DEFAULT NULL, devetime date NOT NULL DEFAULT 2016-11-01, pmtrainedscore float DEFAULT NULL, cfirpretime
21、 date NOT NULL DEFAULT 2106-11-01, branch enum(第一支部,第二支部) NOT NULL DEFAULT 第一支部, postinparty varchar(50) DEFAULT NULL, Sno char(9) NOT NULL DEFAULT , PRIMARY KEY (Sno), CONSTRAINT con1 FOREIGN KEY (Sno) REFERENCES student (Sno) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;
22、CREATE TABLE parmember (/正式党员表 PmId int(11) NOT NULL DEFAULT 0, Sno char(9) NOT NULL DEFAULT , Aintime date NOT NULL DEFAULT 2016-10-01, Atrainedscore float DEFAULT NULL, devetime date NOT NULL DEFAULT 2016-11-01, pmtrainedscore float DEFAULT NULL, cfirpretime date DEFAULT NULL, turnformaltime date
23、DEFAULT NULL, branch enum(第一支部,第二支部) NOT NULL DEFAULT 第一支部, postinparty varchar(50) DEFAULT NULL, PRIMARY KEY (Sno), KEY con2 (Sno), CONSTRAINT con2 FOREIGN KEY (Sno) REFERENCES student (Sno) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE user (/用户表 Id int(11) N
24、OT NULL AUTO_INCREMENT, username varchar(20) NOT NULL DEFAULT , password varchar(20) NOT NULL DEFAULT , identity enum(党务秘书,团支书) NOT NULL DEFAULT 党务秘书, uclass varchar(255) NOT NULL DEFAULT , PRIMARY KEY (Id) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;4.2 给各表建立主外键,并设置删除和更新的级联1)给积极分子表添加约束,并设置删
25、除和更新的级联alter table activists add CONSTRAINT con4 foreign key(Sno) REFERENCES student(Sno) ON DELETE CASCADE ON UPDATE CASCADE;2)给成绩表添加约束,并设置删除和更新的级联alter table grade add CONSTRAINT con3 foreign key(Sno) REFERENCES student(Sno) ON DELETE CASCADE ON UPDATE CASCADE;3)给正式党员表添加约束,并设置删除和更新的级联alter table p
26、armember add CONSTRAINT con2 foreign key(Sno) REFERENCES student(Sno) ON DELETE CASCADE ON UPDATE CASCADE;4)给预备党员表添加约束,并设置删除和更新的级联alter table preparmember add CONSTRAINT con1 foreign key(Sno) REFERENCES student(Sno) ON DELETE CASCADE ON UPDATE CASCADE;4.3 建立触发器/*创建触发器,把通过审核的推优学生加入到积极分子列表中*/CREATE TR
27、IGGER enter BEFORE update ON studentFOR EACH ROW BEGINif pliance=0&pliance=1 theninsert into activists(Sno,Aintime,Aistrained,Atrainedscore,branch,postinparty)values(old.Sno,2014-11-11,是,100,第一支部,无);END IF;END;4.4 视图的创建创建查看552班学生信息的视图create view stucopy as select * from student where Sclass=552;4.5
28、存储过程的创建1)/*创建存储过程,分别按“年级”、“专业”、“班级”、“支部”、“支部年级”、“总人数”统计积极分子人数*/CREATE PROCEDURE countact(g varchar(255),m varchar(255),c varchar(255),b varchar(255)beginDECLARE s int default 0;if m is null&c is null & b is null thenselect count(*) into s from student,activists where student.Sno=activists.Sno and st
29、udent.Sgrade=g;elseif c is null & b is null thenselect count(*) into s from student,activists where student.Sno=activists.Sno and student.Sgrade=g and student.Smajor=m;elseif m is null & b is null thenselect count(*) into s from student,activists where student.Sno=activists.Sno and student.Sgrade=g
30、and student.Sclass=c;elseif m is null & c is null&g is null thenselect count(*) into s from student,activists where student.Sno=activists.Sno and activists.branch=b;elseif m is null & c is null thenselect count(*) into s from student,activists where student.Sno=activists.Sno and student.Sgrade=g and
31、 activists.branch=b;elseif m is null & c is null & b is null & g is null thenselect count(*) into s from student,activists where student.Sno=activists.Sno;end if;select s;end;2)/*创建存储过程,分别按“年级”、“专业”、“班级”、“支部”、“支部年级”、“总人数”统计预备党员人数*/CREATE PROCEDURE countpre(g varchar(255),m varchar(255),c varchar(255
32、),b varchar(255)beginDECLARE spre int default 0;if m is null&c is null & b is null thenselect count(*) into spre from student,preparmember where student.Sno=preparmember.Sno and student.Sgrade=g;elseif c is null & b is null thenselect count(*) into spre from student,preparmember where student.Sno=pr
33、eparmember.Sno and student.Sgrade=g and student.Smajor=m;elseif m is null & b is null thenselect count(*) into spre from student,preparmember where student.Sno=preparmember.Sno and student.Sgrade=g and student.Sclass=c;elseif m is null & c is null&g is null thenselect count(*) into spre from student
34、,preparmember where student.Sno=preparmember.Sno and preparmember.branch=b;elseif m is null & c is null thenselect count(*) into spre from student,preparmember where student.Sno=preparmember.Sno and student.Sgrade=g and preparmember.branch=b;elseif m is null & c is null & b is null & g is null thens
35、elect count(*) into spre from student,preparmember where student.Sno=preparmember.Sno;end if;select spre;end;3)/*创建存储过程,分别按“年级”、“专业”、“班级”、“支部”、“支部年级”、“总人数”统计正式党员人数*/CREATE PROCEDURE countpar(g varchar(255),m varchar(255),c varchar(255),b varchar(255)beginDECLARE spar int default 0;if m is null&c is
36、null & b is null thenselect count(*) into spar from student,parmember where student.Sno=parmember.Sno and student.Sgrade=g;elseif c is null & b is null thenselect count(*) into spar from student,parmember where student.Sno=parmember.Sno and student.Sgrade=g and student.Smajor=m;elseif m is null & b
37、is null thenselect count(*) into spar from student,parmember where student.Sno=parmember.Sno and student.Sgrade=g and student.Sclass=c;elseif m is null & c is null&g is null thenselect count(*) into spar from student,parmember where student.Sno=parmember.Sno and parmember.branch=b;elseif m is null &
38、 c is null thenselect count(*) into spar from student,parmember where student.Sno=parmember.Sno and student.Sgrade=g and parmember.branch=b;elseif m is null & c is null & b is null & g is null thenselect count(*) into spar from student,parmember where student.Sno=parmember.Sno;end if;select spar;end
39、;4) 存储过程调用举例call countact(大三,null,null,第二支部);查询第二支部大三的积极分子人数。5 总结此次课程设计给我的体会有以下几点:(1)数据库的设计是开发一个完善的系统的基础。设计数据库时,要严格按照数据库设计的步骤进行:需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。其中需求分析看似不重要,实际决定了要怎样建立系统的数据库。要通过认真全面的需求分析才能建立一个完善的为系统服务的数据库。否则,分析不全面,造成的后期功能设计不全面,就很难恢复过来。通过设计此系统的过程,让我深刻理解了数据库设计的各个步骤,让我在今后的项目开发中更能设计出好
40、的适合项目需求的数据库。关于各个步骤我书写了详细总结见:(2)此次系统数据库的设计我更熟悉并掌握了用SQL语句创建数据库、基本表、视图、主外键、触发器和存储过程,以及更加深刻得理解了这些对象在系统开发中的用途。为顺利完成项目提供了极大的帮助。(3)不管用何种计算机编程语言开发一个系统都需要深厚计算机编程的能力,和足够的耐心。在此次系统的设计与开发中,深深体会到自己能力的欠缺,在以后的学习中还要不断加强编程语言理论的学习和实践能力的锻炼。参考文献1 (美)贝尔 深入理解MySQL 人民邮电出版社 20102 王珊,萨师煊 数据库系统概论M 高等教育出版社 20123 姜承尧 MySQL技术内幕:InnoDB存储引擎机械工业出版社 2011