SQLServer数据库管理期末论文袁瑞萍.docx

上传人:b****6 文档编号:7354686 上传时间:2023-01-23 格式:DOCX 页数:14 大小:86.66KB
下载 相关 举报
SQLServer数据库管理期末论文袁瑞萍.docx_第1页
第1页 / 共14页
SQLServer数据库管理期末论文袁瑞萍.docx_第2页
第2页 / 共14页
SQLServer数据库管理期末论文袁瑞萍.docx_第3页
第3页 / 共14页
SQLServer数据库管理期末论文袁瑞萍.docx_第4页
第4页 / 共14页
SQLServer数据库管理期末论文袁瑞萍.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

SQLServer数据库管理期末论文袁瑞萍.docx

《SQLServer数据库管理期末论文袁瑞萍.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库管理期末论文袁瑞萍.docx(14页珍藏版)》请在冰豆网上搜索。

SQLServer数据库管理期末论文袁瑞萍.docx

SQLServer数据库管理期末论文袁瑞萍

SQLServer数据库管理课程

论文(报告、案例分析)

 

院系信息学院

专业电子商务

班级

学生姓名

学号

任课教师袁瑞萍

2013年12月30日

 

员工管理系统数据库管理与开发

一、需求分析

(一)系统目标

设计出具有员工管理、保险管理、工资管理和考勤管理等功能的系统

(二)系统功能划分及描述

1、信息输入功能

(1)输入员工的基本信息。

包括:

员工编号、姓名、性别、出生年月、参加工作时间、所属部门、职务、职称、政治面貌、婚姻状况等基本信息。

(2)输入员工的工资信息。

包括:

基本工资、岗位工资、住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩。

(3)输入员工的部门信息。

包括:

部门编号、部门名称、部门负责人、部门人数。

2、数据修改删除功能

(1)修改和删除员工的基本信息。

当单位人员的信息发生变化,如职称的变化,工作部门变动,或调离单位等,系统应能修改员工的信息或将其从员工信息表中删除。

(2)修改和删除员工的工资信息。

员工升职加薪、工资普掉是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。

(3)修改和删除部门信息。

当撤销一个部门时,能从部门信息表中将其删除。

而当一个部门的名称发生改变时,系统中所有该项部门的名称应一致的改变。

3、查询和统计功能

(1)能够查询指定员工的基本信息。

(2)能够查询指定某个部门或全部部门的基本信息。

(3)查询某个员工的工资信息。

(4)统计、汇总指定年份企业各部门或某个部门每个月或全年工资总额,汇总各部门的人数或本单位的总人数。

(5)工资表月工资的生成功能。

生成当月所有员工或某个部门的工资记录,同时能进行员工工资的计算,即计算应发金额、应扣金额及实发金额。

二、数据库概念结构设计

(一)系统概念模型

图一E-R总图

图二员工基本信息

图三部门实体与考勤实体E-R图

图四津贴实体与月工资实体E-R图

 

(二)详细说明

1、系统涉及的实体集

●部门实体集:

具有属性部门号、部门名称、部长和人数

●员工实体集:

具有属性职工编号、姓名、性别、出生日期、参加工作日期、所属部门、职务、政治面貌、婚姻状况和电话号码

●出勤实体集:

职工编号、月份、缺勤天数和奖惩工资

●月工资实体集:

惩奖、津贴、工会会费、住房公积金、养老保险和基本工资

●津贴实体集:

职工编号、月份、加班天数和津贴工资

2、系统涉及的联系

●一个部门能有多名员工,一个员工只能属于一个部门,所以部门和员工的联系是1:

M的联系

●一个员工可以有多次出勤记录但一个出勤记录只对应着一个员工,所以员工和出勤的联系是1:

M的联系

●一个员工可以有多中津贴但一个津贴只对应着一个员工,所以员工和津贴的联系是1:

M的联系

●一个员工可以有多分工资但一分工资只对应着一个员工,所以员工和工资的联系是1:

M的联系

●一个人的出勤影响着一个人的工资,一个人的工资也因一个人的出勤变动而变动,所以出勤和工资的联系时1:

1

●一个人的津贴影响着一个人的工资,一个人的工资也因一个人的津贴变动而变动,所以津贴和工资的联系时1:

1

三、逻辑结构设计

将E-R模型转换为关系模式

(一)员工实体集

员工(emp_no,emp_name,sex,Department_id,Emp_time,Marry,Telephon)

分别表示(员工号,员工名称,性别,员工部门,入公司时间,婚姻状况,电话号码)

(二)员工津贴实体集

津贴(emp_no,Jiaban_month,jbtianshu,Jiaban_jiangjin)

分别表示(员工号,加班时间,加班天数,加班工资)

(三)考勤实体集

考勤(emp_no,Kaoqin_month,queqin,Kaoqin_gongzi)

分别表示(员工号,时间,缺勤天数,考勤工资)

(四)工资实体集

