数据库课程设计之某单位考勤管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 主系统流程图主界面: