数据库课程设计-工资管理系统(共31页).doc
精选优质文档-倾情为你奉上1 需求分析工资管理系统是提供工资管理人员和职工工资进行管理的系统。它能自动对不同职务,不同出勤及各个月份的工资进行管理并生成财务表。工资管理系统的用户需求主要功能有:1各部门的信息情况2各职工的信息情况3考勤信息情况4工资信息情况5定义登陆用户和用户的权限2 概念分析(1) 部门E-R图(2) 职工信息E-R图 (3) 职务信息E-R图(4) 考勤信息E-R图(5) 用户E-R图(6) 工资情况E-R图(7) 总E-R图3 逻辑设计关系模型:部门(部门编号(主键),部门名称,经理,电话)职工信息(职工编号(主键),职务编号,姓名,性别,电话,住址,部门编号(外键)考勤情况(职工编号(主键),出勤天数,加班天数,出勤奖金,月份)职务(职务编号(主键),职务名称(主键),基本工资)工资计算(职工编号(主键),考勤情况,工资,月份)用户(用户名,密码,权限)4 物理设计 1 给职工信息表建立非聚集索引“职工”/*给职工信息表非建立聚集索引*/create nonclustered index 职工on 职工信息(职工编号)goSELECT *FROM sys.indexesWHERE name='职工'2给工资表建立唯一索引“工资”/*给工资表建立唯一索引“工资”*/create unique index 工资on 工资情况(职工编号)goSELECT *FROM sys.indexesWHERE name='工资'Go 3给考勤信息表建立聚集索引“考勤” /*给考勤信息表建立非聚集索引*/create nonclustered index 考勤on 考勤信息(职工编号)goSELECT *FROM sys.indexesWHERE name='考勤'5 实施过程(1) 创建表结构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-10002 给部门表添加一个主键3 给职工信息表添加一个主键和外键(3)给表插入信息1 职工信息表插入2 职务信息表插入3 用户信息表插入4工资情况表插入5 部门表插入 6考勤情况表插入(4)表的基本操作1 修改职工信息中编号为10001的姓名为张琪2 给职务信息表添加一列3 删除刚才添加的那列4 修改工资情况表中工资的数据类型5 给考勤信息表增加一列(5)定义登录名,用户和权限1 定义第一个登录名和用户,权限对所有的表有所有的权限 /*创建用户和赋予权限*/create login 王琦with password='',default_database=员工工资管理;/*创建登录账户*/gocreate user 王琦 for login 王琦gogrant allon 部门to 王琦grant allon 工资情况to 王琦grant allon 考勤信息to 王琦grant allon 用户to 王琦grant allon 职工信息to 王琦grant allon 职务信息to 王琦2 创建第二个登录名和用户,对所有的表只有查看和删除的权限create login 高汉with password='',default_database=员工工资管理;/*创建登录账户*/gocreate user 高汉 for login 高汉gogrant select,deleteon 部门to 高汉grant select,deleteon 工资情况to 高汉grant select,deleteon 考勤信息to 高汉grant select,deleteon 用户to 高汉grant select,deleteon 职工信息to 高汉grant select,deleteon 职务信息to 高汉3 创建第三个登录名和用户,只有查看的权限/*创建第三个用户并赋予所有权限*/create login 王敏with password='',default_database=员工工资管理;/*创建登录账户*/gocreate user 王敏 for login 王敏gogrant selecton 部门to 王敏grant selecton 工资情况to 王敏grant selecton 考勤信息to 王敏grant selecton 用户to 王敏grant selecton 职工信息to 王敏grant selecton 职务信息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语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。专心-专注-专业