1、人事管理系统数据库SQL_课程设计(汇报)A:摘要:为了能设计一个提升人事系统工作效率管理系统,使其人事信息能够规范化管理、而且能够实现科学统计人事资料,关键是能够快速查询,降低管理方面工作量。特用SQL Server设计一个人事管理系统,意在体会其在现实生活中应用。 1、该系统基础功效: 职员多种信息输入,包含职员基础信息、学历信息、婚姻情况信息、职称等。 职员多种信息修改; 对于转出、辞职、解聘、退休职员信息删除; 根据一定条件,查询、统计符合条件职员信息;包含每个职员具体信息查询、按婚姻情况查询、按学历查询、按工作岗位查询等,同时也可实现按学历、婚姻情况、岗位、参与工作时间等统计各自职员
2、信息;2、数据库中所包含下列数据表: 用户基础信息表(用户名,用户号,密码,权限) 职员基础信息表(个人基础信息,进入企业时间,职员等级,基础工资,所在部门)等; 职员家庭情况表,反应职员家庭信息; 职员学历信息表,反应职员学历、专业、毕业时间、学校、外语情况等; 企业工作岗位表,反应基础名称所属部门信息; 企业部门信息表。反应部门名称等基础信息。3、设计环境:先导课程为:数据库系统概论。设计环境和开发工具: 操作系统: WindowsVista 数据库管理系统:MySQL开发工具: JavaB:目录:目录1 摘要22 需求分析42.1 业务需求分析42.2 功效需求42.3 数据需求42.4
3、 数据字典53 数据库结构概念结构设计63.1 数据结构和数据项63.2 思维图73.3 E-R图84 数据库逻辑结构设计95 数据步骤及程序结构框图125.1 程序结构框图125.2 数据步骤图135.3 数据流定义145.4 数据存放定义145.5 关键处理过程156 程序源代码及其说明总结166.1 部分原代码166.2 试验数据输入186.3 图片展示217 总结238 致谢语249 参考文件24C:需求分析:C.1业务需求分析背景资料:伴随企业规模不停扩大,职员数量急剧增加,相关职员多种信息也成倍增加.面对庞大信息量,一个好人事管理系统能够提升企业人事管理工作效率.经过这么系统,能够
4、做到信息规范管理、科学统计和快速查询,从而降低管理方面工作量。为企业和职员带来便利。C.2功效需求 在数据操作界面要有用户登陆窗口和信息操作(修改,删除,查询)窗口 功效列表编号功效名称功效说明1.1用户登陆用户输入用户名和密码登陆系统1.2用户添加添加用户和对你添加用户权限进行设定1.3添加用户添加新用户1.4删除用户删除已经有用户息2.1职员信息管理查询职员基础信息,修改职员基础信息2.2部门信息管理查询修改部门基础信息2.3工作岗位信息管理对工作岗位进行相关操作C.3数据需求系统处理对象有(大致):a:用户信息:用户名,密码,权限。b:职员信息:职员进入企业时间、职员等级、职员基础工资、
5、职员所在部门和职员其它基础信息等c:工作岗位信息:岗位名称,岗位等级,工资范围,所属部门等d:企业部门信息:部门信息,责任人等C.4数据字典数据项名称数据项描述数据项类型主码User_ID用户编号intUser_Name用户姓名char(20)Password用户密码char(20)Popedom用户权限char(20)许可为空D_Number部门编号Char(4)D_Name部门名称char(20)D_Count部门所含岗位数intD_Chief部门责任人intP_Name岗位名称char(20)P_Number岗位编号intP_Rank岗位等级char(20)P_Department所属部
6、门char(20)P_Count岗位人数intP_Wage工资范围(max&min)intE-Number职员编号intE_Name职员姓名char(30)E_Sex职员性别char(2)E_BornDate职员出生日期char(30)E_Marriage职员婚姻情况char(4)E_PoliticsVisage职员政治面貌char(20)E_Phoen职员联络电话intE_SchoolAge职员学历char(20)E_Specialty职员专业char(20)E_Graduate职员毕业时间char(30)E_School职员毕业学校char(20)E_FL职员外语情况char(20)E_E
7、nterDate职员进入企业时间char(30)E_InDueFormDate职员转正时间char(30)E_Department职员部门char(20)E_Headship职员职务char(20)E_Estate职员状态char(10)E_Remark职员备注char(500)E_Rank职员等级char(20)E_BassicWage职员基础工资intE_Family职员家眷姓名char(20)E_Address职员住址char(20)E_Relation和职员关系char(20)D:数据库概念结构设计:经过需求分析,可确定系统数据项和数据结构以下:1:用户基础信息表(User):姓名,编
8、号,密码,权限2:职员基础信息表(Employment):姓名,编号,性别,婚姻情况,进入企业时间,转正时间,部门, 职务,状态,备注,等级,基础工资3:职员家庭信息表(Family):编号,出生年月,联络电话,住址,家眷姓名,和职员关系4:职员学历信息表(Schooling):编号,毕业学校,毕业专业,学历,毕业时间,外语情况,政治面貌5:企业工作岗位表(Post):名称,编号,等级,所属部门,工资mix,工资min6:企业部门信息表(Department):名称,编号,所含岗位数,部门责任人 概念结构设计E-R模型:User严禁访问!YES?更新管理只限统计只限查询只限浏览职员学历表职员信
9、息表岗位表部门表职员家庭信息表上幅图是指:假如用户有“只限浏览权”,则只能 对部门表浏览,以这类推(思维图)下幅是各实体之间E-R图:性别转正时间进入企业时间婚姻情况编号姓名等级状态职务部门基础工资职员基础信息表编号毕业院校学历编号等级职员工作备注名称政治面貌外语情况毕业专业职员学历表工作岗位表编号出生年月毕业时间职员家庭信息表Mix编号部门表Min住址联络电话部门责任人岗位数家眷姓名和职员关系编号名称E-R图上幅图是完整E-R图:用户数据基础信息不含在这个E-R图中,因为,用户只是一个窗口,当她满足一些条件,才能进入者个关系模式,并进行对应操作,假如她不满足程序所要求任何条件,这个关系模式对
10、其是屏蔽,用户数据也有其自个儿数据库,不过我在这个课程设计没相关键讨论,用对应编程让其和E-R相联络起来。E:数据库逻辑结构设计:a:用户基础信息表(User)User_NameUser_IDPasswordPopedom(浏览)Popedom(查询)Popedom(统计)Popedom(更新)总理101001*总理201002*总理301003*责任人10*责任人20*责任人30*管理人103001*管理人203002*管理人303003*b:职员基础信息表(Employment)E_NameE-NumberE_SexE_MarriageE_EnterDateE_InDueFormDateE
11、_Department01000001女未婚.09.12.12.29A0003女已婚.09.12.12.29B03000004女已婚.09.12.12.29C04000002女未婚.09.12.12.29D接上:E_HeadshipE_EstateE_RemarkE_RankE_BassicWageA01001在职无16000B0在职无25000C01001不在职休假34000D01001在职无45500c:职员家庭信息表(Family):E-NumberE_BornDateE_PhoenE_AddressE_FamilyE_Relation010000011990.09.07北京良乡马*姐姐
12、00031990.10.25北京海淀刘*母亲030000041989.10.09北京朝阳*040000021989.10.05北京顺义*d:职员学历信息表(Schooling)E-NumberE_SchoolE_SpecialtyE_SchoolAgeE_GraduateE_FLE_PoliticsVisage01000001北京工商软件工程本科.06.12西班牙语党员0003北京工商软件工程本科.06.12英语党员03000004北京工商软件工程硕士.06.12法语团员04000002北京工商软件工程本科.06.12英语团员*e:企业工作岗位表(Post):P_NameP_NumberP_R
13、ankP_DepartmentP_CountP_Wage(mix)P_Wage(min)CEOA010011A3100006000总监B02B5100005000组长C010013C280004000部长D010014D180005000*f:企业部门信息表(Department):D_NameD_NumberD_CountD_Chief管理A1001000001培训B50003销售C803000004财务D2004000002设计E9*开发F12*F:数据步骤及程序结构框图:Admin人事管理系统更新!岗位表职员信息表用户表统计部门表职员学历表查询!职员家庭情况浏览1:以上是程序结构图D1
14、职员档案P1档案管理职员D6 管理人员统计管理员情况P6安全管理管理员工资查询发工资P4工资管理D4 工资统计职员职员情况上级职员P3调动管理D3 职务调动统计上级职员对应编号P2岗位管理D2 岗位统计职员调动用户身份用户身份用户身份部门情况P5部门管理D5 部门统计上级工资在档案表里调动在档案表里2:以上是数据步骤图图中虚线表示数据流是职员信息(1)关键数据流定义1)数据流名称:职员情况位置:职员P1。定义: 职员情况=姓名+编号+性别+婚姻情况+部门+基础工资+职务 。说明:要对每一位被聘用新职员进行唯一编号。2)数据流名称:调动情况位置:P3职员定义: 调动情况=职员号+调动前职务+调动
15、后职务+调动日期。说明:职员号和调动日期(备注)能够唯一确定一个调动情况。3)数据流名称:工资查询位置:P4职员定义: 工资查询=职员号+基础工资。说明:依据职员号能够唯一确定一个工资统计。4)数据流名称:管理员情况位置:管理员P6定义: 用户身份=职员编号。说明:要对每一位管理员建立唯一账号。5)数据流名称:用户身份位置:安全管理P1,定义: 用户身份= 责任人 | 总理 | 管理人|说明:不一样用户身份对应不一样操作权限,对应着不一样安全等级。6)数据流名称:部门情况位置:上级部门情况定义: 部门情况=部门号+部门名称+责任人编号说明:部门号是主码。(2)关键数据存放定义1)数据存放编号:
16、职员统计 D1输入:P1输出:P1,P3,P4,P5,P6数据结构:职员统计=姓名+性别+婚姻情况+基础工资+职务+部门 +职员编号。存取方法:检索和更新。说明:职员编号含有唯一性和非空性;性别只能是男或女;主码是职员编号。2)数据存放编号:管理人员统计 (用户)D6 输入:P6输出:P6数据结构:管理人员统计=用户号+密码+账号+权限。存取方法:检索和更新;以检索操作为主。说明:主码用户设为账号。3)数据存放编号:部门统计 D5输入:P5输出:P5数据结构:部门统计=部门号+部门名称+责任人+所含岗位数。存取方法:检索和更新;以检索操作为主。说明:主码设为部门号。(3)关键处理过程1)处理过
17、程编号:P1处理过程名:档案管理输入:用户身份,职员统计,职员情况输出:职员统计处理说明:依据职员聘用、解聘建立或删除职员统计,和在后续过程中,以管理员身份对职员统计进行修改。2)处理过程编号:P4处理过程名:工资管理输入:用户身份,工资统计输出:工资统计,工资查询处理说明:依据职员现在工资情况,进行调薪操作。3)处理过程编号:P3处理过程名:调动管理输入:用户身份,职务调动统计输出:职务调动统计,调动情况处理说明:更改职员职务信息。4)处理过程编号:P6处理过程名:安全管理输入:管理员情况输出:D6, P1处理说明:建立管理人员(用户)统计表;经过用户名和口令,确定用户身份,确保系统安全性。
18、5)处理过程编号:P5处理过程名:部门管理输入:部门情况,部门统计输出:部门统计处理说明:依据上级调度,对现在企业部门进行领导人调换,或是增加或删除某一部门。G:程序源代码及其说明:(部分)create database HAMS /*HAMS:人事管理系统human affairs manage system*/on primary( name= HAMS, filename=D:MySQLMYR_ HAMS.mdf, size=10, filegrowth=10%, maxsize=50 )log on( name= HAMS _Log, filename=D:SQL HAMS_Log.l
19、df, size=5, filegrowth=10%, maxsize=10)gocreate table Department( D_Number Char(4) primary key, D_Name Char(20) not null, D_Count int not null,D_Chief int not null,)gocreate table User( User_ID int primary key,User_Name Char(20) not null,Password Char(20) not null,Popedom(浏览) Char(2),Popedom(查询) Cha
20、r(2),Popedom(统计) Char(2),Popedom(更新) Char(2),)gocreate table Employment(E_Name Char(30) not null,E-Number int primary key,E_Sex char(2) not null,E_Marriage char(4),E_EnterDatechar(30),E_InDueFormDate char(30),E_Department char(20) not null,E_Headshipchar(20) not mull,E_Estate char(10) ,E_Remark char
21、(500),E_BassicWage int,E_Rankint not null,)gocreate table Family(E-Number int primary key,E_BornDatechar(30),E_Phoen int,E_Address char(20),E_Family char(20),E_Relationchar(20),)gocreate table Schooling(E-Number int primary key,E_School char(20),E_Specialtychar(20),E_SchoolAge char(20),E_Graduatecha
22、r(30),E_FLchar(20) not null, E_PoliticsVisagechar(20)gocreate table Post(P_Numberint primary key,P_Name char(20) not null,P_Rankint,P_Department char(20),P_Count intnot null,P_Wagemax intnot null, P_Wagemin int not null,)go/*索引建立*/create uniqe index D_Chief _index on Department (D_Chief);create inde
23、x E_BassicWage_index on Employment (E_BassicWage);create index E-Number _index on Employment(E-Number ASG);create cluster index User_ID _index on User(User_ID );go试验数据输入MySQL上建立“HAMS”数据库,输入少许试验数据。一:insert into Uservalues(01001,总理1,123456, ,);insert into Uservalues(01002,总理2,654321, , ,);insert into
24、Uservalues(01003,总理3,567890, ,);insert into Uservalues0,责任人1,098765, ,);insert into Uservalues(0,责任人2,811253, ,);insert into Uservalues(0,责任人3,352118, ,);insert into Uservalues(03001,管理人1,111222, ,);insert into Uservalues(03002,管理人2,3333444, ,);insert into Uservalues(03003,管理人3,888999, ,);二:insert i
25、nto Employmentvalues(*, 01000001,女,未婚,.09.12,.12.29, A , A01001, 在职,无,6000,1);insert into Employmentvalues(* , 0003,女,已婚,.09.12,.12.29, B , B0, 在职,无,5000,2);insert into Employmentvalues(*, 03000004,女,未婚,.09.12,.12.29, C , A01001, 在职,无,4000,3);insert into Employmentvalues(*, 04000002,女,未婚,.09.12,.12.
26、29, D , A01001, 在职,无,5500,4);三:insert into Familyvalues(01000001,1990.09.07,北京良乡, 马*,姐姐);insert into Familyvalues(0003,1990.10.25,1512464,北京海淀,刘*, 母亲);insert into Familyvalues(03000004,1989.10.09,北京朝阳,*, * );insert into Familyvalues( 04000002,1989.10.05,北京顺义,*, * );四:insert into Schoolingvalues(0100
27、0001,北京工商,软件工程,本科,.06.12, 西班牙语 , 党员);insert into Employmentvalues( 0003,北京工商,软件工程,本科,.06.12, 英语 ,党员);insert into Employmentvalues(03000004,北京工商,软件工程,硕士,.06.12, 法语,团员);insert into Employmentvalues(04000002,北京工商,软件工程,本科,.06.12, 英语,团员);五:insert into Postvalues(CEO,A01001,1,A,3, 10000 ,6000);insert into
28、 Postvalues(总监,B0,2,B,5, 10000 ,5000);insert into Postvalues(组长,C01001,3,C,3, 8000 ,4000);insert into Postvalues(部长,D01001,4,D,1, 10000 ,5000);六:insert into Departmentvalues(A,管理,10, A01001 );insert into Departmentvalues(B,培训,5, B0);insert into Departmentvalues(C,销售,8, C01001 );insert into Departmen
29、tvalues(D,财务,20, D01001 );insert into Departmentvalues(E,设计,9, E01008 );insert into Departmentvalues(F,开发,12, F01010 );图片展示:H:总结:当初在数据库设计早期,没有对人事管理系统进行正确地需求分析,造成后期设计过程中数据库概念设计阶段无法进行。所以,又回头重新画逻辑图,然后再修改添加,前期工作做很麻烦,也让我深刻认识到了需求分析对于系统设计关键性。也认识到规范化设计步骤对于后期设计来说,是十分关键。只有对前面设计过程进行正确地分析,思绪清楚,才能节省整个系统开发时间。这次试验
30、感慨最深还是老师开课时告诉我们:数据库建设是硬件、软件结合,三分技术,七分管理,十二分基础数据。设计先不说麻烦,这个管理起初让我焦头烂额,尤其是在刚开始设计时,无从下手其实我试验已经设计尽可能少表了,刚开始设计时,表很多,一对多表在整个过程中浪费了很多时间还有空间,就在好好画逻辑图,找到多个中间表和关系表联络起来,这么就只用维护这多个小表就行了,节省了不少时间。还有一个关键东西索引!索引创建我是在系统开发完成,测试阶段,依据查询该表全部SQL语句进行设计。因为数据较少,建立之间和以后,查询速度改变感觉不显著,不过,假如数据很多,就能够大大加紧查找速度。I:致谢语:老师在作业部署之初就强调要自己
31、完成,诚信应该是我们必需一直坚持着这个信念。 这多个新期多种考试,时间紧,写课设时间也相对降低了很多,不过,课设提交时间也越来越近。这个新期除了上课,我就在图书馆写课设,我课设准备时间很短,我知道假如从网上找一篇改改很轻易,不过我认为我们已经大三,这种学生认识完成一门作业感觉以后进入社会极少在能感受了,所以坚持自己动手,做完以后,也看了同宿舍女孩课设,认为自己课设真还有很多缺点,不过从中体会到了知识,管理技术,即使成品不完美,我也很欣慰,因为这个新期花很值!我要感谢黄金慧老师在我论文过程中给指导,和对于我们部分同学迟交论文放宽,还有在我们写论文过程中对我们督促。我还要感谢我同宿舍女孩帮我一起处
32、理了很多安装软件时碰到困难。 J:参考文件:1 王珊. 数据库系统概论(第四版).北京:高等教育出版社,2 PowerBuilder 7.0 帮助文件 pbgswin.pdf (在文件夹C:Program FilesSybasePowerBuilder 7.0hlp)3 Adaptive Server Anywhere 全部帮助文件(在文件夹C: Program FilesSybaseAdaptive Server Anywherewin32)4:MySQL帮助文档。5:Java帮助文档。性别转正时间进入企业时间婚姻情况编号姓名等级状态职务部门基础工资职员基础信息表编号毕业院校学历编号等级职员工作备注名称政治面貌外语情况毕业专业职员学历表工作岗位表编号出生年月毕业时间职员家庭信息表Mix编号部门表Min住址联络电话部门责任人岗位数家眷姓名和职员关系编号名称