数据库课程设计之某单位考勤管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图4 系统功能结构图

3.1.3安全性完整性需求

(1)安全性需求分析

①需要输入用户名与密码才能登陆本系统;

②输入的登陆密码需要以“*”显示;

③禁止非法数据写入;

④对于各种错误可以做到提醒或纠正;

(2)完整性需求

①数据库设计时要使关系的属性不可再分,满足原子性;

②约束表格中部分属性的内容;

③为数据的新增、修改或删除设定对应的触发器;

④给表格外键设置级联删除,当对应外键被删除时,将其关联信息全部删除;

⑤防止数据库查询发生SQL 注入的攻击;

3.1.4数据流图

(1)顶层数据流图,如图1示:

图1顶层数据流图(2)零层数据流图,如图2示:

图2 零层数据流图(3)一层数据流图,如图3示:

图3 一层流图

3.1.5 E-R图

(1)局部E-R图(以考勤表、员工信息表为例)如图5、图6示:

图5 考勤信息表E-R图

图6 员工信息表E-R图

(2)全局ER图,如图7示:

图7 全局E-R图

3.1.6数据字典

(1)数据结构

部门信息表(表一)

列名说明字段类型约束控制部门名称不同员工有不同部门nchar(10)非空

部门编号所属部门编号1~6级int可以为空

级别信息表(表二)

列名说明字段类型约束控制

其中部门信息表对应部门基本关系,员工信息表对应员工基本关系,级别信息表对应级别基本关系,状态信息表对应员工考勤基本情况,技能信息表对应员工基本技能,员工技能信息表对应技能与员工之间的关系,考勤信息表对应员工与员工打卡状态之间的关系。

3.2.2功能图

(1)系统功能结构图,如图8示:

图8系统功能结构图

3.3详细设计

3.3.1数据库

SQL Server 2014 数据库文件分为3种类型:主数据文件、次数据文件和日志文件。

数据库名(DBO):timebookDB

文件位置(File):D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA

连接数据库:String conStr="jdbc:sqlserver://127.0.0.1:1433;databaseName=timebookDB";

CREATE DATABASE [timebookDB]

CONTAINNMNT = NONE

ON PRIMARY

(NAME = 'timebookDB',FILENAME = 'D:\Program Files\Microsoft SQL

Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\timebookDB.mdf'

SIZE = 5120KB,MAXSIZE = UNLIMITED,FILEGROWTH = 1024KB)

LOG ON

(NAME = 'timebookDB_log',FILENAME = 'D:\Program Files\Microsoft SQL

Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\timebookDB_log.ldf'

SIZE = 2560KB,MAXSIZE = UNLIMITED,FILEGROWTH = 2048KB,FILEGROWTH = 10%) GO

AS

declare @begin int,@time int,@cq char(10)

select @cq=员工编号from inserted

select @begin=上班时间from inserted

select @time=下班时间from 考勤记录表

if(@begin-@time)<5 and (@begin-@time)>0

update 考勤记录表set 状态编号='3' where 员工编号=@cq and 上班时间=@begin

if(@begin-@time)<0

update 考勤记录表set 状态编号='1' where 员工编号=@cq and 上班时间=@begin

if(@begin-@time)>5

update 考勤记录表set 状态编号='2' where 员工编号=@cq and 上班时间=@begin

●创建存储过程统计各员工指定月份的缺席、旷工次数;

use timebookDB

go

create procedure pro_10(@日期date)

as begin

select 员工信息表.员工编号,员工信息表.姓名,count(员工信息表.员工编号)-count(考勤记录表.员工编号)缺席from 员工信息表,考勤记录表

where 员工信息表.员工编号=考勤记录表.员工编号

group by 员工信息表.员工编号,员工信息表.姓名

end

go

●创建check约束,限制员工的性别必须为‘男’或‘女’;

alter table 员工信息表with check

add constraint df_性别default '男' for 性别

(9)执行完上述操作,得到如下界面,如图12示:

图12 数据库详情

(10)表与表之间关系模式图,如图13示:

图13 关系模式图3.3.3主流程图

(1)主系统流程图,如图9示:

图9 主系统流程图主界面:

相关文档
最新文档