1、数据库原理及应用课程设计设计汇报题 目: 某单位人事管理系统 学 号: 学生姓名: 指导老师: 提交时间: -01-04 目录第1章需求分析11.1需求调查11.2 系统功效分析21.3 面对用户需求分析3第2章面向对象分析和设计4第3章逻辑结构设计7类和对象向关系模式转换12第4章数据库物理结构设计124.1存取方法设计124.2存放结构设计124.3物理设计13第5章数据库完整性设计165.1 主键及唯一性索引165.2 参考完整性设计165.3Check约束175.4 触发器设计17第6章 数据库视图设计19第7章 数据库存放过程设计19总结20参考文件:20人事管理系统后台数据库第1章
2、需求分析1.1需求调查经过对各个用户调查,该人事管理系统有以下需求:1) 职员信息管理:实现统计在该单位中全部些人员在该单位职员信息,实现对职员信息管理,也包含对职员信息增加、删除、修改等功效。2) 部门信息管理:实现对该单位中各个部门编号、部门相关信息统计,此时也将单位中全部些人员进行分类管理。3) 职位调动管理:实现当职员就职信息发生更改时候,系统进行对应关联信息更改,即增加对应修改信息同时,职员信息管理中对应信息进行修改。4) 系统管理人员信息管理:实现对对应系统管理人员帐号、密码等基础信息管理功效。5) 出勤信息管理:实现对每一位职员出勤情况统计,统计对应出勤刷卡机号和出勤时间信息管理
3、。6) 奖惩管理:实现针对于不一样奖惩类型、奖惩金额等信息管理,实现输入奖惩信息修改对应工资信息。7) 工资管理:实现各个职员工资条目信息管理。1.2 系统功效分析1) 职员管理:关键应用于对职员在该单位基础信息管理,能够实施对某职员增加、删除、修改信息功效等。2) 管理人员管理:用于对对应系统管理人员帐号、密码等基础信息管理。3) 个人经历管理:可对各个职员过往经历汇总并统计留档,完善职员在该单位中基础信息,增加单位对职员个人经历了解。4) 家庭关系管理:可对各个职员家庭人员和关系进行汇总并统计留档,完善职员在该单位中基础信息,增加单位对职员家庭情况了解5) 部门管理: 关键用于分别管理各个
4、部门基础信息,和部门实际情况统计。6) 职位调动管理: 负责统计单位中人员职位调动信息统计、统计、管理等,并当更新职位调动信息时候,将对应职员、部门信息进行修改。7) 出勤信息管理: 统计职员每一次刷卡出勤相关信息,做好统计工作。8) 刷卡机管理: 管理出勤是所需要出勤统计刷卡机。9) 请假统计管理:用于统计职员请假信息,包含职员编号、请假时间、销假时间、请假天数等信息。10) 奖惩统计管理:用于统计职员奖惩信息,包含职员编号、奖惩类型、奖惩金额、奖惩时间等信息。11) 工资管理:用于统计统计职员工资信息,基础工资、将罚金、时间等。1.3 面对用户需求分析在该单位人事管理系统中,最关键两个功效
5、就是查询信息和管理信息。系统用户又分为职员和管理人员,所以我将该系统又分为以下若干子系统,包含职员查询子系统、管理员查询子系统、职员信息管理子系统、部门信息管理子系统、信息变更子系统、工资管理子系统,以满足不一样用户不一样应用需求。下面从细分后各个子系统分析子系统需求:1) 职员查询子系统:可供职员查询和自己相关姓名、职位、部门等基础信息,和各个时期工资、奖金罚款发放情况。2) 管理员查询子系统可供管理员查询所管理职员全方面信息,含有管理权限。3) 职员信息管理子系统 当职员本身基础情况,如家庭关系变更时,可由职员自行进行修改相关信息。4) 部门信息管理子系统部门管理员可对该部门相关信息进行管
6、理,实施查询、增加、删除、修改等操作。5) 信息变更子系统职员提交对应修改信息,则将全部该职员相关信息进行修改。6) 工资管理子系统对奖罚金额及基础工资、结算工资进行管理。第2章面向对象分析和设计 类和对象设计以下:个人经历年份datetime职员编号char(4)学习经历varchar(50)任职经历varchar(50)查询()添加()删除()修改()职员职员编号char(4)姓名char(10)性别char(2)出生日期datetime学历varchar(32)身份证号varchar(32)民族varchar(16)职称char(10)部门号char(4)职务char(32)查询()添加
7、()删除()修改()部门部门号char(4)部门名char(10)领导人员char(4)职员人数int查询()添加()删除()修改()家庭关系关系编号char(10)职员编号char(4)亲属关系char(50)亲属姓名char(10)查询()添加()删除()修改()出勤出勤号char(6)职员编号char(4)上班日期datetime上班时间datetime下班时间datetime刷卡机号char(4)查询()添加()删除()修改()职位调动调动编号char(6)职员编号char(4)调动前职务char(10)调动后职务char(10)调动前部门号 char(4)调动后部门号 char(4)
8、调动日期datetime批复日期datetime调动原因varchar(50)查询()添加()删除()修改()管理人员管理员帐号char(4)职员编号char(4)密码char(6)等级 char(4)查询()添加()删除()修改()刷卡机刷卡机号char(4)查询()添加()删除()修改()工资工资编号char(6)职员编号char(4)基础工资money罚款money奖金money结算工资money起始时间datetime截止时间datetime发信日期datetime查询()添加()删除()修改()奖惩统计奖惩编号char(6)职员编号char(4)奖惩类型char(4)奖惩金额mone
9、y奖惩日期datetime批复部门号 char(4)批复日期datetime奖惩原因varchar(50)查询()添加()删除()修改()请假统计请假编号char(6)职员编号char(4)请假时间datetime销假时间datetime请假天数int审批人编号char(4)查询()添加()删除()修改()第3章逻辑结构设计局部E-R图图3.1 职员图3.2 个人经历图3.3 家庭关系图3.4 部门图3.5 职位调动图3.6 工资图3.7管理人员图3.8 刷卡机图3.9 出勤图3.10 请假统计图3.11 奖惩统计全局E-R图:类和对象向关系模式转换1、职员(职员编号,姓名,性别,出生日期,学
10、历,身份证号,民族,职称,部门号,职务)2、个人经历(年份,职员编号,学习经历,任职经历)3、家庭关系(关系编号,职员编号,亲属关系,亲属姓名)4、管理人员(管理员帐号,职员编号,密码,等级)5、出勤(出勤号,职员编号,上班日期,上班时间,下班时间,刷卡机号)6、刷卡机(刷卡机号)7、部门(部门号,部门名,领导人员,职员人数)8、职位调动(调动编号,职员编号,调动前职务,调动后职务,调动前部门号,调动后部门号,调动日期,批复日期,调动原因)9、奖惩统计(奖惩编号,职员编号,奖惩类型,奖惩金额,奖惩日期,批复部门号,批复日期,奖惩原因)10、请假统计(请假编号,职员编号,请假时间,销假时间,请假
11、天数,审批人编号)11、工资(工资编号,职员编号,基础工资,罚款,奖金,结算工资,起始日期,截止日期,发信日期)第4章数据库物理结构设计4.1 存取方法设计数据库系统是多用户共享系统,对同一个关系要建立多条存放路径才能满足多用户多个应用要求。对于人事管理系统来说,为了提升一些属性(如:职员编号,管理员帐号,职员基础信息等)查询速度,能够选择聚簇存取方法,即把这些属性上含有相同值元组集中放在连续物理块上。这么在查询某个学院或是查询某个专业或某年等学生成绩或选课等时就会大大提升查询速度。所以,该系统中选择聚簇存取方法。4.2存放结构设计人事管理系统是一个大型复杂计算机网络信息系统,采取基于浏览器/
12、服务器(B/S),用户端/服务器(C/S)混合应用体系结构来建设教务管理系统。数据库管理系统采取Microsoft 企业推出SQL Server 或以上版本,并用SQL进行数据库建立和数据库中数据维护和查询。4.3物理设计实现该设计环境为Windows XP Professional + MS SQL Server 或以上版本。1、建立职员信息表create table 职员(职员编号 char(4) primary key,姓名 char(10) not null,性别 char(2) check(性别 in(男,女),出生日期 datetime,学历 varchar(32) not nul
13、l,身份证号 varchar(32) not null,民族 varchar(16) not null,职称 char(10),部门号 char(4)2、建立个人经历表create table 个人经历(年份 datetime,职员编号 char(4),学习经历 varchar(50),任职经历 varchar(50),primary key(年份, 职员编号),foreign key(职员编号) references 职员(职员编号)3、建立家庭关系表create table 家庭关系(关系编号 char(10) primary key,职员编号 char(4) not null,亲属关系
14、char(4),亲属姓名 char(10),亲属性别 char(2),foreign key(职员编号) references 职员(职员编号) 4、建立管理人员表create table 管理人员(管理员账号 char(4) primary key,职员编号 char(4) not null,密码 char(6) not null,等级 char(4)check(等级 in (管理员,系统管理员),foreign key(职员编号) references 职员(职员编号)5、建立出勤表create table 出勤(出勤号 char(6) primary key,职员编号 char(4) n
15、ot null,上班日期 datetime,上班时间 datetime,下班时间 datetime,刷卡机号 char(4),foreign key(职员编号) references 职员(职员编号)foreign key(刷卡机号) references 刷卡机(刷卡机号)6、建立刷卡机表create table 刷卡机(刷卡机号 char(4) primary key)7、建立部门表create table 部门(部门号 char(4) primary key,部门名 char(10) not null,领导人员 char(4) not null,职员人数 int)8、建立职位调动表cre
16、ate table 职位调动(调动编号 char(6) not null,职员编号 char(4) not null,调动前职务 char(10),调动后职务 char(10),调动部门号 char(4) not null,调动日期 datetime,批复日期 datetime,调动原因 varchar(50),foreign key(职员编号) references 职员(职员编号),foreign key(调动部门号) references 部门(部门号),)9、建立奖惩统计表create table 奖惩统计(奖惩编号 char(6) not null primary key,职员编号
17、char(4) not null,奖惩类型 char(4),奖惩金额 money,奖惩日期 datetime,批复部门号 char(4),批复日期 datetime,奖惩原因 varchar(50),foreign key(职员编号) references 职员(职员编号),foreign key(批复部门号) references 部门(部门号)10、建立请假统计表create table 请假统计(请假编号 char(6) not null primary key,职员编号 char(4) not null,请假时间 datetime,销假时间 datetime,请假天数 int,审批人编
18、号 char(4),foreign key(职员编号) references 职员(职员编号)11、建立工资表create table 工资(工资编号 char(6) primary key,职员编号 char(4) not null,基础工资 money not null,罚款 money,奖金 money,结算工资 money,起始时间 datetime,截止时间 datetime,发信日期 datetime,foreign key(职员编号) references 职员(职员编号)第5章数据库完整性设计5.1 主键及唯一性索引表名主键建立唯一性索引职员(职员编号)create index
19、 职员_学历_index on 职员(学历)个人经历(年份,职员编号)create index 个人经历_任职经历_index on 个人经历(任职经历)家庭关系(关系编号)create index 家庭关系_亲属关系_index on 家庭关系(亲属关系)管理人员(管理员帐号)create index 管理人员_index on 管理人员(等级)出勤(出勤号)create index 出勤_上班日期_index on 出勤(上班日期)刷卡机(刷卡机号)create index 刷卡机_index on 刷卡机(刷卡机号)部门(部门号)create index 部门_领导人员_index on
20、 部门(领导人员)职位调动(调动编号)create index 职务调动_调动前职务_index on 职位调动(调动前职务)奖惩统计(奖惩编号)create index 奖惩统计_奖惩类型_index on 奖惩统计(奖惩类型)请假统计(请假编号)create index 请假统计_请假天数_index on 请假统计(请假天数)工资(工资编号)create index 工资_基础工资_index on 工资(基础工资)5.2 参考完整性设计1、 将个人经历表中,将“职员编号”设置为表外键。 2、 在家庭关系中,将“职员编号”设置为表外键。3、 在管理人员表中,将“职员编号”设置为表外键。4
21、、 在出勤表中,将“职员编号”设置为表外键,再将“刷卡机号”设置为外键。5、 在职位调动表中,将“职员编号”设置为表外键,再将“部门”号设置为外键。6、 在奖惩统计表中,将“职员编号”设置为表外键。7、 在请假统计表中,将“职员编号”设置为表外键。8、 在工资等表中将“职员编号”设置为表外键。5.3Check约束1、职员表中,将性别进行check约束:check(性别 in(男,女)2、奖惩统计表中,将奖惩类型进行check约束:check(奖惩类型 in(奖,惩)5.4 触发器设计1、在职位调动表中,建立更改职员职务触发器create trigger trigger_职务修改 on 职位调动
22、 for insertasdeclare new_职员编号 char(10),new_调动后职务 char(10)select new_职员编号=职员编号,new_调动后职务=调动后职务 from insertedupdate 职员 set 职务=new_调动后职务 where 职员编号=new_职员编号2、在职员表中,建立插入或删除职员信息时,修改其对应部门人数create trigger trigger_增加职员 on 职员 for insertasdeclare new_部门号 char(4),new_职员人数 intselect new_部门号=部门号 from insertedsel
23、ect new_职员人数=职员人数 from 部门update 部门 set 职员人数=new_职员人数+1 where 部门号=new_部门号create trigger trigger_降低职员 on 职员 for deleteasdeclare new_部门号 char(4),new_职员人数 intselect new_部门号=部门号 from deletedselect new_职员人数=职员人数 from 部门update 部门 set 职员人数=new_职员人数-1 where 部门号=new_部门号3、在职位调动表中,当插入信息时,修改调动部门人数信息create trigge
24、r trigger_部门人数修改 on 职位调动 for insertasdeclare new_前部门号 char(10),new_现部门号 char(10),new_调动后部门号 char(4),new_职员人数 int,new_调动前部门号 char(4)select new_现部门号=调动后部门号,new_前部门号=调动前部门号 from insertedselect new_职员人数=职员人数 from 部门update 部门 set 职员人数=new_职员人数+1 where 部门号=new_现部门号update 部门 set 职员人数=new_职员人数-1 where 部门号=n
25、ew_前部门号4、在奖惩统计表中,更新奖惩信息时,修改工资表中对应奖金、罚款create trigger trigger_奖金 on 奖惩统计 for insertasdeclare 奖金 money,奖惩类型 char(2),职员编号 char(4)select 奖金=奖惩金额,职员编号=职员编号,奖惩类型=奖惩类型 from insertedbeginif(奖惩类型=奖)update 工资 set奖金=奖金 where 职员编号=职员编号endcreate trigger trigger_罚款 on 奖惩统计 for insertasdeclare 罚款 money,奖惩类型 char(2
26、),职员编号 char(4)select 罚款=奖惩金额,职员编号=职员编号,奖惩类型=奖惩类型 from insertedbeginif(奖惩类型=罚)update 工资 set 罚款=罚款 where 职员编号=职员编号end5、在工资表中,奖金、罚款发生变动时,更新对应结算工资create trigger dbo.trigger_update_a on dbo.工资 for updateas beginif UPDATE(罚款)update 工资set 结算工资 = 基础工资-罚款+奖金from 工资endcreate trigger dbo.trigger_update_a on db
27、o.工资 for updateas beginif UPDATE(奖金)update 工资set 结算工资 = 基础工资-罚款+奖金from 工资end第6章 数据库视图设计1、建立“职员基础信息查询”视图CREATE VIEW dbo.职员基础信息查询ASSELECT dbo.职员.职员编号, dbo.职员.姓名, dbo.职员.部门号, dbo.职员.职务, dbo.部门.领导人员, dbo.部门.部门名, dbo.个人经历.任职经历FROM dbo.职员 INNER JOIN dbo.部门 ON dbo.职员.部门号 = dbo.部门.部门号 INNER JOIN dbo.个人经历 ON
28、 dbo.职员.职员编号 = dbo.个人经历.职员编号2、建立“职员个人背景”视图CREATE VIEW dbo.View_职员个人背景ASSELECT dbo.个人经历.职员编号, dbo.个人经历.任职经历, dbo.个人经历.学习经历, dbo.家庭关系.亲属关系, dbo.家庭关系.亲属姓名FROM dbo.个人经历 INNER JOIN dbo.家庭关系 ON dbo.个人经历.职员编号 = dbo.家庭关系.职员编号第7章 数据库存放过程设计1、建立“查询某部门人数”存放过程CREATE procedure dbo.proc_查询某部门人数部门号 char(4),人数 int o
29、utputasselect 人数=COUNT(职员.职员编号) from 职员 where 部门号=部门号2、建立“查询某部门某职称人数”存放过程CREATE procedure dbo.proc_查询某部门某职称人数部门号 char(4),职称 char(10),人数 int outputasselect 人数=COUNT(职员.职员编号) from 职员 where (部门号=部门号 and 职称=职称)总结课程设计,是我们对现在所学数据库系统概论书中理论知识实践,我课程设计题目是“某单位人事管理系统”。我经过逐步分析结构,勾画了大致数据库框架。我经历了需求分析、概念结构设计、逻辑结构设计
30、、物理结构设计、数据库实施等过程,对数据库安全性、完整性层层把握,完善数据库设计。我们在课堂上学习了,数据库编程相关知识,应用SQL sever进行数据库设计。经过这次课程设计发觉这其中需要很多知识我们没有接触过,去图书馆查资料时候发觉我们前边所学到仅仅是皮毛。同时也发觉有很多已经学过东西我们没有了解到位,不能灵活利用于实际,不能很好用来处理问题,这就需要我们不停大量实践,经过不停自学,不停地发觉问题,思索问题,进而处理问题。在这个过程中我们将深刻了解所学知识,同时也能够学到不少很实用东西,另外,相信这么自学能力我们也将终生受用。参考文件:1. 王珊,萨师煊 .数据库系统概论M. 高等教育出版
31、社,2. 数据库技术和应用试验. 清华大学出版社,3. 郑阿奇等. SQLserver实用教程(第3版)M . 电子工业出版社,4. 赵乃真等. 信息系统设计和应用. 清华大学出版社,数据库原理及应用课程设计汇报评分标准选题及功效设计选题合理,功效简单 (D)有一定工作量和实用价值 (C)功效设计丰富,有一定难度系数 (B)功效设计合理全方面,能表现数据库存放和整理数据功效 (A)数据表和数据量含有基础数据表,数据量较少,但能够实现系统基础需要 (D)含有基础数据表,数据量适中,实现了一定数据完整性 (C) 有多个数据表,数据量适中,有完善数据完整性(B) 有多个数据表,数据量充足,含有较强数
32、据安全性和数据完整性 (A)数据库对象含有基础数据表,有主外键约束 (D)创建了若干种数据库对象,并加以利用 (C) 在实际应用中合理利用了各类数据库对象 (B)含有身份验证、数据备份等较复杂数据管理功效(A)功效实现利用存放过程实现了多种查询功效 (D)除查询功效,还实现了多种数据操作功效 (C)在上一条基础上,还实现了数据统计汇总功效 (B)合理利用函数、存放过程、触发器实现多种数据查询、操作、管理功效 (A)设计汇报完成设计汇报,叙述了系统功效,结构较完整 (D)开题汇报反应设计思绪,结构完整,格式较规范 (C)汇报内容完整,图表使用正确,格式清楚,功效描述详尽 (B)汇报内容完整,图表使用正确,描述具体,代码叙述清楚,反应系统实施步骤 (A)老师签字:总评成绩:
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100