网络数据库(工资管理系统设计)项目设计报告_第1页
网络数据库(工资管理系统设计)项目设计报告_第2页
网络数据库(工资管理系统设计)项目设计报告_第3页
网络数据库(工资管理系统设计)项目设计报告_第4页
网络数据库(工资管理系统设计)项目设计报告_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网络数据库课程项目设计课程名称设计题目专业班级网络数据库薪水管理系统计应0602班学生姓名XXX学号18指导教师YYYYQQQQ年P月R日目录一、项目名称:薪水管理系统设计1二、系统功能的基本要求1三、课程设计的目的和意义1四、应掌握的知识点1五、应训练的能力点1六、数据库设计内容.2().2.2341.4.2.5七、数据库操作推行与结果数据库对象的设计.5().5.6.7.78991.92.93.11八、总结.12九、参照文件.13一、项目名称:薪水管理系统设计二、系统功能的基本要求:职工每个工种基本薪水的设定;加班津贴管理,依照加班时间和种类恩赐不同样的加班津贴;依照不同样工种的基本薪水情

2、况、职工的考勤情况产生职工的每个月的月薪水;职工年关奖金的生成,职工的年关奖金计算公式(职工今年度的薪水总和津贴的总和)/12;企业薪水报表。能够盘问单个职工的薪水情况、每个部门的薪水情况、按月的薪水统计。三、课程设计的目的和意义网络数据库是实践性授课环节之一,是网络数据库课程的辅助授课课程。经过课程设计,使学生掌握数据库的基本看法,结合实质的操作和设计,牢固课堂授课内容,使学生掌握数据库系统的基本看法、原理和技术,将理论与实质相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上增强学生的实践意识、提高其

3、实质着手能力和创新能力。实训目的:认识数据库系统的理论掌握数据库设计的基本方法,熟悉数据库设计的步骤;经过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高着手能力,提高解析问题和解决问题的能力学习基本数据库编程方法迅速追踪数据库系统软件的新技术及市场应用动向。四、应掌握的知识点数据库基根源理关系数据库的设计方法、设计思路初步掌握一种关系数据库语言五、应训练的能力点SQLServer2000的操作与使用数据库的看法设计与逻辑设计数据库的建立与管理、数据表的建立与操作SQL盘问语言的使用与编程设计和开发一个数据库应用系统的数据库设计部分六、数据库设计内容1(一)需求解析本系统要求实

4、现以下主要功能:1.数据录入功能主要任务是对各样薪水信息进行平时的管理,如薪水信息的输入、盘问、更正、增加、删除,迅速正确地完成各样薪水信息的统计计算和汇总,迅速打印出报表。2.数据盘问功能系统需要供应予下盘问功能:职工考勤情况职工工种情况,反响职工的工种、等级,岗位薪水等信息职工津贴信息情况,反响职工的加班时间,加班种类、加班天数、岗位补贴情况等职工基本信息情况5)职工月薪水情况:年,月,职工号,姓名,部门名,基本薪水,病假扣款,事假扣款,.应发薪水,实发薪水3.数据统计功能统计职工年关奖金统计每部门月薪水情况(二)看法结构设计解析前面的系统功能要求,需要一个表来储藏和管理职工信息,使系统能

5、够接受职工原始的各项数据,以实现数据录入、盘问或统计职工信息等功能。职工是本系统的第一个实体。为了能实现盘问和统计部门内职工情况等功能,必定有一个表来储藏和管理所有部门的信息。部门是本系统的第二个实体。薪水是以职工工作情况来拟定的。需要建立一个表来记录各样薪水、津贴、扣款的信息。它主要为各样盘问和统计功能供应薪水数据。薪水是第3个实体。据此能够绘出薪水管理系统数据库的E-R图以下:实体属性列表以下:2实体职工部门薪水属性工号姓名性别年龄籍贯学历工种工龄职务等级部门名称部门编号部门名称部门负责人部门人数工号岗位薪水岗位补贴出勤天数加班工时加班薪水加班天数加班种类病假扣款事假扣款其他扣款应发薪水实

6、发薪水部门名称(三)逻辑结构设计将数据库的看法模型变换为关系模型:实体变换成的关系模式有:职工信息(工号,姓名,性别,年龄,籍贯,学历,工种,工龄,职务等级,部门名称)关系-工作(工号,部门名称)部门(部门编号,部门名称,部门负责人,部门人数)关系-获得(工号,姓名)薪水(工号,岗位薪水,岗位补贴,出勤天数,加班工时,加班薪水,加班天数,加班种类,病假扣除,事假扣除,其他扣除,应发薪水,实发薪水,部门名称)因为,职工与薪水是1:N的关系,所以各关系模式为:职工信息(工号,姓名,性别,年龄,籍贯,学历,工种,工龄,职务等级,部门名称)部门(部门编号,部门名称,部门负责人,部门人数)3薪水(工号,

7、岗位薪水,岗位补贴,出勤天数,加班工时,加班薪水,加班天数,加班种类,病假扣除,事假扣除,其他扣除,应发薪水,实发薪水,部门名称)带下划线的属性为各关系模式的外码,字体为粗体的属性为各关系模式的主码。关系规范式:薪水管理系统1NF每个属性均不能再分(四)数据库与数据表设计物理结构设计在SQL数据库中需要建立3个数据表:职工信息数据表、部门数据表和薪水数据表。1.数据库与数据表设计职工信息数据表定义其中,“工号”是表的主键,独一表记。“部门名称”是外键。“工号”将记录职工的编号,在职工信息表中增加这一列时,诚然增加了数据冗余,但能够在盘问每个职工信息时,提高系统的性能。因为职工信息表的记录数相对

8、固定,对照之下,增加这个冗余的列对于整个系统来说是有利的。经过它,系统将引用到薪水信息。此表取名为“职工信息”部门数据表定义其中,部门名称是该表的主键,独一表记一个部门。此表取名为“部门”薪水数据表定义4其中,“工号”作为该表的主键,独一表记,保证客房信息表数据的参照完满性。此表表取名为“薪水”依照上面三个数据表的设计,可执行下面的步骤创办数据表1)打开企业管理器,在当地服务器上创办新的数据库“薪水管理库”2)创办表职工信息、部门、薪水2.数据完满性设计1)给每个表推行主键拘束。主键拘束、非空值拘束职工:工号为主键,所以此项非空部门:部门名称为主键,所以此项非空薪水:工号为主键,所以此项非空2

9、)推行CHECK拘束职工表中建立一个检查拘束,即职工性别不是男就是女CHECK(性别IN(男,女)3)外键拘束职工信息表中,部门名称为外键。工号为主键薪水FOREIGNKEY(部门名称)REFERENCES部门(部门名称)经过此键建立3个表的联系4)独一拘束每个表的主键需定义为独一性:对于薪水表,因为工号是主键,联系着职工表,所以建立独一性altertable薪水addconstraintUQ_工号unique(工号)对于职工表,职工的工号、部门名称都是用于鉴别职工身份,所以建立独一拘束altertable职工addconstraintUQ_工号unique(工号)七、数据库操作推行与结果数据

