1、公司员工及财务管理系统数据库设计222020年4月19日文档仅供参考目录一、需求分析31.1 需求概述31.2 功能简介3二、数据库概念结构设计32.1 确定联系集及E-R图32.2 画出E-R图42.3公司员工信息及财务管理系统总E-R图5三、数据库逻辑设计53.1 员工信息表(worker)63.2 收入信息表(income)63.3 支出信息表(payment)63.4 数据字典7四、 建表74.1 创立数据库74.2 创立数据表7五、数据库的运行和维护105.1 创立触发器和表的基本操作105.2 创立函数和调用135.2.1 ptotal函数查询员工的支出金额135.2.2 itot
2、al函数查询员工的收入金额145.3 创立登录名和权限155.3.1创立用户yy155.3.2 创立用户xx155.4 数据库的安全性16六、总结17一、需求分析1.1 需求概述 近年来,随着中国经济实力的不断增强,相关事业单位的基建项目也日渐增多,对其财务管理带来了更大的挑战。在这种背景下,加强事业单位基建财务管理显得尤为重要,为了积极应对国际金融危机的冲击,实现“保增长、保稳定、保民生”目标,按照社会主义市场经济规律的根本要求,全面加强企业单位财务管理编写出财务管理系统,该系统能够给我们提供正确的意见和计划,让消费状况变得更加直观,也便于我们更好更方便的管理公司的财务状况;同时也需要员工管
3、理系统,该系统分析对当今社会的人事管理方面的需求进行了认真而全面的调查。根据对企业的员工管理系统的功能需求、业务操作规程及其数据结构等具体要求,调查了单位对员工管理企业的员工基本信息,确定了系统性能要求,系统运行支持环境要求,数据项的名称、数据类型、数据规格。以上这一切为统下一步的开发工作奠定了良好的基础,双系统的结合便于查看员工信息和收入支出情况。1.2 功能简介能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。具体功能应包括:系统应该提供对员工数据的插入、删除、更新、查询。例如:1.单表查询 查询员工编号为101的姓名 2.插入数据 员工表中插入一数据 3
4、.修改数据 小陈的年龄为25 4.删除数据 删除编号为103的员工记录二、数据库概念结构设计2.1 确定联系集及E-R图根据前面对系统进行的分析,已经初步了解了公司员工及财务管理系统的数据处理流程,找出与系统有关的各个实体及其相互联系如下:、标示实体集:三个关系:员工,收入,支出、标示联系集:员工和收入:一个员工有多种收入方式 关系为:1:N员工和支出:一个员工能够有多种支出方式 关系为:1:M、标示属性集:员工(员工编号,名字,年龄,性别)收入(收入编号,员工编号,收入金额,收入时间)支出(支出编号,员工编号,支出金额,支出时间)2.2 画出E-R图 员工信息图如下: 员 工 名 字 年 龄
5、 性 别员工编号 图2-2-1员工实体集的E-R图收入信息图如下: 收 入 收入时间 收入金额 员工编号收入编号 图2-2-2收入实体集E-R图 支出信息图如下: 支出 员工编号 支出时间 支出金额支出编号 图2-2-3支出实体集E-R图 2.3公司员工信息及财务管理系统总E-R图 根据上面对实体联系的分析,能够画出E-R图如下: 员工11mn 收 入 支 出 图2-2-5公司员工信息及财务管理系统总E-R图三、数据库逻辑设计逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
6、E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。设计公司员工信息及财务管理数据库,包括员工、收入、支出三个关系, 其关系模式中对每个实体定义的属性如下:员工信息表 员工(员工编号,名字,年龄,性别)收入信息表 收入(收入编号,员工编号,收入金额,收入时间)支出信息表 支出(支出编号,员工编号,支出金额,支出时间)设计出E-R图后,可将E-R图转换为数据库模式。本系统建立的数据库为“yy”,运行本系统时在库中所建立的表分别介绍如下:3.1 员工信息表(worker)字段名别名数据类型字段限制员工编号widintPrimary key名
7、字wnameChar(10)Not null年龄wageintNot null性别wsexChar(10)Not null3.2 收入信息表(income)字段名别名数据类型字段权限收入编号iidintPrimary key员工编号 iwidintForeign key收入金额 imoneyfloatNot null收入时间 itimevarchar(100)Not null3.3 支出信息表(payment)字段名属 性数据类型字段权限支出编号pidintPrimary key员工编号pwidintForgien key支出金额 pmoneyfloatNot null支出时间 ptimeva
8、rchar(100)Not null 3.4 数据字典员工:指企业(单位)中各种用工形式的人员,包括固定工、合同工、临时工,以及代训工和实习生。员工编号:代表员工的代号名字:是人类为区分个体,给每个个体给定的特定名称符号,是经过语言文字信息区别人群个体差异的标志。年龄:指一个人从出生时起到计算时止生存的时间长度,一般见年岁来表示。性别:主要指男女两性的区别收入:指企业在日常活动中所形成的、会导致所有者权益增加的、非所有者投入资本的经济利益的总流入收入编号:代表收入的代号收入金额:企业在日常活动中所获取的金钱数量收入时间:收入入账的时间支出:企业在生产经营过程中为获得另一项资产、为清偿债务所发生
9、的资产的流出。支出金额:企业在日常活动中所使用的金钱数量支出时间:支出入账的时间四、 建表4.1 创立数据库Create database yy 4.2 创立数据表 一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创立数据表的过程其实就是定义字段的过程。在此公司员工信息及财务管理系统中需要创立三个表,即员工信息表、收入信息表、支出信息表。创立数据库后,为yy数据库添加数据表,步骤如下。新建查询窗口在查询窗口中键入下列SQL语句 create table worker( wid int primary
10、key, wname char(10), wsex char(10), wage int);执行上述SQL语句即可创立员工信息表相关表格insert into worker values(101,小刘,男,24);insert into worker values(102,小张,女,26);insert into worker values(103,小陈,男,27);insert into worker values(104,小邱,女,22);运行结果为: create table income( iid int primary key, iwid int , imoney float, it
11、ime varchar(100), foreign key(iwid) references worker(wid) );执行上述SQL语句即可创立收入信息表相关表格insert into worker values(101,小刘,男,24);insert into worker values(102,小张,女,26);insert into worker values(103,小陈,男,27);insert into worker values(104,小邱,女,22); 运行结果为:create table payment( pid int primary key, pwid int ,
12、pmoney float, ptime varchar(100) foreign key (pwid) references worker(wid); 执行上述SQL语句即可创立支出信息表相关表格 insert into income values(201,103,1000, 2月4日);insert into income values(202,104, , 6月10日);insert into income values(203,101,1500, 8月17日);insert into income values(204,102,2500, 10月3日);运行结果为:五、数据库的运行和维护
13、5.1 创立触发器和表的基本操作触发器的作用:当删除、插入及修改数据时,显示所有数据。create trigger yy on workerafter insert,delete,updateasbegin select * from worker -插入数据 员工表中插入一数据insert into worker values(105,小李,女,22);-单表查询 查询员工编号为101的姓名select wname from worker where wid=101;-修改数据 小陈的年龄为25update worker set wage=25 where wname=小陈;-删除数据 删除
14、编号为103的员工记录 delete from worker where wid=103; 5.2 创立函数和调用5.2.1 ptotal函数查询员工的支出金额if exists (select name from sysobjects where name=ptotal) drop function ptotalgo create function ptotal(a char)returns float begin declare b float select b =(select payment.pmoney from payment,worker where payment.pwid=w
15、orker.wid and worker.wname=a) return b endselect * from ptotal(小刘) 运行结果如下图:5.2.2 itotal函数查询员工的收入金额 if exists (select name from sysobjects where name=itotal) drop function itotalgo create function itotal(c char)returns double as begin declare h double select h=(select sum(imoney) from income.wid=work
16、er.wid where worker.wname=c) return h endselect * from itotal(小张) 运行结果如下图:5.3 创立登录名和权限5.3.1创立用户yy db_owner:数据库所有者,能够执行数据库的所有管理操作create login yy with password=123, default_database=yy create user yy for login yy exec sp_addrolemember db_owner,yy5.3.2 创立用户xxdb_denydatawriter:数据库拒绝数据写入者,不能添加、修改或删除数据库内用
17、户表中的任何数据create login xx with password=123, default_database=yy create user xx for login xx exec sp_addrolemember db_denydatawriter,xx5.4 数据库的安全性所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件,软件及数据,防止其偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。为防止因用户非法使用数据库造成数据泄露、更改或破坏,必须采取一些安全性控制措施以保证数据库中数据的安全、可靠和正确有效。安全性控制的防范对象是非法用户和非法操作,防止她们对数据库数据的非法存取。主要采用用户标识及鉴定,使用用户名或用户标识号来标明用户身份。用户想要对对数据库内容进行相关操作,必须申请一个用户名或用户标识号,每次登陆都必须输入该用户名以及相应正确的口令,然后系统对其进行验证,只有经过验证的用户方可对数据库进行操作。