工资(Zw,Jibengongzi)

分别表示(职位,基本工资)

(五)员工月工资实体集

员工月工资(emp_no,jbgz,jt,Kq,ygz_total,ygz_data)

分别表示(员工号,基本工资,津贴,缺勤扣除,总月工资,月工资时间)

(六)部门实体集

部门(department_id,department_name,manager,dep_renshu)

分别表示(部门号,部门名称,部长,人数)

四、数据库物理结构设计

(一)把关系模型转化为表结构

列明

数据类型

可否为空

说明

emp_no

varchar(8)

NOTNULL

员工号(主键)

emp_name

varchar(10)

NULL

员工名称

sex

char

(2)

NULL

性别

department_id

char(4)

NOTNULL

员工部门

emp_time

varchar2(6)

NOTNULL

入公司时间

marry

varchar(4)

NULL

婚姻状况

telephon

char(11)

NULL

电话号码

(1)员工基本情况表

列明

数据类型

可否为空

说明

department_id

char(4)

notnull

部门号

department_name

varchar(6)

notnull

部门名称

manager

varchar(6)

null

部长

dep_renshu

varchar(4)

null

人数

(2)部门

列明

数据类型

可否为空

说明

emo_no

varcher(8)

notnull

职工编号

kaoqin_month

varchar(10)

notnull

月份

queqin

char

(2)

null

缺勤天数

kaoqin_gongzi

float

null

奖惩工资

表(3)考勤

列明

数据类型

可否为空

说明

emp_no

varchar(8)

notnull

职工编号

jiaban_month

varchar(10)

notnull

月份

jiabantianshu

char

(2)

null

加班天数

jiaban_jiangjin

float

null

津贴工资

表(4)津贴

列明

数据类型

可否为空

说明

zhiwu

varchar(10)

notnull

职务

jibengongzi

floatdefault

null

基本工资

表(5)基本工资

列明

数据类型

可否为空

说明

emp_no

varchar(8)

notnull

deparment_id

char(4)

notnull

jibengognzi

float

null

zhufangbutie

float

null

住房补贴

gz_month

varchar(10)

notnull

jiaban_jiangjin

float

null

奖惩

kaoqin_gongzi

float

null

津贴

gonghuihuifei

float

null

工会会费

zhfgjjin

float

null

住房公积金

yanglaobaoxian

float

null

养老保险

wagecount

float

null

表(6)月工资

 

五、数据库实施

--创建数据库

createdatabase工资管理

on

name=sales_dat,

filename='D:

\sql_data\sales.mdf'

go

--创建表

createtable员工

emp_novarchar(8)notnullprimarykey,--职工编号

emp_namevarchar(10)notnull,--姓名

sexchar

(2)--性别

check(sex='男'orsex='女'),

birth_datedatetimenotnull,--出生日期

hir_datedatetimenotnull,--参加工作时间

department_idchar(4)notnull,--所属部门

zhiwuvarchar(10)notnull,--职务

zhengzhimmvarchar(10),--政治面貌

marryvarchar(4),--婚姻状况

telephonchar(11),--电话号码

constraintoldcheck(datediff(year,birth_date,hir_date)>18)

createtable部门

department_idchar(4)notnullprimarykey,--部门号

department_namevarchar(6)notnull,--部门名称

managervarchar(6),--部长

dep_renshuvarchar(4)--人数

createtable考勤

emp_novarcher(8)notnull,--职工编号

kaoqin_monthvarchar(10)notnull,--月份

queqinchar

(2),--缺勤天数

kaoqin_gongzifloat,--奖惩工资

constrainte_kprimarykey(emp_no,kaoqin_month)

createtable津贴

emp_novarchar(8)notnull,--职工编号

jiaban_monthvarchar(10)notnull,--月份

jiabantianshuchar

(2),--加班天数

jiaban_jiangjinfloat,--津贴工资

constrainte_jprimarykey(emp_no,jiaban_month)

createtable基本工资

zhiwuvarchar(10)notnullprimarykey,--职务

jibengongzifloatdefault1500,--基本工资

createtable月工资

emp_novarchar(8)notnull,

deparment_idchar(4)notnull,

jibengognzifloatdefault1500,

zhufangbutiefloat,--住房补贴

gz_monthvarchar(10)notnull,

jiaban_jiangjinfloat,--奖惩

kaoqin_gongzifloat,--津贴

gonghuihuifeifloat,--工会会费

zhfgjjinfloat,--住房公积金

yanglaobaoxianfloat,--养老保险

wagecountas

jibengongzi+zhufangbutie+jiaban_jiangjin+kaoqin_gongzi+gonghuihuifei+zhfgjjin+yanglaobaoxian

constrainte_gprimarykey(emp_no,gz_month)

go

--插入数据

insert员工values('20070101','狄一','男','1985-1-1','2007-1-1','01','部长','团员','否','1234567890')

