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

上传人:b**** 文档编号:14763693 上传时间:2023-06-27 格式:DOCX 页数:36 大小:1.25MB
下载 相关 举报
数据库课程设计之某单位考勤管理系统.docx_第1页
第1页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第2页
第2页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第3页
第3页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第4页
第4页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第5页
第5页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第6页
第6页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第7页
第7页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第8页
第8页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第9页
第9页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第10页
第10页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第11页
第11页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第12页
第12页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第13页
第13页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第14页
第14页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第15页
第15页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第16页
第16页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第17页
第17页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第18页
第18页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第19页
第19页 / 共36页
数据库课程设计之某单位考勤管理系统.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《数据库课程设计之某单位考勤管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计之某单位考勤管理系统.docx(36页珍藏版)》请在冰点文库上搜索。

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

数据库程设计报告第36页共35页

1.课程设计目的

(1)培养员工运用所学课程《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》课程相关的理论知识,学会分析实际问题的能力。

(2)培养员工掌握用《数据库系统原理》的知识设计计算机应用课题的思想和方法。

(3)培养员工调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

(4)通过课程设计的训练,要求员工在教师的指导下,独立完成大作业。

2.课程设计任务与要求:

任务:

(1)通过调查研究和运用Internet,收集和调查有关资料、最新技术信息。

(2)基本掌握撰写小论文的基本步骤和写作方法。

(3)根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。

(4)根据课题的要求基本理解和掌握E-R图的设计方法和关系模式的转换。

(5)根据ER图生成数据库表。

(6)数据库完整性、安全性保证措施

(7)数据库实施维护计划

基本要求:

(1)每个员工从给定题目中任选一个作为课程设计题目,调查分析一个具体的或模拟的实例。

同一个班中的同学不允许选择相同的题目。

选好题目后发给班长或学习汇总,产生选题冲突时,由班长/委员协调解决;

(2)描述该实例的业务信息和管理工作的要求;

(3)建立数据字典;

(4)列出实体、联系;

(5)指出实体和联系的属性;

(6)画出E-R图;

(7)将E-R图转换成关系模式,并注明主码和外码;

(8)创建数据库;

(9)根据题目的要求写查询、存储过程、触发器等。

问题描述:

l实现部门、员工信息管理;

l实现系统信息管理,用于设置上午、下午的上下班时间;

l实现考勤登记;

l创建触发器,如果打卡时间超出上班时间,并且小于5分钟,登记为迟到,否则登记为旷工;

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

l创建视图分组查询各部门的职工信息及职工人数,使用Compute子句;

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

l表间关系

3.课程设计说明书

3.1需求分析

3.1.1功能需求

(1)管理层管理功能包括:

① 新员工基本信息录入工作

② 在线查询公司各部门员工的考勤信息

③ 修改员工基本信息

(2)员工功能包括

① 签到、签出上班打卡

② 查询个人账号信息

③ 在线修改个人信息

3.1.2数据需求

关于考勤系统,以下是设计数据信息表:

(1)部门信息表:

部门名称nchar(10)、部门编号int;

(2)级别信息表:

级别int、级别名称nchar(10);

(3)技能信息表:

技能编号nchar(10)、技能名称nchar(10);

(4)员工信息表:

级别int、员工编号int、密码int、部门编号int、姓名nchar(10)、性别nchar(10)、年龄int、邮箱nchar(10)、住址nchar(10)、电话nchar(10)、进入公司日期nchar(10)、学历nchar(10)、政治面貌nchar(10);

(5)员工技能表:

员工编号int、技能编号int;

(6)考勤记录表:

员工编号int、状态编号int、上班时间nchar(20)、下班时间nchar(20)、日期nchar(20);

(7)状态信息表:

状态编号int、状态名称nchar(10);

图4系统功能结构图

3.1.3安全性完整性需求

(1)安全性需求分析

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

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

③ 禁止非法数据写入;

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

(2)完整性需求

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

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

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

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

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

3.1.4数据流图

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

图1顶层数据流图

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

图2零层数据流图

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

图3一层流图

3.1.5E-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

可以为空

级别信息表(表二)

列名

说明

字段类型

