版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上课程设计说明书课程设计名称 数据库原理课程设计 专 业 计算机科学与技术 班 级 学生姓名 唐作鹏 指导教师 姚庆安 2017 年 1 月 9 日课 程 设 计 任 务 书课程设计题目:中小型企业工资管理的设计与实现起止日期:2017.1.92017.1. 13设计地点:计算机学院实验室主要业务描述:要求设计一套中小型企业工资管理方案,其中应具有一定的人事档案管理功能。在考虑具体中小型企业工资管理的业务处理过程中,还需要重点考虑如下业务处理过程:(1)工资管理系统是企业进行管理的不可缺少的一部分,它是建立在人事档案系统之上的,其职能部门是财务处和会计室。(2)通过对职
2、工建立人事档案,根据其考勤情况以及相应的工资级别,算出其相应的工资。为了减少输入帐目时的错误,可以根据职工的考勤、职务、部门和各种税费自动求出工资。(3)为了便于企业领导掌握本企业的工资信息,在系统中应加入各种查询功能,包括个人信息、职工工资、本企业内某一个月或某一部门的工资情况查询,系统应能输出各类统计报表。设计要求:1、 根据该业务过程示意图绘制数据流图、画出E-R图(属性按自己的理解设定,但一定要有员工基本信息、工资编号、发放月份、应发工资、实发工资等信息);2、 再将其转换成关系模式(要求达到3NF);写出创建各表的SQL语句(要含主键、外部键及其它的完整性定义),并指出各表应建哪些索
3、引信息。注:此任务书由指导教师在课程设计前填写,发给学生作为本课程设计的依据。课程设计成绩考核表学院计算机科学与工程专业计算机科学与技术 班级 学生姓名 唐作鹏课程名称:数据库原理课程设计课程设计题目:中小型企业工资管理的设计与实现考 核 项 目满分值得分1.独立完成设计任务202.设计方案、说明书、图纸、程序、计算等完成质量303.创新与发挥104.答辩(口试)40合计得分成绩指导教师签字几点说明1. 此表由指导教师进行课程设计成绩评定时填写。2. 课程设计成绩根据学生各项考核最后得分,按“优”、“良”、“中”、“及格”、“不及格”五级评定。其中,90分以上为“优”。8089分为“良”。70
4、79分为“中”;6069分为“及格”;60分以下为“不及格”。3. 课程设计结束后,此表由指导教师放入课程设计资料袋,送承担课程的教研室存档。2017 年 1 月 13 日题目:中小型企业工资管理的设计与实现一、问题描述:设计一套中小型企业工资管理方案,其中应具有一定的人事档案管理功能。在考虑具体中小型企业工资管理的业务处理过程中,还需要重点考虑如下业务处理过程:(1)工资管理系统是建立在人事档案系统之上的,职能部门是财务处和会计室。(2)通过对职工建立人事档案,根据其考勤情况以及相应的工资级别,算出其相应的工资。可以根据职工的考勤、职务、部门和各种税费自动求出工资(3)为了便于企业领导掌握本
5、企业的工资信息,在系统中应加入各种查询功能,包括个人信息、职工工资、本企业内某一个月或某一部门的工资情况查询,系统应能输出各类统计报表。二、需求分析:数据流图:数据字典:三、概念结构设计:局部E-R图:职工属性:部门属性:考勤属性:工资属性:每日情况属性:全局E-R图:用到的工具:E-R图四、逻辑结构设计:初始的关系模式:职工:E(Eid, Ename, age, sex, job, manage_id, department_id) 工资:S(Sid, Sshould, Sreally, give_month, bonus_pct, Eid) 部门:D(Did, Dname, manage_
6、id) 考勤:C(Cid, late_times, leave_times, vacate_times, Eid, checking_date) 每日情况:Daily(daily_id, daily_date, should_time, really_time, Cid)关系模式的规范化处理: 因为没有传递函数依赖和完全函数依赖,所以是第三范式逻辑结构: 职工表: 工资表:部门表:考勤表:每日情况表:5、 物理结构设计:Employees表:CREATE TABLE employees (employee_id VARCHAR(10) NOT NULL COMMENT primary key,
7、manage_id VARCHAR(10) NOT NULL COMMENT foreign key,department_id VARCHAR(10) NULL DEFAULT NULL COMMENT foreign key,employee_name VARCHAR(10) NOT NULL COMMENT NOT NULL,sex TINYINT(2) NOT NULL DEFAULT 1 COMMENT 1表示男,2表示女,age INT(10) NULL DEFAULT NULL COMMENT 大于0,job VARCHAR(10) NOT NULL COMMENT 职务,PRI
8、MARY KEY (employee_id),INDEX FK_employees_departments (department_id),INDEX FK_employees_employees (manage_id),CONSTRAINT FK_employees_departments FOREIGN KEY (department_id) REFERENCES departments (department_id),CONSTRAINT FK_employees_employees FOREIGN KEY (manage_id) REFERENCES employees (employ
9、ee_id)COMMENT=职工表COLLATE=utf8_general_ciENGINE=InnoDB;Departments表:CREATE TABLE departments (department_id VARCHAR(10) NOT NULL COMMENT primary key,manage_id VARCHAR(10) NULL DEFAULT NULL COMMENT foreign key,department_name VARCHAR(10) NULL DEFAULT NULL,PRIMARY KEY (department_id),INDEX FK_departmen
10、ts_employees (manage_id),CONSTRAINT FK_departments_employees FOREIGN KEY (manage_id) REFERENCES employees (employee_id)COMMENT=部门COLLATE=utf8_general_ciENGINE=InnoDB;Checking表:CREATE TABLE checking (checking_id VARCHAR(10) NOT NULL COMMENT primary key,employee_id VARCHAR(10) NOT NULL COMMENT foreign
11、 key,vacate_times INT(2) NULL DEFAULT NULL,late_times INT(2) NULL DEFAULT NULL,leave_times INT(2) NULL DEFAULT NULL,checking_date DATE NULL DEFAULT NULL,PRIMARY KEY (checking_id),INDEX FK_checking_employees (employee_id),CONSTRAINT FK_checking_employees FOREIGN KEY (employee_id) REFERENCES employees
12、 (employee_id)COMMENT=考勤COLLATE=utf8_general_ciENGINE=InnoDB;Daily_satiation表:CREATE TABLE daily_situation (daily_id VARCHAR(10) NOT NULL COMMENT primary key,checking_id VARCHAR(10) NULL DEFAULT NULL COMMENT foreign key,daily_date DATE NULL DEFAULT NULL,should_time DATETIME NULL DEFAULT NULL,really_
13、time DATETIME NULL DEFAULT NULL,PRIMARY KEY (daily_id),INDEX FK_daily_situation_checking (checking_id),CONSTRAINT FK_daily_situation_checking FOREIGN KEY (checking_id) REFERENCES checking (checking_id)COMMENT=每日情况COLLATE=utf8_general_ciENGINE=InnoDB;Salary表:CREATE TABLE salary (salary_id VARCHAR(10)
14、 NOT NULL COMMENT primary key,employee_id VARCHAR(10) NOT NULL COMMENT foreign key,bonus_pct DOUBLE NOT NULL DEFAULT 0.1 COMMENT 奖金率,give_date DATE NULL DEFAULT NULL,should_salary INT(11) NULL DEFAULT NULL COMMENT 大于0,really_salary INT(11) NULL DEFAULT NULL COMMENT 大于0,PRIMARY KEY (salary_id),INDEX
15、FK_salary_employees (employee_id),CONSTRAINT FK_salary_employees FOREIGN KEY (employee_id) REFERENCES employees (employee_id)COMMENT=工资COLLATE=utf8_general_ciENGINE=InnoDB;触发器设计: (1)每日情况触发器:当应到时间实到时间时,迟到次数自动加1CREATE DEFINER=rootlocalhost TRIGGER daily_situation_after_update AFTER UPDATE ON daily_sit
16、uation FOR EACH ROW BEGINUPDATE checking c,daily_situation dSET c.late_times = c.late_times + 1WHERE d.should_time d.really_time and d.checking_id = c.checking_id and date_format(d.should_time,%Y-%m-%d)=date_format(d.really_time,%Y-%m-%d);END功能演示:第一个人1101的11月份考勤情况中,起初没有迟到现把他的第一天情况改成迟到触发器响应,自动修改check
17、ing表,使得第一个人的迟到次数加1(2) 考勤_工资触发器:实发工资=应发工资+应发工资*奖金率-迟到次数*50-早退次数*20-请假次数*10CREATE DEFINER=rootlocalhost TRIGGER checking_salary AFTER UPDATE ON checking FOR EACH ROW BEGINupdate salary s,checking cset really_salary = 0.9*(should_salary+should_salary*bonus_pct-(select late_times from checking c where s
18、.employee_id = c.employee_id)*50- (select leave_times from checking c where s.employee_id = c.employee_id)*20 - (select vacate_times from checking c where s.employee_id = c.employee_id)*10)where s.give_date = c.checking_date;END功能演示:第一个人在11月份的考核中,迟到了一次工资=0.9*(10000+10000*0.11-50)=9945现更改李四的考勤表,迟到改为5
19、次,早退改为3次李四的工资变为:工资=(10000+10000*0.11-50*5-20*3)=9711六、程序:个人信息查询:在职工表中右键简历视图:SELECT e1.employee_id 员工编号,e1.employee_name 姓名,e1.sex 性别,e1.age 年龄,e1.job 工作,department_name 部门,e2.employee_name 经理FROM employees e1,employees e2,departments dWHERE e1.manage_id = e2.employee_id and e1.department_id = d.depa
20、rtment_id 职工工资查询:在工资表中右键新建视图,输入查询语句 (1)查询11月份的工资SELECT e.employee_id 员工编号,employee_name 姓名,job,department_name 部门,should_salary 应发工资,really_salary 实发工资,give_date 发放时间FROM employees e,departments d,salary sWHERE e.department_id = d.department_id and e.employee_id = s.employee_id and date_format(s.giv
21、e_date,%Y-%m-%d) = 2016-11-30 (2) 查询行政部的工资在我录入数据的时候,设定了以下规则:部门ID 部门编号 部门经理 奖金率 应发工资 101 行政部 行政经理 11% 10000 102 财务部 财务总监 14% 25000 103 策划部 策划总监 12% 18000 104 研发部 研发总监 15% 30000 105 公关部 公关经理 11% 15000 106 市场部 产品经理 13% 20000SELECT e.employee_id 员工编号,employee_name 姓名,job,department_name 部门,should_salary
22、 应发工资,really_salary 实发工资,give_date 发放时间FROM employees e,departments d,salary sWHERE e.department_id = d.department_id and e.employee_id = s.employee_id and date_format(s.give_date,%Y-%m-%d) = 2016-11-15 and d.department_id = 101 考勤表考勤表右键新建视图,输入查询信息SELECT e.employee_id 员工编号,employee_name 姓名,departmen
23、t_name 部门,late_times 迟到次数,leave_times 早退次数,vacate_times 请假次数,checking_date 日期FROM employees e,departments d,checking cWHERE e.department_id = d.department_id and e.employee_id = c.employee_id 七、设计小结:(1)课程设计的总过程:1看懂问题描述,分析要实现哪些功能2根据问题描述,画出数据流图,写出详细的数据字典找出每个实体,分析每个实体的属性,以及实体之间的联系并画出E-R图3从E-R图中找到实体属性之后,建立最初的关系模式,并将其进行规范化处理,处理成3NF的形式4创建各表一、 根据E-R图,创建各表(包括职工表,部门表,工资表,考勤表,每日情况表),在每个表里添加它们的属性二、 再将表和表之间的联系添加到表中例如:(1)部门和职工是一对多的关系,所以将部门的ID加到职工表中 (2)职工和考勤表是一对一的关系,所以把职工的ID加到考勤表中,或者将考勤表的ID加到职工表中。(为了体现规范化,将这个联系的ID放在原表中的ID之后)三、 为每一个表中的属性设置主码(一般为其各自的I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超市岗位工作规划
- 药店加盟发展规划
- 平面设计大学生实习报告(集合10篇)
- 六年级英语下学期教学工作总结
- 教师学习心得体会范文锦集4篇
- 不忘初心匠心筑梦主题演讲稿7篇
- 重阳节主题演讲稿集锦15篇
- 毕业生的求职信15篇
- 顶岗实习报告模板锦集七篇
- 识字教案模板集合7篇
- 《学科建设》课件
- 2024-2025学年 数学二年级上册冀教版期末测试卷(含答案)
- 中建医院工程深基坑施工方案
- 期末测试卷(试题)-2024-2025学年四年级上册数学沪教版
- 军事理论(2024年版)学习通超星期末考试答案章节答案2024年
- MOOC 儿科学-四川大学 中国大学慕课答案
- 迈普1800路由器使用及调试手册
- 工会选举选票
- 大豆杂交育种技术ppt课件
- 工程勘察设计资质申请表填表说明
- 宫颈癌筛查健康宣讲PPT优秀课件
评论
0/150
提交评论