已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学课程设计说明书目录内蒙古科技大学课程设计任务书一第一章 需求分析- 1 -1.1 引言- 1 -1.2 任务概述- 1 -1.3 数据描述- 1 -1.4 功能需求- 2 -1.5 性能需求- 2 -1.6 运行需求- 2 -1.7 任务计划- 2 -第二章 概要设计- 3 -2.1 概念模型设计(ER模型)- 3 -2.2 主要业务流程图- 3 -2.3 逻辑模型设计- 4 -2.4 物理模型设计- 6 -第三章 详细设计- 7 -3.1 创建数据库- 7 -3.2 创建表- 8 -3.3 约束的建立- 14 -3.4 插入数据- 16 -3.5 查询模块设计- 21 -3.6 修改模块设计- 25 -3.7 存储模块设计- 25 -3.8 删除模块设计- 29 -第四章 课程设计总结- 30 -附录 编程规范- 31 -参考文献- 34 -致谢- 35 -内蒙古科技大学课程设计任务书课程名称数据库原理及应用课程设计设计题目工资管理系统指导教师高永兵时间2013.12.01-2012.12.13一、教学要求1. 巩固和加深学生对数据库原理及应用基本知识的理解和掌握2. 掌握数据库原理及应用的基本技能3. 利用数据库进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用数据库原理及应用解决实际问题的能力二、设计资料及参数1、系统功能的基本要求: 员工每个工种基本工资的设定 加班津贴管理,根据加班时间和类型给予不同的加班津贴; 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资; 员工年终奖金的生成,员工的年终奖金计算公式(员工本年度的工资总和津贴的总和)/12; 企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印; 2、在数据库中至少包含一下数据表: 员工考勤情况表; 员工工种情况表,反映员工的工种、等级,基本工资等信息; 员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等; 员工基本信息表 员工月工资表。3、 设计要求及成果1. 分析课程设计题目的功能需求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。五、建议参考资料施伯乐 丁宝康 汪卫著数据库系统教程高等教育出版社王英英 张少军 刘增杰著SQL SERVER 2012从零开始学清华大学出版社第一章 需求分析1.1 引言对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。我的目标就是在于利用数据库开发软件开发一个功能实用,用户操作方便,简单明了的工资管理程序。1.2 任务概述在数据库中至少应该包含下列数据表: 员工考勤情况表; 员工工种情况表,反映员工的工种、等级,基本工资等信息; 员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等; 员工基本信息表 员工月工资表。1.3 数据描述该系统实现对工资系统管理,至少包括以下信息:用T-SQL语句完成创建数据库、数据表(至少不少于5张表,建议不多于15张表)、及各种约束(5种约束要求均有具体的体现)、添加测试数据(主表不少于3条记录、子表不少于10条记录,要求用T-SQL语句完成)、3条以上的单表查询(实现某个特定的业务功能需求)、3条以上的多表查询。1.4 功能需求 系统功能的基本要求: 员工每个工种基本工资的设定 加班津贴管理,根据加班时间和类型给予不同的加班津贴; 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资; 员工年终奖金的生成,员工的年终奖金计算公式(员工本年度的工资总和津贴的总和)/12; 企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印。1.5 性能需求本系统概述了工资管理的需求、整体结构、基本功能和数据库结构。内容包括:对普通工资管理业务中存在的一些问题的分析,对工资的数据进行查询、统计、报表打印等基本功能的分析设计和实现。重点介绍了工资管理信息系统中数据查询统计模块的分析和设计以及如何利用本系统的开发解决以往工资管理中存在的需要人工管理,进行人工统计,对工资的统计和查询都很单一、不能综合处理业务、工作效率低等问题。1.6 运行需求应用Visio2013、SQL Server2008软件1.7 任务计划1、 选择课程设计题目,分析课题的要求 2、编程 3、编程及调试 4、写课程设计报告 5、提交课程设计报告(打印稿及电子稿)第二章 概要设计2.1 概念模型设计(ER模型)图2.1 ER模型图2.2 主要业务流程图图2.2主要业务流程图2.3 逻辑模型设计 1、关系模式 员工信息表(员工编号,员工姓名,性别,出生年月,参加工作时间,所属部门,职务,婚姻状况,政治面貌,电话号码)员工出勤表(出勤编号,缺勤日期,缺勤天数,考勤工资,员工编号,月份数) 员工津贴表(津贴编号,加班时间,加班天数,津贴工资,员工编号,月份数) 员工月工资表(月工资记录,员工编号,月工资时间,基本工资,住房补贴,津贴,工会会费,水电费,住房公积金,养老保险,奖惩,总工资) 部门信息表(部门编号,部门名称,部门负责人,部门人数)基本工资表(基本工资编号,职务,基本工资)月份(月份数)2、 数据字典表1 员工信息表ygxx列 名数据类型可否为空说 明emp_novarchar(8)NOT NULL员工编号(主键)emp_namevarchar(10)NULL员工姓名sexchar(2)NULL性别birth_datechar(4)NOT NULL出生日期emp_time varchar2(6)NOT NULL参加工作时间department_id char(4)NOT NULL所属部门zhiwuvarchar(10)NOT NULL职务marryvarchar(4)NULL婚姻状况 zhengzhimm varchar(10) NULL 政治面貌 telephone char(11) NULL 电话号码表2 员工出勤表ygcq列 名数据类型可否为空说 明Chuqin_idvarchar(10)NOT NULL出勤编号kaoqin_tianshuvarchar(10) NULL缺勤天数kaoqin_gongzifloatNULL 考勤工资Queqin_datevarchar(8) NOT NULL缺勤日期yuefenshuvarchar(8)NOT NULL月份数emp_noVarchar(8)NOT NULL员工编号表3 员工津贴表ygjt列 名数据类型可否为空说 明jintiebianhaoVarchar(10)NOT NULL津贴编号jiaban_tianshuchar(2)NULL 加班天数jintie_gongzifloatNULL 津贴工资Jiaban_timevarchar(8)NOT NULL加班时间yuefenshuvarchar(8)NOT NULL月份数emp_novarchar(8)NOT NULL员工编号表4 员工月工资表ygygz列 名数据类型可否为空说 明Yuegongzijilubianhaovarchar(10)NOT NULL月工资记录jibengongzifloatNOT NULL基本工资zhufangbutiefloatNULL住房补贴jintie_gongzifloatNULL津贴gonghuihuifeifloatNULL工会会费shuidianfeifloatNULL水电费zhufanggongjinfloatNULL住房公积金yanglaobaoxianfloatNULL养老保险kaoqin_gongzifloatNULL 考勤工资ygz_totalvarchar(10)NULL总工资ygz_monthvarchar2(6)NOT NULL月工资时间emp_novarchar(8)NOT NULL员工编号表5 部门信息表bmxx列 名数据类型可否为空说 明department_id char(10)NOT NULL部门编号department_namevarchar(6) NOT NULL部门名称managervarchar(6) NULL部门负责人dep_renshu varchar(4) NULL部门人数表6 基本工资表jbgz列 名数据类型可否为空说 明jibengongzijilubianhao varchar(10)NOT NULL基本工资编号jibengongzifloat NULL基本工资emp_novarchar(8)NOT NULL员工编号zhiwu varchar(10)NOT NULL 职务2.4 物理模型设计数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。数据库的物理结构依赖于给定的计算机系统和DBMS。- 35 -第三章 详细设计3.1 创建数据库CREATE DATABASE GONGZIGUANLIXITONG ON PRIMARY(name=GONGZIGUANLIXITONG,filename=G:课设GONGZIGUNLIXITONG.mdf,size=20MB,maxsize=50MB,filegrowth=10%)log on(name=GONGZIGUANLIXITONG_log,filename=G:课设GONGZIGUANLIXITONG_log.ldf,size=15MB,maxsize=30MB,filegrowth=5%)GO图3.1 工资管理系统数据库建立图3.2 创建表USE GONGZIGUANLIXITONGcreate table ygxinxi( emp_no varchar(8) not null primary key, -员工编号 emp_name varchar(10) not null , -员工姓名 sex char(2) check (sex=男or sex=女), -性别 birth_date datetime not null, -出生日期 emp_time datetime not null, -参加工作日期 department_id char(10) not null, -所属部门 zhiwu varchar(10) not null, -职务 marry varchar(4), -婚姻状况 zhengzhimm varchar(10), -政治面貌 telephone char(11), -电话号码 constraint old check (datediff(year,birth_date,emp_time)18) ) create table month( yuefenshu varchar(12) not null primary key, -月份数 ) create table ygchuqin( chuqin_id varchar(10) not null primary key, -出勤编号 queqin_date varchar(8) not null , -缺勤日期 queqin_tianshu char(10), -缺勤天数 kaoqin_gongzi float , -考勤工资 yuefenshu varchar(12) not null , -月份数 emp_no varchar(8) not null, -员工编号 )create table ygjintie( jintiebianhao varchar(10) not null primary key, -津贴编号 jiaban_time varchar(10) not null , -加班时间 jiabantianshu char(10), -加班天数 jintie_gongzi float, -津贴工资 yuefenshu varchar(12) not null , -月份数 emp_no varchar(8) not null, -员工编号 )create table ygyuegongzi( yuegongzijilubianhao varchar(10) not null primary key, -月工资记录 emp_no varchar(8) not null , -员工编号 jibengongzi float default 1500, -基本工资 zhufangbutie float, -住房补贴 jintie_gongzi float, -津贴 gonghuihuifei float, -工会会费 shuidianfei float, -水电费 zhufanggongjijin float, -住房公积金 yanglaobaoxian float, -养老保险 ygz_month varchar(10) not null , -月工资时间 kaoqin_gongzi float, department_id char(4) not null, -考勤工资 wagecount as jibengongzi+zhufangbutie+jintie_gongzi +kaoqin_gongzi+gonghuihuifei+zhufanggongjijin+yanglaobaoxian ) create table bumenxixin( department_id char(10) not null primary key, -部门编号 department_name varchar(6) not null, -部门名称 chengyuan varchar(6), -部门成员 dep_renshu varchar(4) -部门人数)create table jibengongzi( jibengongzijilubianhao varchar(10)not null primary key,-基本工资编号 zhiwu varchar(10) not null , -职务 emp_no varchar(8) not null , jibengongzi float default 1500, -基本工资 )图3.2 创建员工信息表图图3.3 创建月份表图图3.4 创建员工出勤表图图3.5 创建员工津贴表图图3.6 创建月工资表图图3.7 创建部门信息表图图3.8 创建基本工资表图3.3 约束的建立USE GONGZIGUANLIXITONGGOALTER TABLE ygchuqinADD CONSTRAINT FK_emp_no4 FOREIGN KEY (emp_no) REFERENCES ygxinxi(emp_no)ALTER TABLE ygjintieADD CONSTRAINT FK_emp_no3 FOREIGN KEY (emp_no) REFERENCES ygxinxi(emp_no)ALTER TABLE ygjintieADD CONSTRAINT FK_yuefenshu FOREIGN KEY (yuefenshu) REFERENCES month(yuefenshu)ALTER TABLE ygyuegongziADD CONSTRAINT FK_emp_no2 FOREIGN KEY (emp_no) REFERENCES ygxinxi(emp_no)ALTER TABLE ygxinxiADD CONSTRAINT FK_department_id FOREIGN KEY (department_id) REFERENCES bumenxixin(department_id)ALTER TABLE jibengongziADD CONSTRAINT FK_emp_no1 FOREIGN KEY (emp_no) REFERENCES ygxinxi(emp_no)GO1. 外键的建立2. check约束 constraint old check (datediff(year,birth_date,emp_time)18)3. 主键约束(见建表)4. NOT NULL约束(见建表)5. Default 约束jibengongzi float default 1500, 图3.9 数据库关系图3.4 插入数据USE GONGZIGUANLIXITONGGOinsert into bumenxixin (department_id,department_name,chengyuan,dep_renshu)values(01,人事部,谢帅,20), (02,财务部,谢馨,10)insert into month (yuefenshu)values(01),(02),(03),(04),(05),(06)insert into ygxinxi (emp_no,emp_name,sex,birth_date,emp_time,department_id,zhiwu,marry,zhengzhimm,telephone)values (20130101,谢帅,男,1990-10-24,2013-1-1,01,部长,否,团员,8888168), (20130102,谢馨,女,1990-10-24,2013-1-2,02,员工,否,党员,8888169)insert into ygchuqin (chuqin_id,queqin_date,queqin_tianshu,kaoqin_gongzi,yuefenshu,emp_no)values(001,19,1,-50,02,20130101), (002,15,2,-100,05,20130101), (003,28,2,-100,05,20130101), (011,03,4,-150,02,20130102), (012,04,4,-150,02,20130102), (013,05,4,-150,02,20130102), (014,14,4,-150,02,20130102), (015,18,1,-50,05,20130102)insert into ygyuegongzi (yuegongzijilubianhao,emp_no,jibengongzi,zhufangbutie,jintie_gongzi,gonghuihuifei,shuidianfei,zhufanggongjijin,yanglaobaoxian,ygz_month,kaoqin_gongzi,department_id) values (01,20130102,1500,0,50,0,0,0,0,02,-150,02), (02,20130102,1500,0,50,0,0,0,0,05,-50,02), (03,20130101,2000,0,150,0,0,0,0,02,-150,01), (04,20130101,2000,0,50,0,0,0,0,05,-50,01)insert into (jintiebianhao,jiaban_time,jiabantianshu,jintie_gongzi,yuefenshu,emp_no)ygjintie values (01,16-21:00,3,150,02,20130101), (02,17-22:15,3,150,02,20130101), (03,18-22:00,3,150,02,20130101), (04,02-21:40,1,50,05,20130101), (05,03-23:00,1,50,02,20130102), (06,15-22:45,1,50,05,20130102) insert into jibengongzi (jibengongzijilubianhao,zhiwu,emp_no,jibengongzi) values (001,部长,20130101,2000), (002,员工,20130102,1500)图3.10 录入部门信息数据图图3.11 录入基本工资数据图图3.12 录入员工出勤数据图图3.13 录入员工津贴数据图图3.14 录入员工信息图图3.15 录入员工月工资信息图图3.16 录入月份数据图3.5 查询模块设计 1.单表查询1)部门查询select* from bumenxixin图3.17 部门信息查询图2) 员工信息查询select* from ygxinxi图3.18 员工信息查询图3) 基本工资查询select* from jibengongzi图3.19 基本工资查询图2. 多表查询1) 出勤工资查询select * from ygchuqin where kaoqin_gongzi in(select kaoqin_gongzi from ygyuegongzi where yuefenshu in(select yuefenshu from ygjintie where yuefenshu=02)图3.20 出勤工资查询2) 员工津贴查询select *from ygjintie where jintie_gongzi in(select jintie_gongzi from ygyuegongzi where emp_no in(select emp_no from jibengongzi where yuefenshu in(select yuefenshu from month where yuefenshu=05)图3.21 员工津贴查询图3) 员工月工资查询select wagecount from ygyuegongzi where kaoqin_gongzi in(select kaoqin_gongzi from ygchuqin where emp_no in(select emp_no from ygxinxi where zhiwu=部长)图3.22 员工月工资查询图3.6 修改模块设计员工信息修改select * from ygxinxi where emp_no=20130101update ygxinxiset department_id=01;select *from ygxinxi where emp_no=20130101图3.23 员工信息修改图3.7 存储模块设计1.存储过程查询员工基本信息create proc ygxx2 yg_id varchar(10)asselect * from ygxinxi where emp_no=yg_id图3.24 存储过程查询员工基本信息图2. 存储过程查询指定某个部门或全部部门的基本信息 create proc bumen2 bumen_id2 varchar(4)asselect * from bumenxixin where department_id=bumen_id2create proc bumenqasselect * from bumenxixin图3.25 存储过程查询部门信息图3.存储过程查询某个员工的工资信息create proc gzxxyg_id varchar(10)asselect * from ygyuegongziwhere emp_no=yg_id图3.26 存储过程查询员工信息图4. 汇总部门月份工资create proc gzhzmonth_year varchar(10)asselect ygz_month from ygyuegongziwhere ygz_month=month_year order by ygz_month 图3.27 汇总部门月份工资图3.8 删除模块设计1. 删除月份表 use GONGZIGUANLIXITONG go drop table month12. 删除插入数据 select *from month1; delete from month1; select *from month1;第四章 课程设计总结1.过程1)在对员工信息录入时由于不严谨发生错,后利用T-SQL语句进行修改更正。2)在插入数据时,外键约束不正确,让数据无法录入,更改后运行正常。3)在插入数据时文字长度超出数据类型的长度出现文字被截取的现象。 4)对基本的SQL语句掌握不牢固,通过查询资料后基本掌握。2.体会此系统的规划虽然已经完成,功能基本实现了目标规划一些重要功能,但由于时间仓促,所以只满足了基本要求,并没有过多考虑到系统的技术含量,在这次系统的开发过程中学到了好多知识,而且更加深入,而且更加熟练地掌握了Microsoft SQL Server数据库,锻炼了我的项目开发能力,使我对软件工程的知识有了更深刻的理解、更贴切的感受。在这过程中有许多不顺利的时候,然后我就找同学讨论,实在讨论不出来,就到图书馆、上网查资料培养了自己查资料和同学讨论的好习惯,这些对将来走上工作岗位是有很大的帮助的,相信我以后工作时在这些方面会做的更好。3.建议实践上机时间过少,限制了我们做出更完善的数据库,希望能有更充足的实践时间。4.回顾:通过这次的数据库课程设计,对许多原来不太清楚的知识点有了更进一步的了解,写代码的时候要细心,注意代码中的一切标点符号都要用英文,创建表插入记录时新插入的记录要加单引号,插入记录时新插入的元组顺序与属性的顺序要一致,常见存储过程时,需要用到变量的要先声明变量,创建了外键约束时,要先对不被约束的表进行操作。附录 编程规范1 总则1.1目的 为了规范单位平台开发过程中SQL语句的编写工作,提高SQL语句共享,避免语义或语句相同的SQL语句重复解析,优化SQL查询,培养开发人员良好的代码风格,参照工作中的体会和常用代码规范,编写此规范。1.2基本原则 以大小写敏感编写SQL语句。尽量使用Unicode 数据类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化SQL查询代替语句拼接SQL查询。禁止使用拼音+英语的方式来命名SQL对象或变量。尽量使用存储过程代替SQL语句。1.3基本规范 采用Pascal样式或Camel样式命名数据库对象。大写T-SQL语言的所有关键字,谓词和系统函数。2 命名规范 在一般情况下,采用Pascal样式或Camel样式命名数据库对象,使在开发基于数据库应用程序的时候通过ORM工具生成的数据访问代码不需要调整就符合程序开发语言(比如C#)命名规范。 另外,关系型数据库同Xml结合得越来越紧密,规范的命名越来越重要。3举例说明 3.1大小写 大写T-SQL 语言的所有关键字,谓词和系统函数。变量名称及游标名称使用Pascal样式。数据类型定义使用全部小写。 示例:DECLARE LastName nvarchar(32);3.2使用分号“;” 使用“;”作为 Transact-SQL 语句终止符。虽然分号不是必需的,但使用它是一种好的习惯。 示例: USE AdventureWorks; GO DECLARE find varchar(30); SET find = Man%; SELECT LastName, FirstName, Phone FROM Person.Contact WHERE LastName LIKE find;3.3存储格式 尽量采用Unicode数据存储格式,提高可移植性和兼容性,实际应用中尽量使用nchar、nvarchar、nte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创业论坛1-5单元选择及判断题
- 参加社会实践的活动总结模板(28篇)
- 参加公文写作培训班的心得体会(3篇)
- 初中语文古诗词赏析六册汇编(素材)
- 初中课外文言文阅读八年级
- 二甲双胍预防糖尿病前期进展的循证证据
- 房地产财务管理方面论文财务管理方面的论文
- 《英语专业论文写作规范》
- 企业思想政治工作存在的问题以及对策思考
- 北京林业大学研究生学位论文格式的统一要求
- 江苏省盐城市龙冈共同体市级名校2026届中考冲刺卷物理试题含解析
- 2025年总助面试题目及答案
- GB/T 16271-2025钢丝绳吊索插编索扣
- 电力调度考试题库及答案
- 佳明心率运动腕表225中文说明书
- 渝20Q01 建设工程施工现场围挡及大门标准图集(2020版)DJBT50-133
- 急性心梗诊疗(2025指南)解读课件
- 2024-2025学年北京市西城区人教版六年级上册期末测试数学试卷
- 高考小说阅读各类题型规范答题技巧
- 检查检验结果互认知识培训考核试题
- 2025年外研版七年级语文上册阶段测试试卷含答案
评论
0/150
提交评论