约束控制

级别

对应的级别为1~5级

int

非空

级别名称

员工的具体职位

nchar(10)

可以为空

技能信息表(表三)

列名

说明

字段类型

约束控制

技能编号

对应的技能为1~5种

nchar(10)

非空

技能名称

不同职位负责不同工作

nchar(10)

可以为空

考勤信息表(表四)

列名

说明

字段类型

约束控制

员工编号

对应的级别为1~5

int

非空

状态编号

员工工作的三种状态1~3(上班、缺勤、早退)

int

可以为空

上班时间

8:

00-11:

00

nchar(20)

可以为空

下班时间

13:

00-18:

00

nchar(20)

可以为空

日期

匹配具体时间

Date

可以为空

员工技能表(表五)

列名

说明

字段类型

约束控制

员工编号

对应的级别为1~5

int

可以为空

技能编号

对应的技能为1~5种

int

可以为空

员工信息表(表六)

列名

说明

字段类型

约束控制

级别

对应的级别为1~5级

int

非空

员工编号

不同职位的员工编号

int

非空

密码

独立存在用于登陆

int

非空

部门编号

部门编号1~5

int

可以为空

姓名

员工的姓名

nchar(10)

可以为空

性别

性别(男,女)

nchar(10)

可以为空

年龄

员工的年龄

int

可以为空

邮箱

联系方式

nchar(10)

可以为空

住址

员工的家庭住址

nchar(10)

可以为空

电话

联系方式

nchar(10)

可以为空

进入公司日期

入职时间

nchar(10)

可以为空

学历

员工的学历(...)

nchar(10)

可以为空

政治面貌

团员、党员、群众

nchar(10)

可以为空

状态信息表(表七)

列名

说明

字段类型

约束控制

状态编号

对应的上班状态

int

非空

状态名称

上班、矿工、早退

nchar(10)

可以为空

(3)数据流

数据流简述:

查询员工基础信息

数据流来源:

员工信息存储

数据流去向:

员工信息模块

数据流组成:

级别+员工编号+密码+部门编号+姓名+性别+年龄+邮箱+住址+电话+进入公司时间+学历+政治面貌

数据流简述:

添加/删除/修改员工基础信息

数据流来源:

登录用户请求处理

数据流去向:

员工信息模块

数据流组成:

级别+员工编号+密码+部门编号+姓名+性别+年龄+邮箱+住址+电话+进入公司时间+学历+政治面貌

数据流简述:

查询/搜索部门信息

数据流来源:

员工信息存储

数据流去向:

员工信息管理模块

数据流组成:

部门信息+级别+技能+考勤+状态

数据流简述:

添加/删除/修改部门信息

数据流来源:

登录用户请求处理

数据流去向:

员工信息管理模块

数据流组成:

部门信息+级别+技能+考勤+状态

数据流简述:

查询考勤信息

数据流来源:

考勤信息存储

数据流去向:

员工信息管理模块

数据流组成:

部门编号+级别+状态

数据流简述:

添加/删除考勤信息

数据流来源:

登录用户请求处理

数据流去向:

员工信息管理模块

数据流组成:

部门编号+级别+状态

数据流简述:

登录信息

数据流来源:

用户登录请求处理

数据流去向:

登录模块

数据流组成:

用户名+密码

数据流简述:

查询员工考勤人数信息

数据流来源:

登录用户请求处理

数据流去向:

员工信息管理模块

数据流组成:

男生人数+女生人数

(4)数据存储

数据存储名:

用户信息

简述:

存放登录系统时需要的用户的信息

数据存储组成:

用户名+密码

关键字:

用户名

数据存储名:

部门信息

简述:

存放公司所有部门的信息

数据存储组成:

部门编号+级别号+级别技能+员工编号

关键字:

员工编号

数据存储名:

考勤信息

简述:

存放公司考勤的信息

数据存储组成:

部门编号+级别编号+员工编号+状态编号

关键字:

员工编号+状态编号

数据存储名:

员工信息

简述:

存放公司员工的信息

数据存储组成:

级别+员工编号+密码+部门编号+姓名+性别+年龄+邮箱+住址+电话+进入公司时间+学历+政治面貌

