数据库员工薪资管理系统课设.docx
《数据库员工薪资管理系统课设.docx》由会员分享,可在线阅读,更多相关《数据库员工薪资管理系统课设.docx(14页珍藏版)》请在冰豆网上搜索。
数据库员工薪资管理系统课设
课程设计(论文)任务书
学院专业班
一、课程设计(论文)题目员工薪资管理系统
二、课程设计(论文)工作自2016年6月13日起至2016年6月17日止
三、课程设计(论文)地点:
软件工程实训中心
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)巩固和加深对数据库基本知识的理解,提高综合运用课程知识的能力。
(2)使学生巩固所学的理论基础知识的理解,掌握数据库设计的全过程及技术与方法。
(3)培养学生编制软件文档及数据库设计的能力,提高学生独立分析问题、解决问题的能力,锻炼和加强学生的动手能力。
使学生掌握使用数据库各种设计工具和检索文献的能力。
2.课程设计的任务及要求
(1)根据选题任务要求,收集并查询相关文献资料,明确系统需求;通过对系统的功能分析和数据分析进行系统的需求分析设计,完成业务流程图、数据流图(DFD图)及数据字典(DD)等阶段性成果;
(2)数据库的概念结构设计,完成基本全局E-R图的设计并体现设计过程;
(3)数据库的逻辑结构设计,完成数据库关系模式的设计及优化;
(4)数据库的物理结构设计,完成数据库实施的所有sql脚本的编写及索引文件的创建;完成安全性控制及完整性约束;
(5)数据库的实施;
(6)特别要求自己独立完成;
2)创新要求:
在基本要求达到后,可进行创新设计,如完善的功能、友好的人机界面。
3)课程设计论文编写要求
(1)要按照书稿的规格打印与写课程设计报告书;
(2)报告包括目录、绪论、正文、小结、参考文献、附录等;
(3)课程设计报告装订按学校的统一要求完成;
4)课程设计进度安排
内容天数地点
构思及收集资料1图书馆
数据库设计3实验室
撰写报告1图书馆、实验室
学生签名:
2016年6月13日
课程设计(论文)评审意见
(1)考勤(20分):
优( )、良( )、中( )、一般( )、差( );
(2)设计内容(40分):
优( )、良( )、中( )、一般( )、差( );
(3)答辩 (25分):
优( )、良( )、中( )、一般( )、差( );
(4)文档格式规范整齐(15分)优( )、良( )、中( )、一般( )、差( );
(5)任何抄袭成绩一律归零;
评阅人:
职称:
讲师
2016年6月17日
一绪论
某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员;该单位下设4个科室,即经理室、财务科、技术科和销售科;
工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除;每个员工的基本资料有姓名、性别、年龄、部门和职务(如经理、科长、工程师、销售员等);每月个人的最高工资不超过5000元,工资按月发放,实际发放的工资金额为工资减去扣除。
二需求分析
1.员工管理系统的分析
(1)员工的部门不同,领去的基本工资也不同。
(2)同一部门的员工,职务不同,工资也不同。
(3)工资由基本工资,福利补贴和奖励工资组成,失业保险和住房公积金在工资中扣除。
(4)每个员工的基本资料有姓名、性别、年龄、单位、参加工作时间和职务(如经理、主任、科长、工程师、办事员和工人等)。
(5)每月个人的最高工资不超过5000元。
工资每月按部门发放,并根据本月考勤有所扣减。
2.处理对象
系统要处理的对象包括部门,员工,工资,考勤,职务等五个对象。
(1)部门:
包括经理,科长,工程师,销售员四个部门
(2)员工:
包括姓名、性别、年龄、部门和职务四个属性
(3)工资:
包括基本工资、福利补贴和奖励工资构成,失业保险和住房公积金,病假扣款,事假扣款和其他扣款以及应发工资,实发工资。
(4)考勤:
包括姓名,正常天数,迟到天数,早退天数,旷工天数以及早退天数。
(5)职务:
包括职务名称以及职务人数。
另外本系统设计员工工号并以此为主键。
三概要设计
1.功能处理要求
(1)实现按照科室录入个人的基本资料、工资和扣除金额的数据。
(2)计算个人的实际发放工资。
(3)根据日考勤统计月工资扣款
(4)按科室、职务分类统计人数和工资金额。
(5)实现分类查询。
(6)能够删除辞职人员的数据。
2.系统结构图
四数据库完整性设计
员工实体E-R图
职务E-R图
工资实体E-R图
考勤实体E-R图
部门实体E-R图
五物理设计
员工信息表:
工资表:
考勤表:
职务表:
部门表:
六数据库实施
CREATEDATABASE员工工资管理库
ONPRIMARY(
NAME=员工工资管理库,
FILENAME='D:
\员工工资管理库_data.mdf',
SIZE=4MB,
MAXSIZE=10MB,
FILEGROWTH=2MB
)
LOGON(NAME='工资管理库_log',
FILENAME='D:
\工资管理库.ldf',
SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)
createtable部门(
部门名称CHAR(50)NOTNULLprimarykey,
部门负责人CHAR(50)NOTNULL,
部门人数CHAR(50)
);
createtable员工(
工号CHAR(50)NOTNULLprimarykey,
姓名CHAR(50)NOTNULL,
性别CHAR
(2)DEFAULT'男'CHECK(性别IN('男','女')),
年龄CHAR(10)NOTNULL,
部门CHAR(50)NOTNULL,
职务CHAR(50)
);
CREATETABLE工资(
工号char(50)notnullprimarykey,
工资年月char(50)notnull,
基本工资decimalnotnull,
福利补贴decimal,
奖励工资decimal,
失业保险decimal,
住房公积金decimal,
病假扣款decimal,
事假扣款decimal,
其他扣款decimal,
应发工资decimal,
实发工资decimalnotnull,
foreignkey(工号)references员工(工号));
altertable工资
addconstraintCK_gonghocheck(工号>0);
altertable工资
addconstraintCK_gongzicheck(实发工资<=5000);
CREATETABLE考勤(
工号char(50)notnullprimarykey,
姓名char(50)notnull,
正常天数char(50)notnull,
旷工天数char(50),
迟到天数char(50),
早退天数char(50),
考勤扣款char(50)notnull
);
insertinto部门values('财务部','王玲','20')
insertinto部门values('生产部','丽丽','400')
insertinto部门values('董事会','李四','10')
insertinto部门values('后勤部','二子','40')
insertinto部门values('公关部','小丽','15')
insertinto部门values('行政部','琪琪','20')
insertinto部门values('企划部','小新','15')
insertinto部门values('销售部','小海','10')
insertinto部门values('人力资源部','丽子','5')
insertinto员工values('1001','李民','男','25','天津','111000101','已婚','专科','销售部','内销','4','职工')
insertinto员工values('1002','李四','男','50','上海','111000102','已婚','本科','董事长','null','30','董事长')
insertinto员工values('1003','丽丽','女','25','北京','111000103','未婚','本科','生产部','电工','8','生产部部长')
insertinto员工values('1004','王玲','男','35','东京','111000104','已婚','研究生','财务部','预算','6','财务部部长')
insertinto员工values('1005','二子','女','30','江西','111000105','未婚','本科','后勤部','车工','7','后勤部部长')
insertinto员工values('1006','小丽','女','26','苏州','111000106','已婚','本科','公关部','null','3','公关部部长')
insertinto员工values('1007','小新','男','27','扬州','111000107','已婚','研究生','企划部','主管','2','企划部部长')
insertinto员工values('1008','琪琪','女','24','安徽','111000108','未婚','本科','行政部','null','8','行政部部长')
insertinto员工values('1009','小海','男','23','南京','111000109','已婚','专科','销售部','主管','4','销售部部长')
insertinto员工values('1010','丽子','女','22','江西','111000110','未婚','本科','人力资源部','null','4','人力资源部部长')
insertinto员工values('1011','小美','女','26','海南','111000111','已婚','本科','公关部','前台','5','职工')
insertinto员工values('1012','小韩','男','20','山东','111000112','离异','本科','财务部','融资','5','出纳')
insertinto工资values('1001','2013-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')
insertinto工资values('1002','2013-12','10000','600','100','5','25','2','null','0','0','0','15000','20000')
insertinto工资values('1003','2013-12','4000','500','30','2','30','4','核对','50','50','100','5000','4800')
insertinto工资values('1004','2013-12','3500','500','30','2','30','4','加急','50','50','100','5000','4800')
insertinto工资values('1005','2013-12','4000','500','30','2','30','4','加急','50','50','100','5000','4800')
insertinto工资values('1006','2013-12','4000','500','30','2','30','4','加急','50','50','100','5000','4800')
insertinto工资values('1007','2013-12','3500','500','30','2','30','4','审核','50','50','100','5200','5000')
insertinto工资values('1008','2013-12','3500','500','30','2','30','4','加急','50','50','100','5400','5200')
insertinto工资values('1009','2013-12','3500','500','30','2','30','4','审核','50','50','100','5000','4800')
insertinto工资values('1010','2013-12','3500','500','30','2','30','4','加急','50','50','100','4800','4300')
insertinto工资values('1011','2013-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')
insertinto工资values('1012','2013-12','2500','500','25','2','15','4','加急','50','50','100','3500','3400')
insertinto员工登陆密码values('1001','1101')
insertinto员工登陆密码values('1002','1102')
insertinto员工登陆密码values('1003','1103')
insertinto员工登陆密码values('1004','1104')
insertinto员工登陆密码values('1005','1105')
insertinto员工登陆密码values('1006','1106')
insertinto员工登陆密码values('1007','1107')
insertinto员工登陆密码values('1008','1108')
insertinto员工登陆密码values('1009','1109')
insertinto员工登陆密码values('1010','1110')
insertinto员工登陆密码values('1011','1111')
insertinto员工登陆密码values('1012','1112')
insertinto工龄工资values('1','3000')
insertinto工龄工资values('2','4000')
insertinto工龄工资values('3','5000')
insertinto工龄工资values('4','6000')
insertinto工龄工资values('5','7000')
insertinto工龄工资values('6','8000')
小结
参考文献
[1]王,萨.《数据库系统概论》高等教育出版社
[2]
附录
通过一周时间的努力,终于完成了本次数据库课程设计,这次课程设计让我学到了很多东西,比如对整体结构的设计,对细节的把握以及对全局的掌控等。
经过几天的自学、查阅书籍、自我摸索及实践,让我掌握了数据库设计的基本思想,也学会了对数据库的基本使用。
同时我也对有了更深入的了解,对事件驱动的编程机制有了更熟练的运用。
要做一个项目,首先要学会根据实际的问题抽象出概念模型和系统中各个实体的E-R模型;然后将其进行转化为与之相应的关系模型;再由此模型进行数据库的设计以及数据库的检测;有了这几道工序作铺垫,才能够尽善尽美地去编写程序代码来实现系统具体的功能。
总之,这次课程设计让我收获颇多,相信这对于我今后工作和学习上的帮助也是不可估量的。
本系统实现的功能有查询、插入、修改、删除等,这就要求我能够熟练掌握和使用数据库的操作和使用,另外,数据得完整性和安全性也是本次设计得一个重点和难点,如果不能做好,那么这个系统也就相应的失去它的优势。
在本次设计过程中,我也遇到了一些问题,毕竟我是首次设计这种系统,经验不足,还有很多设计的方法和技巧没有掌握,但是我通过查询资料和请教别人,终于把遇到得问题解决了。
本次设计使我获益匪浅,不仅使我对数据库的知识更加熟练,掌握得更加牢固,为今后的进一步学习打下了坚实的基础,还让我学会了更多的设计方法和技巧,使我的设计能力有了进一步提高。