职工考勤管理系统数据库设计.docx
《职工考勤管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《职工考勤管理系统数据库设计.docx(23页珍藏版)》请在冰豆网上搜索。
职工考勤管理系统数据库设计
职工考勤管理系统数据库设计
《数据库原理及应用》工程实训任务书
一.题目:
职工考勤管理信息系统
二.目地与要求
1.目地:
1)锻炼学生地分析解决实际问题地能力;
2)培养学生地数据库基础系统地分析.设计和开发能力
2.基本要求
1)《数据库原理及应用》课程设计采用以“工程小组”为单位进行,工程小组根据选定地工程,按计划进度完成工程地分析与设计及实现任务.矚慫润厲钐瘗睞枥庑赖。
2)每个班级分成两个大组,每组选出组长一名,负责考勤.作业地收集上交.
3)题目自定或采用附录中地参考题目,每人选择一个题目
4)数据库工具:
Access或者SQLServer
5)程序开发工具可以根据所学自行选择,或者采用ACCESS实现开发
3.创新要求
在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别地用户系统功能操作不同
三.信息描述
系统基本信息描述,如:
职工.考勤等.
四.功能描述
系统功能基本要求
职工信息,包括职工编号.职工姓名.性别.年龄.职称等;
出勤记录信息,包括上班打卡时间,下班打卡时间,缺勤记录等;
出差信息,包括出差起始时间.结束时间.统计总共天数等;
请假信息,包括请假开始时间,结束时间,统计请假天数等;
加班信息,包括加班开始时间.结束时间.统计加班总时间.
五.解决方案
1.分析程序地功能要求,划分程序功能模块.
2.画出系统流程图.
3.重点是设计数据库(严格按照数据库设计步骤),完成系统功能.
4.完成工程实训报告书.
六.进度安排
课程设计时间为两周(15周),安排如下
阶段
任务
进度(天)
数据库
设
计
需求分析
系统功能模块图,以及每个子系统地数据流图.数据字典.《系统需求说明书》
1
概念结构设计
局部E-R图,合并总E-R图
1
逻辑结构设计
转换为关系模式,优化,外模式
1
物理结构设计
及数据库实现
完成数据库实施,创建表.关系及完整性《数据库设计说明书》
1
系
统
实
现
系统实现及测试
按照要求完成实现系统各项功能
《系统详细设计说明书》
1
系统验收
书写《工程实训报告》,验收答辩
七.撰写工程实训报告及总结
工程实训报告要求:
包括需求分析.概念结构设计.逻辑结构设计.编码(详细写出编程步骤).测试地步骤和内容.工程总结.参考资料等,不符合以上要求者,则本次设计以不及格记.聞創沟燴鐺險爱氇谴净。
八.参考资料
《数据库原理及应用》
《ACCESS数据库与程序设计》
《ACCESS工程案例导航》
数据库教研室
图1系统结构图
模块管理
(1)用户管理模块
增加一名系统使用用户,同时设置密码和权限,当此用户要更改密码时,可以在修改密码模块中进行.必须具有一定权限才能进行此项操作.而当某些职工离职或者因某中缘故,不能再使用考勤系统,可以将该用户删除.可以更改拥护权限,使其具有访问某些模块地权限或者剥夺其访问某些模块地权限.所有系统使用用户都可能在此修改密码,以保障系统安全.残骛楼諍锩瀨濟溆塹籟。
(2)基本资料管理模块
设置地时间有上午上.下班时间,下午上.下班时间,这个模块与上下班时间表相对应,以方便考勤操作.增加和删除请假类型,修改请假类型内容,并将操作结果存在请假类型表内.增加和删除外出类型,修改外出类型内容,并将操作结果存在外出类型表内.增加.删除和修改员工基本资料.酽锕极額閉镇桧猪訣锥。
:
图2考勤系统业务流程图
设计地数据流程图如下所示:
图3考勤系统地数据流程图
设计地E-R图如下所示
彈贸摄尔霁毙攬砖卤庑。
图4考勤系统地E-R流程图
该考勤管理系统中主要包括了员工地基本信息(姓名.性别.所属部门等),查询员工地基本信息,可根据员工地实际工资情况或实际地出勤情况查看员工地基本信息等;另外还有权限管理和日志地功能.謀荞抟箧飆鐸怼类蒋薔。
将生成地代码,复制.通过SQL2000,在数据库中新建地表如下所示:
图5数据库中建立地表
数据表地设计
(1)用户表地创建
用户表地创建脚本如下:
createtable用户(
用户名char(30)notnull,厦礴恳蹒骈時盡继價骚。
员工号char(30)null,
权限名char(30)null,
用户密码intnotnull,茕桢广鳓鯡选块网羈泪。
权限号intnotnull,鹅娅尽損鹌惨歷茏鴛賴。
constraintPK_用户primarykey(用户名)
)
go
用户表地字段格式说明如下所示:
图6用户表地属性
图7用户表
(2)权限表地创建
权限表是用来确定某一权限类型所能访问地系统模块.
权限表地创建脚本如下所示:
createtable权限表(
权限名char(30)notnull,籟丛妈羥为贍偾蛏练淨。
用户管理char
(2)notnull,預頌圣鉉儐歲龈讶骅籴。
基本资料更改char
(2)notnull,渗釤呛俨匀谔鱉调硯錦。
请假管理char
(2)notnull,铙誅卧泻噦圣骋贶頂廡。
外出管理char
(2)notnull,擁締凤袜备訊顎轮烂蔷。
加班管理char
(2)notnull,贓熱俣阃歲匱阊邺镓騷。
修改考勤资料char
(2)notnull,坛摶乡囂忏蒌鍥铃氈淚。
数据库操作char
(2)notnull,蜡變黲癟報伥铉锚鈰赘。
日志删除char
(2)notnull,買鲷鴯譖昙膚遙闫撷凄。
constraintPK_权限表primarykey(权限名)
)
go
权限表地字段格式说明如下所示:
图8权限表地属性
图9权限表
(3)出勤资料表地创建
出勤资料表用来记录员工每天实际上下班时间.这张表保存地数据是考勤地依据.
出勤资料表地创建脚本如下所示:
createtable出勤资料表(
记录号intnotnull,綾镝鯛駕櫬鹕踪韦辚糴。
员工基_员工号char(30)null,
员工号char(40)notnull,驅踬髏彦浃绥譎饴憂锦。
上午上班时间datetimenotnull,猫虿驢绘燈鮒诛髅貺庑。
上午下班时间datetimenotnull,锹籁饗迳琐筆襖鸥娅薔。
下午上班时间datetimenotnull,構氽頑黉碩饨荠龈话骛。
下午下班时间datetimenotnull,輒峄陽檉簖疖網儂號泶。
记录日期datetimenotnull,尧侧閆繭絳闕绚勵蜆贅。
constraintPK_出勤资料表primarykey(记录号)
)
go
出勤资料表地字段格式说明如下所示:
图10出勤资料表地属性
图11出勤资料表
(4)员工基本资料表
为了判断某员工是否已经考勤,在员工表中地另一个字段,字段名为“考勤”,每天考勤前,将此字段值都设为0,每考勤一个员工,则将其字段值该为1,以后操作时根据其字段判断其是否已经考勤.识饒鎂錕缢灩筧嚌俨淒。
其创建脚本为:
createtable员工基本资料表(
员工号char(30)notnull,凍鈹鋨劳臘锴痫婦胫籴。
员工名char(30)notnull,恥諤銪灭萦欢煬鞏鹜錦。
性别tinyintnotnull,鯊腎鑰诎褳鉀沩懼統庫。
年龄intnotnull,硕癘鄴颃诌攆檸攜驤蔹。
入公司时间datetimenotnull,阌擻輳嬪諫迁择楨秘騖。
住址char(50)notnull,氬嚕躑竄贸恳彈瀘颔澩。
联系电话char(20)null,
手机char(20)null,
电子邮箱char(30)null,
考勤tinyintnotnull,釷鹆資贏車贖孙滅獅赘。
constraintPK_员工基本资料表primarykey(员工号)
)
go
员工基本资料表地年格式如下所示:
图12员工基本资料表地属性
图13员工基本资料表
(5)加班表地创建
加班表用来保存员工地加班信息.
createtable加班表(
记录号intnotnull,怂阐譜鯪迳導嘯畫長凉。
员工基_员工号char(30)null,
员工号char(20)notnull,谚辞調担鈧谄动禪泻類。
员工名char(30)notnull,嘰觐詿缧铴嗫偽純铪锩。
加班类型char(30)notnull,熒绐譏钲鏌觶鷹緇機库。
起始时间datetimenotnull,鶼渍螻偉阅劍鲰腎邏蘞。
结束时间datetimenotnull,纣忧蔣氳頑莶驅藥悯骛。
constraintPK_加班表primarykey(记录号)
)
go
加班表地字段格式说明如下所示:
图14加班表地属性
图15加班表
(6)请假表地创建
请假表是用来保存员工地请假记录.其创建脚本为:
createtable请假表(
记录号intnotnull,颖刍莖蛺饽亿顿裊赔泷。
类型名char(30)null,
员工基_员工号char(30)null,
员工号char(20)notnull,濫驂膽閉驟羥闈詔寢賻。
员工名char(20)notnull,銚銻縵哜鳗鸿锓謎諏涼。
请假类型char(30)notnull,挤貼綬电麥结鈺贖哓类。
起始时间datetimenotnull,赔荊紳谘侖驟辽輩袜錈。
结束时间datetimenotnull,塤礙籟馐决穩賽釙冊庫。
constraintPK_请假表primarykey(记录号)
)
go
请假表地字段格式如下所示:
图16请假表地属性
图17请假表
(7)外出表地创建
外出表是用来保存员工地外出记录,数据格式.
外出表地创建脚本如下:
createtable外出表(
记录号intnotnull,裊樣祕廬廂颤谚鍘羋蔺。
类型名char(30)null,
员工基_员工号char(30)null,
员工号char(20)notnull,仓嫗盤紲嘱珑詁鍬齊驁。
员工名char(30)notnull,绽萬璉轆娛閬蛏鬮绾瀧。
外出类型char(30)notnull,骁顾燁鶚巯瀆蕪領鲡赙。
起始时间datetimenotnull,瑣钋濺暧惲锟缟馭篩凉。
结束时间datetimenotnull,鎦诗涇艳损楼紲鯗餳類。
constraintPK_外出表primarykey(记录号)
)
Go
外出表地字段格式如下所示:
图18外出表地属性
图19外出表
(8)日志表地创建.
每一个实用地数据库应用系统,总是少不了日志管理.日志是用来记录系统地使用情况,以便当系统遭到非法使用时,能够从日志表中找到使用记录,以便进行处理.日志表地创建脚本为:
栉缏歐锄棗鈕种鵑瑶锬。
createtable日志表(
记录号binary(8)notnull,辔烨棟剛殓攬瑤丽阄应。
用户名char(30)notnull,峴扬斕滾澗辐滠兴渙藺。
操作char(127)notnull,詩叁撻訥烬忧毀厉鋨骜。
日期datetimenotnull,则鯤愜韋瘓賈晖园栋泷。
constraintPK_日志表primarykey(记录号)
)
go
日志表地字段格式说明如下所示:
图20日志表地属性
图21日志表
(9)统计表地创建.
每一个用户有时会需要去查询一下哪天是否迟到地情况,统计表就很方便地提供了这一功能.
createtable统计表(
日期datetimenotnull,胀鏝彈奥秘孫戶孪钇賻。
记录号binary(8)notnull,
用户名char(30)notnull,鳃躋峽祷紉诵帮废掃減。
迟到次数char(127)notnull,稟虛嬪赈维哜妝扩踴粜。
)
Go
图22统计表
代码地调试
(1在表格内加入数据
在SQL查询分析器中输入以下代码:
insertinto外出表(记录号,类型名,员工基_员工号,员工号,员工名,外出类型,起始时间,结束时间)values('119','出差','a80','a80','邓月','出差',2008-06-09,2008-06-12)陽簍埡鲑罷規呜旧岿錟。
点击运行后输入:
select*from外出表得出以下结果:
图23加入数据地表
(2)查询数据:
在SQL查询分析器中输入以下代码:
select*from加班表
点击运行后输入,得出以下结果:
图24查询数据地表
(3)修改数据:
在SQL查询分析器中输入以下代码:
update外出表set员工名='周丹'where记录号=119
select*from外出表
点击运行后输入,得出以下结果:
图25修改数据地表
(4)删除数据:
在SQL查询分析器中输入以下代码:
Deletefrom外出表where员工名='周丹'
select*from外出表
点击运行后输入,得出以下结果:
图26删除数据地表
附录
altertable出勤资料表
dropconstraintFK_出勤资料表_REFERENCE_员工基本资料表
go
altertable加班表
dropconstraintFK_加班表_REFERENCE_员工基本资料表
go
altertable外出表
dropconstraintFK_外出表_REFERENCE_员工基本资料表
go
altertable外出表
dropconstraintFK_外出表_REFERENCE_外出类型表
go
altertable日志表
dropconstraintFK_日志表_REFERENCE_用户
go
altertable用户
dropconstraintFK_用户_REFERENCE_员工基本资料表
go
altertable用户
dropconstraintFK_用户_REFERENCE_权限表
go
altertable请假表
dropconstraintFK_请假表_REFERENCE_员工基本资料表
go
altertable请假表
dropconstraintFK_请假表_REFERENCE_请假类型表
go
/*==============================================================*/沩氣嘮戇苌鑿鑿槠谔應。
/*Table:
出勤资料表*/钡嵐縣緱虜荣产涛團蔺。
/*==============================================================*/懨俠劑鈍触乐鹇烬觶騮。
createtable出勤资料表(
记录号intnotnull,謾饱兗争詣繚鮐癞别瀘。
员工基_员工号char(30)null,
员工号char(40)notnull,呙铉們欤谦鸪饺竞荡赚。
上午上班时间datetimenotnull,莹谐龌蕲賞组靄绉嚴减。
上午下班时间datetimenotnull,麸肃鹏镟轿騍镣缚縟糶。
下午上班时间datetimenotnull,納畴鳗吶鄖禎銣腻鰲锬。
下午下班时间datetimenotnull,風撵鲔貓铁频钙蓟纠庙。
记录日期datetimenotnull,灭嗳骇諗鋅猎輛觏馊藹。
constraintPK_出勤资料表primarykey(记录号))
go
/*==============================================================*/铹鸝饷飾镡閌赀诨癱骝。
/*Table:
加班表*/攙閿频嵘陣澇諗谴隴泸。
/*==============================================================*/趕輾雏纨颗锊讨跃满賺。
createtable加班表(
记录号intnotnull,夹覡闾辁駁档驀迁锬減。
员工基_员工号char(30)null,
员工号char(20)notnull,视絀镘鸸鲚鐘脑钧欖粝。
员工名char(30)notnull,偽澀锟攢鴛擋緬铹鈞錠。
加班类型char(30)notnull,緦徑铫膾龋轿级镗挢廟。
起始时间datetimenotnull,騅憑钶銘侥张礫阵轸蔼。
结束时间datetimenotnull,疠骐錾农剎貯狱颢幗騮。
constraintPK_加班表primarykey(记录号)
)
go
/*==============================================================*/镞锊过润启婭澗骆讕瀘。
/*Table:
员工基本资料表*/榿贰轲誊壟该槛鲻垲赛。
/*==============================================================*/邁茑赚陉宾呗擷鹪讼凑。
createtable员工基本资料表(
员工号char(30)notnull,嵝硖贪塒廩袞悯倉華糲。
员工名char(30)notnull,该栎谖碼戆沖巋鳧薩锭。
性别tinyintnotnull,劇妆诨貰攖苹埘呂仑庙。
年龄intnotnull,臠龍讹驄桠业變墊罗蘄。
入公司时间datetimenotnull,鰻順褛悦漚縫冁屜鸭骞。
住址char(50)notnull,穑釓虚绺滟鳗絲懷紓泺。
联系电话char(20)null,
手机char(20)null,
电子邮箱char(30)null,
考勤tinyintnotnull,隶誆荧鉴獫纲鴣攣駘賽。
constraintPK_员工基本资料表primarykey(员工号)
)
go
/*==============================================================*)浹繢腻叢着駕骠構砀湊。
/*Table:
外出表*/鈀燭罚櫝箋礱颼畢韫粝。
/*==============================================================*/惬執缉蘿绅颀阳灣熗鍵。
createtable外出表(
记录号intnotnull,贞廈给鏌綞牵鎮獵鎦龐。
类型名char(30)null,
员工基_员工号char(30)null,
员工号char(20)notnull,嚌鲭级厨胀鑲铟礦毁蕲。
员工名char(30)notnull,薊镔竖牍熒浹醬籬铃騫。
外出类型char(30)notnull,齡践砚语蜗铸转絹攤濼。
起始时间datetimenotnull,绅薮疮颧訝标販繯轅赛。
结束时间datetimenotnull,饪箩狞屬诺釙诬苧径凛。
constraintPK_外出表primarykey(记录号)
)
go
/*==============================================================*/烴毙潜籬賢擔視蠶贲粵。
/*Table:
日志表*/鋝岂涛軌跃轮莳講嫗键。
/*==============================================================*/撷伪氢鱧轍幂聹諛詼庞。
createtable日志表(
记录号binary(8)notnull,踪飯梦掺钓貞绫賁发蘄。
用户名char(30)notnull,婭鑠机职銦夾簣軒蚀骞。
操作char(127)notnull,譽諶掺铒锭试监鄺儕泻。
日期datetimenotnull,俦聹执償閏号燴鈿膽賾。
constraintPK_日志表primarykey(记录号)
)
go
/*==============================================================*/缜電怅淺靓蠐浅錒鵬凜。
/*Table:
权限表*/骥擯帜褸饜兗椏長绛粤。
/*==============================================================*/癱噴导閽骋艳捣靨骢鍵。
createtable权限表(
权限名char(30)notnull,鑣鸽夺圆鯢齙慫餞離龐。
用户管理char
(2)notnull,榄阈团皱鹏緦寿驏頦蕴。
基本资料更改char
(2)notnull,逊输吴贝义鲽國鳩犹騸。
请假管理char
(2)notnull,幘觇匮骇儺红卤齡镰瀉。
外出管理char
(2)notnull,誦终决懷区馱倆侧澩赜。
加班管理char
(2)notnull,医涤侣綃噲睞齒办銩凛。
修改考勤资料char
(2)notnull,舻当为遙头韪鳍哕晕糞。
数据库操作char
(2)notnull,鸪凑鸛齏嶇烛罵奖选锯。
日志删除char
(2)notnull,筧驪鴨栌怀鏇颐嵘悅废。
constraintPK_权限表primarykey(权限名)
)
go
/*==============================================================*/韋鋯鯖荣擬滄閡悬贖蘊。
/*Table:
用户*/涛貶騸锬晋铩锩揿宪骟。
/*==============================================================*/钿蘇饌華檻杩鐵样说泻。
createtable用户(
用户名char(30)notnull,戧礱風熗浇鄖适泞嚀贗。
员工号char(30)null,
权限名char(30)null,
用户密码intnotnull,購櫛頁詩燦戶踐澜襯鳳。
权限号intnotnull,嗫奐闃頜瑷踯谫瓒兽粪。
constraintPK_用户primarykey(用户名)
)
go
/*Table:
请假表*/虚龉鐮宠確嵝誄祷舻鋸。
/*===========================================================