insert员工values('20070102','狄二','女','1985-1-2','2007-1-2','01','员工','党员','否','1234567891')

insert部门values('01','人事部','狄一','20')

insert部门values('02','财务部','狄六','10')

insert考勤values('20070101','200905','0',0)

insert考勤values('20070101','200906','2',-60)

insert津贴values('20070101','20000905','05',15)

insert津贴values('20070101','20000906','0',0)

insert基本工资values('员工',1500)

insert基本工资values('组长',2000)

insert月工资values('20070101','01',2000,0,'20000905',0,15,0,0,0)

insert月工资values('20070102','01',1500,0,'20000905',-30,0,0,0,0)

go

 

--创建、绑定默认值

createdefaultgongzi_defaas0

execsp_bindefaultgongzi_defa,'考勤.kaoqin_gongzi'

execsp_bindefaultgongzi_defa,'津贴.jiaban_jiangjin'

execsp_bindefaultgongzi_defa,'月工资.gonghuihuifei'

execsp_bindefaultgongzi_defa,'月工资.zhfgjjin'

execsp_bindefaultgongzi_defa,'月工资.yanglaobaoxian'

execsp_bindefaultgongzi_defa,'月工资.zhufangbutie'

六、设计和创建存储过程

--创建存储过程

--a.存储过程查询员工基本信息

createprocygxx2

@yg_idvarchar(10)

as

select*from员工whereemp_no=@yg_id

--b.存储过程查询指定某个部门或全部部门的基本信息

createprocbumen2

@bumen_id2varchar(4)

as

select*from部门wheredepartment_id=@bumen_id2

createprocbumenq

as

select*from部门

--c.存储过程查询某个员工的工资信息

createprocgzxx

@yg_idvarchar(10)

as

select*from月工资

whereepm_no=@yg_id

--d.汇总部门月份工资

createprocgzhz

@dep_idvarchar(4),@month_yearvarchar(10)

as

selectdepartment_id,gz_monthfrom月工资

wheredepartment_id=@dep_idandgz_month=@month_year

orderbydepartment_id,gz_month

 

--e.汇总工资总和

createprocsum_sum

as

selectdepartment_name,gz_month,sum(wagecount)from部门,月工资

where部门.department_id=月工资.department_id

groupbydepartment_name,gz_month

七、设计和创建函数

--创建函数

--a.函数查询员工基本信息

createfunctionygxx(@yg_idvarchar(10))

returnstable

as

return(select*from员工whereemp_no=@yg_id)

--b.函数查询部门信息

createfunctionbumen(@bumen_idvarchar(4))

returnstable

as

return(select*from部门wheredepartment_id=@bumen_id)

八、设计和创建触发器

--创建触发器

--a.员工表中删除一条信息,其他表相应员工信息删除

createtriggeremon员工

fordelete

as

deletefrom考勤whereemp_noin(selectemp_nofromdeleted)

deletefrom津贴whereemp_noin(selectemp_nofromdeleted)

deletefrom月工资whereemp_noin(selectemp_nofromdeleted)

--b.一个部门删除,此部门中的员工信息删除

createtriggerbmon部门

fordelete

as

deletefrom员工wheredepartment_idin(selectdepartment_idfromdeleted)

--c.员工职务变动,基本工资改变

createtriggerjbgzon员工

forupdate,insert

as

declare@qvarchar(12)

declare@mvarchar(12)

declare@sfloat

select@q=emp_nofromdeleted

select@m=zhiwufrominserted

select@s=jibengongzifrom基本工资wherezhiwu=@m

update月工资

setjibengongzi=@swhere月工资.emp_no=@q

九、总结

(一)人员分工情况

组内人员

负责任务

ER图的编写及相关实体集的描述;搜集数据并插入

对整个系统功能进行划分;创建数据库及数据表

将ER模型转化为关系模式;将系统模型表格化;设计并创建存储过程;系统调试

任务分工;系统函数和触发器的设计及创建;系统调试;撰写报告论文

(二)收获及体会

尽管完成了此次老师布置的期末大作业,但由于时间仓促,所以只满足了部分作业要求,而且并没有过多考虑到系统的技术含量,以及在后期调试过程中出现的部分问题依旧没有很好地解决。

但是在这过程中,我们对于遇到的问题进行了积极地探讨,虽然有些问题最终也没有很好地解决,但是却使我们小组的成员更加熟练地掌握了MicrosoftSQLServer数据库的应用,积累了一定的系统开发经验,使我们对系统开发的知识有了更深刻的理解、更贴切的感受。

同时,通过这次大作业,我们也发现了许多自身的问题。

例如:

对基本的SQL语句掌握不牢固,通过翻阅教材后才能编写。

同时我们对许多原来不太清楚的知识点有了更进一步的了解,写代码的时候一定要细心,注意代码中的一切标点符号都要用英文,创建存储过程时,需要用到变量的要先声明变量,创建了外键约束时,要先对不被约束的表进行操作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1