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