关键字:

员工编号

(5)处理过程

处理过程名:

搜索员工

输入数据:

员工编号

输出数据:

级别+员工编号+密码+部门编号+姓名+性别+年龄+邮箱+住址+电话+进入公司时间+学历+政治面貌

处理逻辑:

按照员工编号查找员工信息和与其对应的部门信息,之后输出数据

处理过程名:

添加/修改员工

输入数据:

添加/修改员工信息

输出数据:

添加/修改是否成功的信息

处理逻辑:

用户输入要添加/修改的员工信息,数据库在确认员工信息是否合法之后给出添加/修改成功或失败的提示

处理过程名:

查询员工

输入数据:

申请查询信息

输出数据:

查询员工信息

处理逻辑:

按照员工编号的递增顺序输出存储的员工信息

处理过程名:

查询部门

输入数据:

申请查询信息

输出数据:

查询部门信息

处理逻辑:

按照部门编号的递增顺序输出存储的部门信息

处理过程名:

用户登录

输入数据:

用户名+密码

输出数据:

登录是否成功的信息

处理逻辑:

先检测用户名是否存在,若不存在则提示“用户名不存在”,若用户名存在则核对其对应密码是否正确,正确则显示登录成功,跳转系统主页,否则提示登录失败

处理过程名:

查询部门考勤人数

输入数据:

部门编号

输出数据:

打卡人数

处理逻辑:

用户输入要查询员工打卡人数的部门编号,若输入的部门编号存在则调用存储过程,返回打卡的人数,之后以提示方式给出,否则提示输入有误并需要重新输入

3.2概要设计

3.2.1关系模式

以下为本系统数据库的数据关系模型,下划直线标明的是关系模式的主码。

部门信息表(部门编号,部门信息)

级别信息表(级别编号,级别名称)

技能信息表(技能编号,技能名称)

考勤记录表(员工编号,状态编号,上班时间,下班时间,日期)

员工技能表(员工编号,技能编号)

状态信息表(状态编号,状态名称)

员工信息表(级别编号,员工编号,部门编号,密码,性别,姓名,年龄,电话,邮箱,住址,进入公司时间,学历,政治面貌)

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

3.2.2功能图

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

图8系统功能结构图

3.3详细设计

3.3.1数据库

SQLServer2014数据库文件分为3种类型:

主数据文件、次数据文件和日志文件。

数据库名(DBO):

timebookDB

文件位置(File):

D:

\ProgramFiles\MicrosoftSQLServer\MSSQL12.MSSQLSERVER\MSSQL\DATA

连接数据库:

StringconStr="jdbc:

sqlserver:

//127.0.0.1:

1433;databaseName=timebookDB";

CREATEDATABASE[timebookDB]

CONTAINNMNT=NONE

ONPRIMARY

