目 录.
1 设计时间 ........................................................................................................... 2 2 设计目的 ........................................................................................................... 2 3 设计任务 ........................................................................................................... 2 4 设计内容 ........................................................................................................... 2 工资管理系统 ................................................................................................. 2 4.1需求分析 .................................................................................................. 3 4.2概念结构设计 .......................................................................................... 4 4.3逻辑结构设计 .......................................................................................... 5 4.5数据库表空间和表结构设计 . ................................................................. 7 4.6数据库的实施 .......................................................................................... 8 4.7创建其它数据库对象 . ............................................................................. 9 5总结与展望 ...................................................................................................... 10 参考文献 ............................................................................................................. 11
1 设计时间
时间:17周
2 设计目的
数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库原理及应用》及《SQL SERVER数据库》课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。
3 设计任务
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
4 设计内容
工资管理系统
功能要求: (1)档案管理
a )保存有关工资计算以及工资管理所必须的数据。 b )能对各种数据进行插入、修改、删除等操作。 c )能对数据进行查询、统计。 (2)工资计算
a )正确计算出个人月工资、部门月工资以及全厂月工资。 b )能对病假扣款系数进行修正。
c )能打印输出工资计算表、个人工资单、部门工资单、工资汇总表四种表格。
数据要求:
(1)每个职工的各种数据分为三类:
a )职工的代号、姓名、性别、出生日期、参加工作日期、所属部门、人员类别、工种职别、技术等级、技术职称、文化程度、民族、籍贯、现住址。
b )职工的基本工资、岗位津贴、物价补贴、职务津贴、住房补贴、房租。 c )职工的出勤日数、公伤日数、产假日数、病假日数、旷工日数、事假日数、加班日数、夜班日数、病假系数。
(2)工资单数据:
本月基本工资、岗位津贴、物价补贴、职务津贴、住房补贴、加班费、夜班费、房租、病假扣款、事假扣款、旷工扣款、其它扣款、实发工资。
4.1需求分析
1文档说明
(1)员工:每个员工有个用户名和密码,能够方便的对自己的工资进行查询。
(2)系统管理员:有唯一用户名和密码,完成对员工资料的增加,删除,修改和查询。对系统的维护,数据备份,数据恢复,数据导入,数据导出
(3)上级主管部门:员工信息的查询,增加,修改,删除,汇总及打印,打印员工信息,工资发放报表,工资历史报表,奖惩报表
2功能概述
在现代企业的生产和动作过程中, 往往需要对企业员工的工资进行管理,企业的工资管理活动中都包含了以下几项功能:
(1)员工信息管理:
实现对员工基本信息的管理操作,包括员工基本数据信息的添加、修改、删除和查询等功能;
(2) 工资管理:
完成对基础数据设定(如工龄工资、岗位工资、所得税率等),工资统计、发放,打印工资条,及员工奖励和惩罚;
(3)工资查询:
可根据条件查询员工历史工资数据(如按月份查询、按姓名查询、按部门查
询等);
(4) 汇总打印:
提供报表打印输出功能,可以报表的形式打印员工信息、工资发放报表、工资历史报表、员工奖励和员工惩罚报表;
(5) 系统维护:
可对数据进行备份和恢复,并可实现数据导入导出功能。 (6)管理员设置:
实现系统用户及密码的设置操作,可以增加和删除系统用户(仅系统管理员才有权限),对系统当前用户修改密码。
4.2概念结构设计
E-R 图是分为两部分实体和属性,每个实体可以有多个属性,这些属性用来表示实体的性质。不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。实体和实体之间的关系有一对一的关系(1:1),一对多的关系(1:N )和多对多的关系(N :M )。
总体E-R 图及各个实体之间的关系如下图所示。
4.3逻辑结构设计
数据库逻辑设计的任务是将概念结构转换成特定DBMS 所支持的数据模型的过程。从此开始便进入了“实现设计”阶段,需要考虑到具体的DBMS 的性能、具体的数据模型特点。
从E-R 图所表示的概念模型可以转换成任何一种具体的DBMS 所支持的数据模型,如网状模型、层次模型和关系模型。这里只讨论关系数据库的逻辑设计问题,所以只介绍E-R 图如何向关系模型进行转换。
关系模型的逻辑结构是一组关系模式的集合。E-R 图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R 图转换为关系模型实际上就是要
将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下。
1. 实体类型的转换:一个实体型转换成一个关系模式。实体的属性就是关系的属性,
实体的码就是关系的码。
2.联系类型的转换,根据不同的情况做不同的处理。
(1)一个1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:N 的联系可以转换为一个独立的关系模式,也可以与N 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N 端实体的码。
(3)一个M :N 联系转换为一个关系模式。与该联系相连的各实体的码为各实体码的组合。
(4)三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实休的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
(5)具有相同码的关系模式可合并。
3. 根据工资管理系统的E-R 图转换为关系模型如下。
将每一个实体转换成一个关系(关系就是给出关系名,属性就是实体属性,并标明该关系的主键用下划线来表示)
关系模式:
职工(职工代码,姓名,性别,出生日期,所属部门)
出勤(职工代码,出勤日数,病假日数,满勤,旷工日数,事假日数) 工资(职工代码,姓名,基本工资,岗位津贴,房租) 报表(职工代码,职工信息,月份,工资金额)
4.5数据库表空间和表结构设计
表4-2出勤
属性名 职工代码 出勤日数 满勤 旷工日数 事假日数 属性名 职工代码 姓名
存储代码 Sno Dquantity Rdate Sdate
类型 char date date date
长度 20 8 8 8
备注
表4-3 工资
存储代码 Sno Dname Dsource Allowances Drent
类型 char char char char char
长度 20 10 8 8 8
备注
基本工资 岗位津贴 房租
表4-4报表
属性名 职工代码
存储代码 Sno
Iformation Mnth Aount
类型 char char char char
长度 20 6 4 10
备注
职工信息 月份
工资金额
4.6数据库的实施
1、职工 create table职工 (
sno char(20 ) primary key, Sname char(20) not null,
ssex char(4)check (stu_sex='男' or stu_sex='女'), SBirthday char(40) not null, SDepartment char(40) not null ) 2、出勤 create table 出勤 (
sno char(20 ) , primary key, Dquantity date(8) not null, Rquantity date(8) not null, Dfull char(10) not null, Rdate date(8) not null, Sdate date(8) not null ) 3、工资 create table工资 (
Sno char(20) primary key Dname char(10) not null, Dsource char (8) not null, Allowances char(8) not null, Drent char(8) not null )
4、报表 create table报表 (
Sno char(20) primary key, Iformation char(6) not null,
Mnth char(4) not null, Aount char(10) not null )
4.7创建其它数据库对象
1视图的创建:
Create view zgst As
Select Sno, Sname, Department
From 职工 2触发器的创建:
Create tigger cqcfq On 出勤 With encryption For update If update’Sno ’
Print ‘不允许更新出勤表中的职工代码’
3存储过程的创建:
Create proc gzcc @ Sno char(20),@ Dname char(10) output,@ Dsource char(8)
As
Select @Sno=Sno From 工资 Where Sno=@Sno 验证:
declare@Sno
exec proc ‘001’ @Dname,@Dsource select Sno
5总结与展望
通过一星期的设计,我完成一个工资管理系统,学习了很多有关的知识。这样的项目对我学过程序设计,数据库,软件工程等课程是一个综合性很高的实践。一些以前没有学得很杂实的课程的内容,由于需要在实践中运用,刚开始我也感到很头痛。但回过头再去看有关的教科书,让我对这些知识点的相关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。由于我的知识浅薄,经验不足,在该系统的设计方面还有很多不足,我会在以后的学习生活中不断的修改,完善,争取使该系统慢慢趋向完美。
我觉得,脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。
参考文献
[1] 王永贵. 《Oracle 数据库管理与应用》. 中国矿业大学出版社.2009
[2] 张龙祥. 数据库原理与设计. 北京:人民邮电出版社.2000
[3] 李红. 数据库原理与应用. 北京:高等教育出版社.2002
[4] 王珊 数据库系统概论. 高等教育出版设.2006
[5] 宋振会 SQL Server 2000.清华大学出版设.2005
忽略此处..
目 录.
1 设计时间 ........................................................................................................... 2 2 设计目的 ........................................................................................................... 2 3 设计任务 ........................................................................................................... 2 4 设计内容 ........................................................................................................... 2 工资管理系统 ................................................................................................. 2 4.1需求分析 .................................................................................................. 3 4.2概念结构设计 .......................................................................................... 4 4.3逻辑结构设计 .......................................................................................... 5 4.5数据库表空间和表结构设计 . ................................................................. 7 4.6数据库的实施 .......................................................................................... 8 4.7创建其它数据库对象 . ............................................................................. 9 5总结与展望 ...................................................................................................... 10 参考文献 ............................................................................................................. 11
1 设计时间
时间:17周
2 设计目的
数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库原理及应用》及《SQL SERVER数据库》课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。
3 设计任务
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
4 设计内容
工资管理系统
功能要求: (1)档案管理
a )保存有关工资计算以及工资管理所必须的数据。 b )能对各种数据进行插入、修改、删除等操作。 c )能对数据进行查询、统计。 (2)工资计算
a )正确计算出个人月工资、部门月工资以及全厂月工资。 b )能对病假扣款系数进行修正。
c )能打印输出工资计算表、个人工资单、部门工资单、工资汇总表四种表格。
数据要求:
(1)每个职工的各种数据分为三类:
a )职工的代号、姓名、性别、出生日期、参加工作日期、所属部门、人员类别、工种职别、技术等级、技术职称、文化程度、民族、籍贯、现住址。
b )职工的基本工资、岗位津贴、物价补贴、职务津贴、住房补贴、房租。 c )职工的出勤日数、公伤日数、产假日数、病假日数、旷工日数、事假日数、加班日数、夜班日数、病假系数。
(2)工资单数据:
本月基本工资、岗位津贴、物价补贴、职务津贴、住房补贴、加班费、夜班费、房租、病假扣款、事假扣款、旷工扣款、其它扣款、实发工资。
4.1需求分析
1文档说明
(1)员工:每个员工有个用户名和密码,能够方便的对自己的工资进行查询。
(2)系统管理员:有唯一用户名和密码,完成对员工资料的增加,删除,修改和查询。对系统的维护,数据备份,数据恢复,数据导入,数据导出
(3)上级主管部门:员工信息的查询,增加,修改,删除,汇总及打印,打印员工信息,工资发放报表,工资历史报表,奖惩报表
2功能概述
在现代企业的生产和动作过程中, 往往需要对企业员工的工资进行管理,企业的工资管理活动中都包含了以下几项功能:
(1)员工信息管理:
实现对员工基本信息的管理操作,包括员工基本数据信息的添加、修改、删除和查询等功能;
(2) 工资管理:
完成对基础数据设定(如工龄工资、岗位工资、所得税率等),工资统计、发放,打印工资条,及员工奖励和惩罚;
(3)工资查询:
可根据条件查询员工历史工资数据(如按月份查询、按姓名查询、按部门查
询等);
(4) 汇总打印:
提供报表打印输出功能,可以报表的形式打印员工信息、工资发放报表、工资历史报表、员工奖励和员工惩罚报表;
(5) 系统维护:
可对数据进行备份和恢复,并可实现数据导入导出功能。 (6)管理员设置:
实现系统用户及密码的设置操作,可以增加和删除系统用户(仅系统管理员才有权限),对系统当前用户修改密码。
4.2概念结构设计
E-R 图是分为两部分实体和属性,每个实体可以有多个属性,这些属性用来表示实体的性质。不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。实体和实体之间的关系有一对一的关系(1:1),一对多的关系(1:N )和多对多的关系(N :M )。
总体E-R 图及各个实体之间的关系如下图所示。
4.3逻辑结构设计
数据库逻辑设计的任务是将概念结构转换成特定DBMS 所支持的数据模型的过程。从此开始便进入了“实现设计”阶段,需要考虑到具体的DBMS 的性能、具体的数据模型特点。
从E-R 图所表示的概念模型可以转换成任何一种具体的DBMS 所支持的数据模型,如网状模型、层次模型和关系模型。这里只讨论关系数据库的逻辑设计问题,所以只介绍E-R 图如何向关系模型进行转换。
关系模型的逻辑结构是一组关系模式的集合。E-R 图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R 图转换为关系模型实际上就是要
将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下。
1. 实体类型的转换:一个实体型转换成一个关系模式。实体的属性就是关系的属性,
实体的码就是关系的码。
2.联系类型的转换,根据不同的情况做不同的处理。
(1)一个1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:N 的联系可以转换为一个独立的关系模式,也可以与N 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N 端实体的码。
(3)一个M :N 联系转换为一个关系模式。与该联系相连的各实体的码为各实体码的组合。
(4)三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实休的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
(5)具有相同码的关系模式可合并。
3. 根据工资管理系统的E-R 图转换为关系模型如下。
将每一个实体转换成一个关系(关系就是给出关系名,属性就是实体属性,并标明该关系的主键用下划线来表示)
关系模式:
职工(职工代码,姓名,性别,出生日期,所属部门)
出勤(职工代码,出勤日数,病假日数,满勤,旷工日数,事假日数) 工资(职工代码,姓名,基本工资,岗位津贴,房租) 报表(职工代码,职工信息,月份,工资金额)
4.5数据库表空间和表结构设计
表4-2出勤
属性名 职工代码 出勤日数 满勤 旷工日数 事假日数 属性名 职工代码 姓名
存储代码 Sno Dquantity Rdate Sdate
类型 char date date date
长度 20 8 8 8
备注
表4-3 工资
存储代码 Sno Dname Dsource Allowances Drent
类型 char char char char char
长度 20 10 8 8 8
备注
基本工资 岗位津贴 房租
表4-4报表
属性名 职工代码
存储代码 Sno
Iformation Mnth Aount
类型 char char char char
长度 20 6 4 10
备注
职工信息 月份
工资金额
4.6数据库的实施
1、职工 create table职工 (
sno char(20 ) primary key, Sname char(20) not null,
ssex char(4)check (stu_sex='男' or stu_sex='女'), SBirthday char(40) not null, SDepartment char(40) not null ) 2、出勤 create table 出勤 (
sno char(20 ) , primary key, Dquantity date(8) not null, Rquantity date(8) not null, Dfull char(10) not null, Rdate date(8) not null, Sdate date(8) not null ) 3、工资 create table工资 (
Sno char(20) primary key Dname char(10) not null, Dsource char (8) not null, Allowances char(8) not null, Drent char(8) not null )
4、报表 create table报表 (
Sno char(20) primary key, Iformation char(6) not null,
Mnth char(4) not null, Aount char(10) not null )
4.7创建其它数据库对象
1视图的创建:
Create view zgst As
Select Sno, Sname, Department
From 职工 2触发器的创建:
Create tigger cqcfq On 出勤 With encryption For update If update’Sno ’
Print ‘不允许更新出勤表中的职工代码’
3存储过程的创建:
Create proc gzcc @ Sno char(20),@ Dname char(10) output,@ Dsource char(8)
As
Select @Sno=Sno From 工资 Where Sno=@Sno 验证:
declare@Sno
exec proc ‘001’ @Dname,@Dsource select Sno
5总结与展望
通过一星期的设计,我完成一个工资管理系统,学习了很多有关的知识。这样的项目对我学过程序设计,数据库,软件工程等课程是一个综合性很高的实践。一些以前没有学得很杂实的课程的内容,由于需要在实践中运用,刚开始我也感到很头痛。但回过头再去看有关的教科书,让我对这些知识点的相关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。由于我的知识浅薄,经验不足,在该系统的设计方面还有很多不足,我会在以后的学习生活中不断的修改,完善,争取使该系统慢慢趋向完美。
我觉得,脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。
参考文献
[1] 王永贵. 《Oracle 数据库管理与应用》. 中国矿业大学出版社.2009
[2] 张龙祥. 数据库原理与设计. 北京:人民邮电出版社.2000
[3] 李红. 数据库原理与应用. 北京:高等教育出版社.2002
[4] 王珊 数据库系统概论. 高等教育出版设.2006
[5] 宋振会 SQL Server 2000.清华大学出版设.2005
忽略此处..