10、库对象的设计(一)建数据库薪水管理库5IFEXISTS(SELECT*FROMsysdatabasesWHEREname=薪水管理库)dropdatabase薪水管理库GOCREATEDATABASE薪水管理库ONPRIMARY(NAME=薪水管理库,薪水管理库_data.mdf,SIZE=4MB,MAXSIZE=6MB,FILEGROWTH=2MB)LOGON(NAME=薪水管理库_log,薪水管理库.ldf,SIZE=1MB,MAXSIZE=25MB,FILEGROWTH=10%)(二)建表职工信息表、部门信息表、薪水信息表IFEXISTS(SELECT*FROMsysobjectsWHE

11、REname=职工)DROPTABLE职工GOcreatetable职工信息(工号intNOTNULLprimarykey,姓名VARCHAR(50)NOTNULL,性别CHAR(2)DEFAULT男CHECK(性别IN(男,女),年龄intNOTNULL,籍贯VARCHAR(50)NOTNULL,学历VARCHAR(50),工种VARCHAR(50),工龄VARCHAR(50)NOTNULL,职务等级VARCHAR(50),部门名称char(10)NOTNULLforeignkeyreferences部门(部门名称)GOIFEXISTS(SELECT*FROMsysobjectsWHEREn

12、ame=部门)DROPTABLE部门GOcreatetable部门(部门编号int,部门名称char(10)primarykey,6部门负责人VARCHAR(50)NOTNULL,部门人数VARCHAR(50)GOIFEXISTS(SELECT*FROMsysobjectsWHEREname=薪水)DROPTABLE薪水GOCREATETABLE薪水(工号intNOTNULLprimarykey,岗位薪水decimalnotnull,岗位补贴decimal,出勤天数decimalnotnull,加班工时decimal,加班薪水decimal,加班天数decimal,加班种类varchar(50

13、),病假扣款decimal,事假扣款decimal,其他扣款decimal,应发薪水decimalnotnull,实发薪水decimalnotnull,部门名称char(10)NOTNULLforeignkeyreferences部门(部门名称)GO(三)视图盘问职工薪水情况建立一个视图,反响职工姓名及薪水情况。CREATEVIEW职工信息_薪水ASSELECT职工信息.姓名,薪水.*FROM职工信息,薪水WHERE职工信息.工号=薪水.工号(四)储藏过程指定职工薪水情况的盘问定义一个名为staffCost的储藏过程,该储藏过程以以出勤天数(staffchuqin)、加班工资(staffjia

14、ban)、应发薪水(staffying)、实发薪水(staffshi)为输入参数返回指定职工薪水信息的储藏过程。stsffCost代码以下:CREATEPROCEDUREstaffCoststaffchuqindecimal,staffjiabandecimal,staffyingdecimal,staffshidecimal7ASSELECT*FROM薪水WHERE出勤天数=staffchuqinAND加班薪水=staffjiabanAND应发薪水=staffyingAND实发薪水=staffshiGO(2)指定范围的职工的信息盘问。以职工工号、部门编号为输入参数返回指定职工基本信息的储藏过

15、程,要求输入部分职工信息盘问职工所有信息。定义一个名为stsffInfo的储藏过程,该储藏过程以职工工号(staffNum)、部门编号(bmNum)作为输入参数,储藏过程返回盘问到的结果集。satffInfo的定义代码以下:CREATEPROCEDUREstaffInfostaffNumVARCHAR(50)=%,bmNumVARCHAR(50)=%ASSELECT*FROM职工信息,部门WHERE职工信息.部门名称=部门.部门名称AND(职工信息.工号LIKEstaffNumVARCHAR(50)+%)AND(部门编号LIKEbmNumVARCHAR(50)+%)GO(3)统计某职工年关薪水

16、总数。以工号为输入参数,以奖金总数为输出参数,产生该年度12个月份的每职工奖金统计的存储过程。定义该储藏过程名为bmMonhSum,输入参数为staffNum,实现代码以下:CREATEPROCEDUREbmMonthSumstaffNumCHAR(10)ASSELECTsum(实发薪水+岗位补贴)/12AS奖金总数FROM职工信息,薪水,部门WHERE职工信息.工号=薪水.工号AND职工信息.部门名称=部门.部门名称AND工号=102GO(五)触发器(1)要点操作,在薪水表里增加一条新的记录,实发薪水会自动更新新的数据。定义这个触发器名称为insert_薪水。代码以下:8createtrig

17、gerinsert_薪水on薪水forinsertasdeclareichar(20)declarebbintseti=casewhenbb=100then薪水whenbb=102then实发薪水endprinti(六)索引为提高检干脆能,为表创办吻合索引,其索引项为工号、姓名。CREATEINDEX工号_姓名_indON职工信息(工号,姓名)GO(七)运行和保护关系图的建立使用SQLServer2000的企业管理器创办薪水管理系统关系图薪水管理系统的关系图2简单盘问职工基本信息情况代码以下:select*from职工信息92)职工考勤情况;代码以下:select出勤天数,工号from薪水3)

18、职工每个工种基本薪水的设定。代码以下:Select岗位薪水,职务等级from薪水,职工信息where薪水.工号=职工信息.工号4)加班津贴管理,依照加班时间和种类恩赐不同样的加班津贴;代码以下:select加班工时,加班天数,加班种类,加班薪水from薪水WHERE加班薪水05)依照不同样工种的基本薪水情况、职工的考勤情况产生职工的每个月的月薪水;代码以下:select薪水.部门名称,职务等级,岗位薪水,出勤天数,实发薪水from职工,薪水WHERE职工信息.工号=薪水.工号10;3复杂盘问1)职工年关奖金的生成,职工的年关奖金计算公式(职工今年度的薪水总和津贴的总和)/12;代码以下:SEL

19、ECT姓名,sum(实发薪水+岗位补贴)/12AS奖金总数FROM职工信息,薪水,部门WHERE职工信息.工号=薪水.工号groupby姓名2)企业内财务部的薪水情况盘问:代码以下:select职工信息.工号,姓名,职务等级,实发薪水from薪水,职工信息where薪水.工号=职工信息.工号AND薪水.部门名称=财务部3)企业薪水报表。能够盘问单个职工的薪水情况代码以下:select薪水.工号,岗位薪水,病假扣款,事假扣款,应发薪水,实发薪水from薪水,职工信息WHERE薪水.工号=职工信息.工号AND姓名LIKE李%4)职工月薪水情况:月,职工号,姓名,部门名,基本薪水,病假扣款,事假扣款

20、,应发薪水,实发薪水。代码以下:select职工信息.工号,姓名,职工信息.部门名称,岗位薪水,病假扣款,事假扣款,应发薪水,实发薪水from薪水,职工信息11where薪水.工号=职工信息.工号;八、总结经过一周的时间,在同学和老师的帮助下,基本完成本次课程设计,基本达到了薪水管理系统的要求。此次数据库课程设计给我的最大的印象是:流程是所有的根本;架构是重要的,想像的还要重要;实践比所有空谈和理论更能学到东西。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念想。在设计过程中必然要慎重,仔细。来不得半点马虎。需求解析是整个课程设计的中心,考虑要全面,解析完整。才会为此后的设计打下优异的基础。否则,功亏一篑,甚至不能够完成任务。做实例过程中要注意与说明书中数据项数据种类,数据长度等的一致,命令中心输入任何命令都要切记一条原则,那就是严格依照格式来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论