(NAME='timebookDB',FILENAME='D:

\ProgramFiles\MicrosoftSQLServer\MSSQL12.MSSQLSERVER\MSSQL\DATA\timebookDB.mdf'

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

LOGON

(NAME='timebookDB_log',FILENAME='D:

\ProgramFiles\MicrosoftSQLServer\MSSQL12.MSSQLSERVER\MSSQL\DATA\timebookDB_log.ldf'

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

3.3.2表

(1)用sql语句创建部门信息表:

USE[timebookDB]

GO

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[部门信息表](

[部门名称][nchar](10)NOTNULL,

[部门编号][int]NOTNULL,

CONSTRAINT[PK_Table_1]PRIMARYKEYCLUSTERED

[部门编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

部门信息表(表一)

列名

字段类型

是否可为空

部门名称

nchar(10)

非空

部门编号

int

非空

(2)用sql语句创建级别信息表:

USE[timebookDB]

GO

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[级别信息表](

[级别][int]NOTNULL,

[级别名称][nchar](10)NULL,

CONSTRAINT[PK_级别信息表]PRIMARYKEYCLUSTERED

[级别]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

级别信息表(表二)

列名

约束

字段类型

是否可为空

级别编号

主键

int

非空

级别名称

nchar(10)

可以为空

(3)用sql语句创建技能信息表:

USE[timebookDB]

GO

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[技能信息表](

[技能编号][nchar](10)NOTNULL,

[技能名称][nchar](10)NULL,

CONSTRAINT[PK_技能信息表]PRIMARYKEYCLUSTERED

[技能编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

技能信息表(表三)

列名

约束

字段类型

是否可为空

技能编号

主键

nchar(10)

非空

技能名称

nchar(10)

可以为空

(4)用sql语句创建考勤信息表:

USE[timebookDB]

GO

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[考勤记录表](

[员工编号][int]NOTNULL,

[状态编号][int]NOTNULL,

[上班时间][nchar](20)NULL,

[下班时间][nchar](20)NULL,

[日期][nchar](20)NULL,

CONSTRAINT[PK_Table_1_1]PRIMARYKEYCLUSTERED

[员工编号]ASC,

[状态编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

ALTERTABLE[dbo].[考勤记录表]WITHCHECKADDCONSTRAINT[FK_考勤记录表_状态信息表]FOREIGNKEY([状态编号])

REFERENCES[dbo].[状态信息表]([状态编号])

GO

ALTERTABLE[dbo].[考勤记录表]CHECKCONSTRAINT[FK_考勤记录表_状态信息表]

GO

考勤信息表(表四)

列名

约束

字段类型

是否可为空

员工编号

主键

int

非空

状态编号

主键

int

非空

上班时间

nchar(20)

可以为空

下班时间

nchar(20)

可以为空

日期

Date

可以为空

(5)用sql语句创员工技能信息表:

USE[timebookDB]

GO

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[员工技能表](

[员工编号][int]NOTNULL,

[技能编号][int]NOTNULL,

CONSTRAINT[PK_Table_1_2]PRIMARYKEYCLUSTERED

[员工编号]ASC,

[技能编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

员工技能表(表五)

列名

约束

字段类型

是否可为空

员工编号

主键

int

非空

技能编号

主键

int

非空

(6)用sql语句创建员工信息表:

USE[timebookDB]

GO

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[员工信息表](

[级别][int]NOTNULL,

[员工编号][int]NOTNULL,

[密码][int]NULL,

[部门编号][int]NOTNULL,

[姓名][nchar](10)NULL,

[性别][nchar](10)NULLCONSTRAINT[df_性别]DEFAULT('男'),

[年龄][int]NULL,

[邮箱][nchar](10)NULL,

[住址][nchar](10)NULL,

[电话][nchar](10)NULL,

[进入公司日期][nchar](10)NULL,

[学历][nchar](10)NULL,

[政治面貌][nchar](10)NULL,

CONSTRAINT[PK_Table_1_3]PRIMARYKEYCLUSTERED

[级别]ASC,

[员工编号]ASC,

[部门编号]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

ALTERTABLE[dbo].[员工信息表]WITHCHECKADDCONSTRAINT[FK_员工信息表_部门信息表]FOREIGNKEY([部门编号])

REFERENCES[dbo].[部门信息表]([部门编号])

GO

ALTERTABLE[dbo].[员工信息表]CHECKCONSTRAINT[FK_员工信息表_部门信息表]

GO

ALTERTABLE[dbo].[员工信息表]WITHCHECKADDCONSTRAINT[FK_员工信息表_级别信息表]FOREIGNKEY([级别])

REFERENCES[dbo].[级别信息表]([级别])

GO

ALTERTABLE[dbo].[员工信息表]CHECKCONSTRAINT[FK_员工信息表_级别信息表]

GO

员工信息表(表六)

列名

约束

字段类型

是否可为空

级别

主键

int

非空

员工编号

主键

int

非空

密码

int

非空

部门编号

主键

int

非空

姓名

nchar(10)

可以为空

性别

nchar(10)

可以为空

年龄

int

可以为空

邮箱

nchar(10)

可以为空

住址

nchar(10)

可以为空

电话

nchar(10)

可以为空

进入公司日期

nchar(10)

可以为空

学历

nchar(10)

可以为空

政治面貌

nchar(10)

可以为空

(7)用sql语句创建员工状态信息表:

USE[timebookDB]

GO

SETANSI_NULLSON

GO

SET

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2