1、 数据库原理 试验七:数据库设计 数据库名称:职员工资管理系统 姓名:胡少帅 班级:级网络工程 学号: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 逻辑设计关系模型:部门(部门编号(主键),部门名称,经理,电话)职员信息(职
2、员编号(主键),职务编号,姓名,性别,电话,住址,部门编号(外键)考勤情况(职员编号(主键),出勤天数,加班天数,出勤奖金,月份)职务(职务编号(主键),职务名称(主键),基础工资)工资计算(职员编号(主键),考勤情况,工资,月份)用户(用户名,密码,权限)4 物理设计 1 给职员信息表建立非聚集索引“职员”/*给职员信息表非建立聚集索引*/create nonclustered index 职员on 职员信息(职员编号)goSELECT *FROM sys.indexesWHERE name=职员2给工资表建立唯一索引“工资”/*给工资表建立唯一索引“工资”*/create unique i
3、ndex 工资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
4、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)
5、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 职员信
6、息表插入2 职务信息表插入3 用户信息表插入4工资情况表插入5 部门表插入 6考勤情况表插入(4)表基础操作1 修改职员信息中编号为10001姓名为张琪2 给职务信息表添加一列3 删除刚才添加那列4 修改工资情况表中工资数据类型5 给考勤信息表增加一列(5)定义登录名,用户和权限1 定义第一个登录名和用户,权限对全部表有全部权限 /*创建用户和给予权限*/create login 王琦with password=123456,default_database=职员工资管理;/*创建登录账户*/gocreate user 王琦 for login 王琦gogrant allon 部门to 王琦g
7、rant allon 工资情况to 王琦grant allon 考勤信息to 王琦grant allon 用户to 王琦grant allon 职员信息to 王琦grant allon 职务信息to 王琦2 创建第二个登录名和用户,对全部表只有查看和删除权限create login 高汉with password=123456,default_database=职员工资管理;/*创建登录账户*/gocreate user 高汉 for login 高汉gogrant select,deleteon 部门to 高汉grant select,deleteon 工资情况to 高汉grant sele
8、ct,deleteon 考勤信息to 高汉grant select,deleteon 用户to 高汉grant select,deleteon 职员信息to 高汉grant select,deleteon 职务信息to 高汉3 创建第三个登录名和用户,只有查看权限/*创建第三个用户并给予全部权限*/create login 王敏with password=123456,default_database=职员工资管理;/*创建登录账户*/gocreate user 王敏 for login 王敏gogrant selecton 部门to 王敏grant selecton 工资情况to 王敏gra
9、nt 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(
10、7) 建立一个视图6 课程设计总结此次课程设计调查从职员工资,部门情况,依据其具体情况,设计工资管理系统。加深了对数据库课程知识了解。经过此次数据库课程设计,真正达成了学和用结合,增强了对数据库方面应用了解,对自己以后参与开发数据库系统积累了不少经验,在试验过程中,从建立数据开始,对灵据库设计理念及思想上有更高认识,从需求分析,到概念设计和逻辑设计,E-R图表示,数据字典创建,知道了不少相关数据库开发过程中知识,在试验中建表,及其关系模式,关系代数建立及了解,将SQL语查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言灵活性,其中包含,插入、删除、修改、查询,牵涉表和表之间联络,主建和外主键定义,约束项设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了部分她人设计图书馆管理信息系统设计汇报,学以致用,自我创新,独立完成了这份自己汇报,从中在学到用,从用又到学,不停修改,系统更新。即使不能达成完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做课程设计自己认为还算满意。