SQL数据库员工工资管理系统设计
实验七:数据库设计
数据库名称:职职员资治理系统
姓名:胡少帅
班级:2011级网络工程
学号:20110441021024
1 需求分析
工资治理系统是提供工资治理人员和职工工资进行治理的系统。
它能自动对不同职务,不同出勤及各个月份的工资进行治理并生成财务表。
工资治理系统的用户需求要紧功能有:
1各部门的信息情形
2各职工的信息情形
3考勤信息情形
4工资信息情形
5定义登陆用户和用户的权限
2 概念分析
部门E-R图
职工信息E-R图
职务信息E-R图
考勤信息E-R图
用户E-R图
工资情形E-R图
总E-R图
3 逻辑设计
关系模型:
部门(部门编号(主键),部门名称,经理,电话)
职工信息(职工编号(主键),职务编号,姓名,性不,电话,住址,部门编号(外键))
考勤情形(职工编号(主键),出勤天数,加班天数,出勤奖金,月份)职务(职务编号(主键),职务名称(主键),差不多工资)
工资运算(职工编号(主键),考勤情形,工资,月份)
用户(用户名,密码,权限)
4 物理设计
1 给职工信息表建立非集合索引“职工”
/*给职工信息表非建立集合索引*/
create nonclustered index 职工on 职工信息(职工编号) go
SELECT *
FROM sys.indexes
WHERE name='职工'
2给工资表建立唯独索引“工资”
/*给工资表建立唯独索引“工资”*/
create unique index 工资on 工资情形(职工编号)
go
SELECT *
FROM sys.indexes
WHERE name='工资'
Go
3给考勤信息表建立集合索引“考勤”
/*给考勤信息表建立非集合索引*/
create nonclustered index 考勤on 考勤信息(职工编号) go
SELECT *
FROM sys.indexes
WHERE name='考勤'
5 实施过程
创建表结构
1 职工信息表
create table 职工信息
(职工编号char(20) not null,职务编号char(20) not null,姓名varchar(20) not null,
性不char(20) not null,
电话char(20) not null,
住址varchar(20) not null,
部门编号char(20)not null )
2职务信息表
create table 职务信息
(职务编号char(20) not null,职务名称char(20) not null,差不多工资money
)
3工资表
create table 工资情形
(月份char(20) not null,
职员编号char(20) not null,工资char(20) not null
)
4考勤信息表
create table 考勤信息
(职工编号varchar(40) not null,
出勤天数char(20) not null,
加班天数char(20) not null,
出勤奖金money
)
5部门表
create table 部门
(部门编号char(20) not null,
部门名称char(20) not null,
经理varchar(20) not null,
电话char(20) not null
)
6用户表
create table 用户
(用户名char(10) not null,
密码char(30) not null,
权限char(30)
)
(2)给表定义约束
1 给考勤情形中的出勤奖金列定义约束范畴0-1000
2 给部门表添加一个主键
3 给职工信息表添加一个主键和外键
(3)给表插入信息
1 职工信息表插入
2 职务信息表插入
3 用户信息表插入
4工资情形表插入
5 部门表插入
6考勤情形表插入
(4)表的差不多操作
1 修改职工信息中编号为10001的姓名为张琪
2 给职务信息表添加一列
3 删除刚才添加的那列
4 修改工资情形表中工资的数据类型
5 给考勤信息表增加一列
(5)定义登录名,用户和权限
1 定义第一个登录名和用户,权限对所有的表有所有的权限
/*创建用户和给予权限*/
create login 王琦
with password='123456',
default_database=职职员资治理;/*创建登录账户*/
go
create user 王琦
for login 王琦
go
grant all
on 部门
to 王琦
grant all
on 工资情形
to 王琦
grant all
on 考勤信息
to 王琦
grant all
on 用户
to 王琦
grant all
on 职工信息
to 王琦
grant all
on 职务信息
to 王琦
2 创建第二个登录名和用户,对所有的表只有查看和删除的权限
create login 高汉
with password='123456',
default_database=职职员资治理;/*创建登录账户*/
go
create user 高汉
for login 高汉
go
grant select,delete
on 部门
to 高汉
grant select,delete
on 工资情形
to 高汉
grant select,delete
on 考勤信息
to 高汉
grant select,delete
on 用户
to 高汉
grant select,delete
to 高汉
grant select,delete
on 职务信息
to 高汉
3 创建第三个登录名和用户,只有查看的权限
/*创建第三个用户并给予所有权限*/
create login 王敏
with password='123456',
default_database=职职员资治理;/*创建登录账户*/ go
create user 王敏
for login 王敏
go
grant select
on 部门
to 王敏
grant select
on 工资情形
to 王敏
grant select
on 考勤信息
to 王敏
grant select
on 用户
to 王敏
grant select
to 王敏
grant select
on 职务信息
to 王敏
(6) 建立一个触发器,在工资情形表被修改时使用
/*建立一个触发器*/
create trigger m
on 工资情形for update
as
if update(工资)
begin
rollback tran
print'差不多工资不能修改,请联系财务部'
end
(6) 建立储备过程
1创建一个储备过程来存放查询到的职工的信息和工资
2创建一个储备过程来存放进行删除操作
3创建一个储备过程来存放查询所有职工中工资大于3500的(7) 建立一个视图
6 课程设计总结
此次课程设计调查从职员的工资,部门的情形,按照其具体情形,设计工资治理系统。
加深了对数据库课程知识的明白得。
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的明白得,对自己今后参与开发数据库系统积存了许多体会,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,明白得了许多有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及明白得,将SQL语的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了许多资料,也看了一些不人设计的图书馆治理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,持续修改,系统更新。
尽管不能达到完善系统,但也做到了尽善尽美,加大理论学习对完善系统会有专门多关心,不管如何讲,对这次做的课程设计自己觉得还算中意。