数据库课设计考勤管理系统Word格式文档下载.docx
《数据库课设计考勤管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库课设计考勤管理系统Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
四、数据库物理设计7
1、索引7
2、数据表设计7
五、数据库实施8
1、建数据库8
2、建表(职工信息表、出勤记录表、出差记录表、加班记录表、请假记录表、月统计表)9
3、触发器11
六、系统的主要功能实现代码12
1、关系图的建立12
2、简单操作13
2、复杂查询15
七、收获和体会17
一、需求分析
数据需求:
数据库中的数据要符合现实逻辑。
功能需求:
1、职工信息的管理:
包括职工基本信息的查询、增加、修改和删除,记录职工的姓名、性别、年龄和职称。
2、职工考勤的管理:
包括对职工考勤情况的增加、查询、修改和删除,记录职工一个月的考勤天数,每天进行修改。
3、职工出差记录的管理:
包括对职工出差情况的查询、增加、修改和删除。
管理者安排员工出差,对出差时间,次数的管理。
4、职工加班记录的管理:
对职工的加班时间进行统计,记录开始时间和结束时间,对加班信息实现添加,删除等操作。
5、职工请假记录的管理:
包括对职工请假情况的查询、增加、修改和删除。
完善请假信息,如请假开始时间,请假结束时间,请假的次数进行管理。
6、职工月统计记录的管理:
包括对职工月记录的查询、增加、修改和删除。
二、概念结构设计
1、局部E-R图
(1)职工E-R图
(2)出勤E-R图
(3)出差E-R图
(4)加班E-R图
(5)请假E-R图
(6)月统计E-R图
2、整体E-R图
三、逻辑结构设计
1、关系模式
职工信息(职工编号,姓名,性别,年龄,职称)
出勤记录(职工编号,出勤天数)
出差记录(职工编号,出差编号,开始时间,结束时间,出差天数)
加班信息(职工编号,加班编号,加班开始时间,加班结束时间,加班时间)
请假信息(职工编号,请假编号,请假开始时间,请假结束时间,请假天数)
月统计(职工编号,出勤月统计,出差月统计,加班月统计,请假月统计)
2、系统功能模块图
3、数据完整性设计
1)主键约束、非空值约束
职工信息表:
职工编号为主键,所以此项非空
出勤记录表:
出差记录表:
职工编号和出差编号为主键,所以这2项非空
加班记录表:
职工编号和加班编号为主键,所以这2项非空
请假记录表:
职工编号和请假编号为主键,所以这2项非空
月统计表:
2)实施CHECK约束
员工表中建立一个检查约束,即员工性别不是‘男’就是‘女’
CHECK(性别IN('
男'
'
女'
)
3)外键约束
Wno为外键
FOREIGNKEY(Wno)REFERENCESworker(Wno)
通过此键建立6个表的联系
四、数据库物理设计
1、索引
为提高检索性能,为表创建符合索引,其索引项为职工编号和姓名
createindexWno_Wname
onworker(Wno,Wname)
2、数据表设计
职工信息表定义
出勤记录表定义
出差记录表定义
加班记录表定义
请假记录表定义
月统计表定义
五、数据库实施
1、建数据库
CREATEDATABASEattendance
ONPRIMARY
(
NAME='
attendance_data'
FILENAME='
E:
\attendance\attendance_data.mdf'
SIZE=5MB,
MAXSIZE=20MB,
FILEGROWTH=10%
LOGON
(
attendance_log'
\attendance\attendance_log.ldf'
SIZE=2MB,
FILEGROWTH=1MB
2、建表(职工信息表、出勤记录表、出差记录表、加班记录表、请假记录表、月统计表)
useattendance
go
CREATETABLEworker
WnoCHAR(8)PRIMARYKEY,
WnameCHAR(8)UNIQUE,
WsexCHAR
(2)CHECK(WsexIN('
)),
WageSMALLINT,
WtitalCHAR(10),
CREATETABLEwork_note
WnoCHAR(8)PRIMARYKEY,
FOREIGNKEY(Wno)REFERENCESworker(Wno),
work_daystinyint,
CREATETABLEout_note
WnoCHAR(8),
out_noCHAR(8),/*出差编号*/
PRIMARYKEY(Wno,out_no),
FOREIGNKEY(Wno)REFERENCESworker(Wno),
out_timeVARCHAR(50),
back_timeVARCHAR(50),
out_daystinyint,/*出差天数*/
CREATETABLEOT_note
OT_noCHAR(8),
PRIMARYKEY(Wno,OT_no),
OT_timeVARCHAR(50),
OTend_timeVARCHAR(50),
OT_hourstinyint,
CREATETABLEleave_note
leave_noCHAR(8),
PRIMARYKEY(Wno,leave_no),
leave_timeVARCHAR(50),
leaveend_timeVARCHAR(50),
leave_daystinyint,
CREATETABLEmonth_count
workdaystinyint,
OThourstinyint,
outdaystinyint,
leavedaystinyint,
)
3、触发器
创建一个触发器,当删除一个职工的基本信息时,同时也删除其他表中相应职工的信息。
如,当删除worker表中职工基本信息时,同时也删除员工考勤记录表中的内容,请假记录,出差记录,加班记录分别建立此类触发器。
createtriggerdel5
onworker
fordelete
asbegin
deletefrommonth_count
whereWno=(selectWnofromdeleted)
end
六、系统的主要功能实现代码
1、关系图的建立
2、简单操作
1)职工基本信息情况
代码如下:
select*
fromworker
2)职工出勤情况
代码如下:
selectworker.Wno,Wname,Wsex,Wage,Wtital,work_days
fromworker,work_note
wherework_note.Wno=worker.Wno
3)职工加班情况
selectworker.Wno,Wname,OT_hours
fromworker,OT_note
whereworker.Wno=OT_note.WnoANDOT_hours>
4)职工考勤月情况
selectworker.*,workdays,outdays,OThours,leavedays
fromworker,month_count
whereworker.Wno=month_count.Wno
5)修改月考勤信息
updatemonth_count
setworkdays=workdays-4
updatework_note
setwork_days=work_days-4
2、复杂查询
1)职工出差情况
selectworker.Wno,Wname,Wsex,Wage,Wtital,out_days
fromworkerLEFTJOINout_noteon(worker.Wno=out_note.Wno)
2)男性职工考勤月情况
whereworker.Wno=month_count.Wno
ANDWsex='
3)职工加班情况查询
selectworker.Wno,Wname,Wsex,Wage,Wtital,OT_note.*
fromworkerLEFTJOINOT_noteon(worker.Wno=OT_note.Wno)
七、收获和体会
本次课程设计做得比较粗糙,主要是因为对课程和软件的不熟悉。
任务所要求的人机界面还要用到除SQL外的其他语言编写,这样难度就比现在要高多了,根据现在的情况,这个要求是无法达到的了,所以该系统并没有实现人机界面。
我认为本次课程设计的主要目的是给我们了解一下数据库的创建和运行、维护等操作的历程是如何实现的,在这样的条件上再根据自己的能力向上进行完善和拓展。
本系统在信息表述上还不完备,一些模块的信息还不够详细,提供的报表也很有限。
但这些数据是用来测试一下系统的可行性,并不需要设计太多的数据,虽然有一定的局限性,但对于个体户来说,这工作量也足够的大了。
如果要进行进一步完善,下一步可以在熟悉系统设计风格的基础上,在各个界面上进一步添加更多需要的字段和报表,或者添加采集数据的模块,以扩充系统的功能。
尚未解决的问题有几个表的数据虽然有关联,但是我不能将它们之间的关系进行联系,数据的计算都是靠手工来完成,这样并不利于系统的发展,严重影响了工作效率。
若数据输入错误时,并不会发生报错,因为系统并不能验证数据的错误与否。