数据库课程设计说明书企业人事管理系统

来源:三年级 发布时间:2020-09-26 点击:

 中北大学 数据库课程设计 说明书 学 院、系:

 软件学院 专 业:

 软件工程 学 生班级:

 13140xxx 学 生姓名:

 学号:

 131401xxxx 设 计题目:

 企业人事管理系统数据库设计

 起 迄日期 :

 2015 年 6 月 8 日-2015 年 6 月 19 日 指 导教师 :

 李波

 2015 年 6 月 19 日

 1

 一、需求分析 一、 引言 需求规格说明书是需求分析的产物, 它是软件系统生存期中软件定义阶段的最后一个步 骤。作为整个软件开发过程的指南, 它也是软件开发人员开发出符合用户要求的软件的基础。

 1.1 编写目的 软件需求说明书的编制目的是为了使用户和软件开发者双方对该软件的初始规定有一 个共同的理解,使之成为整个开发工作的基础。

 本软件需求说明书的读者是系统开发人员或合同约定的人员。

 1.2 背景说明 ( 1 )本系统的名称是:企业人事管理系统数据库设计。

 ( 2 )本系统能为其他的系统提供人事数据。

 1.3 定义 数据字典:关于数据的信息的集合,也即是对数据流图中包含的元素的定义的集合。

 二、任务概述 2.1 项目背景 人事档案管理是现代企业人事资源管理中的重要内容, 也是人力资源开发利用的基础性 工作。人事档案管理在信息化之前,在人员进出、离退休、升迁、岗位变动、职称变动、学 位变动, 以及档案管理人员的变动等方面存在诸多不利于管理的地方, 不适应现代的企业管 理形势和人力资源开发利用的要求。

 开发人事档案管理系统使企业的人事档案管理工作实现了信息化、 规范化, 不仅使企业 能够高效率完成人事管理的日常工作,还使企业深入开发利用人力资源成为可能。

 2.2 用户的特点 本软件的最终用户是企业人事部门的工作人员。

 部门有专职的人事数据录入人员, 具有 一定的计算机操作知识; 系统的维护人员是企业的信息中心的信息维护员, 对网络和数据库 的操作比较熟悉; 数据录入员负责人事数据的录入及日常更新, 信息维护员负责人事数据的 备份和其他管理工作。企业的人员调进与调出比较频繁。

 三、需求规定 企业人事管理系统的功能可以划分为如下几个部分:

 1 、人事档案管理:户口状况、政治面貌、生理状况、合同管理等。

 2

 2 、考勤、加班、出差管理。

 3

 3 、人事变动:新进员工登记、员工离职登记、人事变更记录。

 4 、 考核奖惩。

 5 、 员工培训。

 6 、 系统维护:操作员管理、权限设置等。

 四、功能模块分解及各模块作用

 超级管理员登录

 A. 登录管理:主要用于权限管理 员工登录功能供员工个人使用,主要用于方便员工查看个人信息, 一条完整的员工信息应该包含以下内容:

 员工信息 { 员工号,员工姓名,性别,年龄,学历,户口所在地,政治面貌,婚姻状况, 生理状况 } 工作信息 { 员工号,参加工作时间,工作岗位 } 薪水 { 员工号,月工资,奖金 } 考勤状况 { 员工号,出勤率,迟到次数,早退次数 } 出差信息 { 员工号,出差开始日期,出差结束日期,支出补贴费用 } 加班信息 { 员工号,加班开始时间,加班结束时间,加班补贴费用 } 登录管瑾 员三登录 菩通蒼理彊登杲 企业人事管理系统 人反信息管阵 人员管涅 员工培训管埋

 4

 说明:考勤情况主要由每月按时到岗率计算,如有迟到、早退现象作相应扣减。

 一条完整的合同信息应当包含以下内容:

 合同 { 员工号,合同号,合同签订日期,合同有效时间 } 合同有效时间按年计算 B. 人员管理:主要用于对员工的各项信息进行管理,以下所有操作供管理员使用。

 B1. 员工信息管理:

 员工信息查询:

 该功能不同于员工权限的信息查询,员工只能查询自己的信息,而该功 能能够查询出所有员工的信息。

 新进员工管理:

 当企业新进一名员工时, 人事管理部门应当在员工数据库中对该员工进 行增加信息的操作,录入员工的所有信息。

 退休 / 辞退员工管理:

 当企业辞退一名员工时,人事管理部门应当从它所服务的工作部门中删除该员工的工作名 额,结算支付其工资、奖金;同时补充新的员工,代替它的工作。

 当企业中一名员工退休时,人事管理部门应当从员工信息中删除其所有信息。

 员工信息变动:

 当员工信息发生变动时, 人事部门应当对变动信息做出享用更改, 以保 证数据的一致性。

 B.2 员工培训管理 参训员工信息管理:

 此项包括参训员工的信息如下:

 参训员工的信息 { 员工号,培训机构号,培训教师号,培训开始时间,培训结束时间, 培训成绩 } 培训机构信息管理:

 企业请培训机构为员工培训,企业应当存有培训机构的相关信息。

 一条完整的培训机构信息应当包括:

 培训机构 { 培训机构号,培训机构名 } 一个培训机构存在多名培训教师,一条完整的培训教师的信息如下 培训教师 { 培训机构号,培训教师号,教师名,教师职称 } 培训效果管理:

 员工培训结束后, 由其培训教师给出培训成绩, 作为其培训效果的考核, 录入参训员工培训成绩一栏。

 B.3 考核奖惩管理 企业在对员工的考核过程中要对员工实施奖惩机制,鼓励企业的工作风气积极向上

 5

 一条奖惩信息应当包括: 奖惩信息 { 员工号、奖惩性质、奖惩原因、处理办法 } 从它所服务的工作部门中删除该员工的工作名额, 结算支付其工资、 奖金;同时补充新的员 工,代替它的工作。

 C 数据流程图 (1 )总数据流图 员工

 查询

 员工数据库 (2 )人员信息管理数据流图

  (2 )登录管理的数据流图

 6

 (3) 员工培训管理的数据流图

 员工培训信息 五、数据字典 1 .数据项 数据项有待按各子系统分类列表。

 编号 数据项名 数据项含义 数据类型 取值范围 与其他数据项关系 1 员工号 唯一标识一名员工的 编号 整数类型 长度为 6 有唯一性,是主属性 2 员工姓名 员工的真实姓名 文本类型 长度为 10

 3 性别 员工的性别 枚举类型 [ 男 1 女 ]

 4 年龄 员工的年龄 整数类型 18 … 100

 5 学历 员工的学历 枚举类型 [ 专科 | 本科 | 研究 生 |博士 | 硕士 ]

 7

 6 户口所在地 员工的户籍所在地 文本类型 长度为 20

 7 政治面貌 员工的政治思想水平 枚举类型 [ 群众 | 团员 | 党 员 ]

 8 婚姻状况 员工的婚姻状况 枚举类型 [ 已婚 | 未婚 ]

 9 生理状况 员工的健康状况水平 枚举类型 [ 健康 | 不健康 ]

 10 参加工作时间 员工进入单位开始参 加工作的时间 日期类型 1975 年… 2015 年

 11 工作岗位 员工主要负责的工作 类型 文本类型 由公司的具体情 况确定

 12 月工资 每月需要支付给员工 的工资 浮点数类型 不小于 0

 13 奖金 员工的奖金 浮点数类型 不小于 0

 14 出勤率 员工每月的出勤率 (到岗率)

 浮点数类型 0 … 1 ,百分数

 15 迟到次数 员工的月迟到次数 整数类型 不小于 0

 16 早退次数 员工的月早退次数 整数类型 不小于 0

 17 出差开始日期 员工出差开始的日期 日期类型 由具体时间确定

 18 出差结束日期 员工出差结束的日期 日期类型 由具体时间确定

 19 支出补贴费用 员工出差单位给予应 有的补贴 浮点数类型 不小于 0

 20 加班开始时间 员工加班开始的时间 文本类型 由具体时间确定

 21 加班结束时间 员工加班结束的时间 文本类型 由具体时间确定

 22 加班补贴费用 员工加班应有的补贴 浮点数类型 不小于 0

 23 合同号 每份合同都有一个编 号,用于唯一标示一 份合同 整数类型 长度为 6 有唯一性,是主属性 24 合同签订日期 单位与员工签订合 同,合同开始生效的 日期 日期类型 由具体时间确定

 8

 25 合同有效时间 合同在一段时间内是 有效的 日期类型 由具体时间确定

 26 培训机构号 每个培训机构都有一 个编号,用于唯一标 示一份培训机构 整数类型 长度为 6 有唯一性,是主属性 27 培训教师号 每个培训教师都有一 个编号,用于唯一标 示一个培训教师 整数类型 长度为 6 有唯一性,是主属性 28 培训开始时间 员工培训开始的时间 日期类型 由具体时间确定

 29 培训结束时间 员工培训结束的时间 日期类型 由具体时间确定

 30 培训成绩 员工培训后的成果由 培训成绩确定 整数类型 0 … 100

 31 培训机构名 为员工培训的培训机 构的名称 文本类型 不超过 15 个字

 32 教师名 参与培训的教师的真 实姓名 文本类型 不超过 5 个字

 33 教师职称 参与培训的教师的职 称 文本类型 不超过 5 个字

 34 奖惩性质 是奖励还是处分 文本类型 不超过 4 个字

 35 奖惩原因 奖励或处分员工的原 因 文本类型 不超过 30 个字

 36 处理办法 奖励或处分的具体措 施 文本类型 不超过 40 个字

 37 登录密码 用户登录密码 文本类型 不超过 10 位

  2 .数据结构 编号 数据结构名 属 性 1 员工 员工号,员工姓名,性别,年龄,学历,户口所在地,政治面貌, 婚姻状况,生理状况

 9

 2 工作信息 员工号,参加工作时间,工作岗位 3 薪水 员工号,月工资,奖金 4 考勤状况 员工号,出勤率,迟到次数,早退次数 5 出差信息 员工号,出差开始日期,出差结束日期,支出补贴费用 6 加班信息 员工号,加班开始时间,加班结束时间,加班补贴费用 4 合同 员工号,合同号,合同签订日期,合同有效时间 5 参训员工 员工号,培训机构号,培训教师号,培训开始时间,培训结束时 间,培训成绩 6 培训机构 培训机构号,培训机构名 7 培训教师 培训机构号,培训教师号,教师名,教师职称 8 奖惩信息 员工号、奖惩性质、奖惩原因、处理办法 9 登录信息 员工号,登录密码

  3 .数据流 编号 数据流名 输入 输 出 1 员工基本信息 招新员工 员工信息 2 当前员工工作 员工信息 员工信息 3 员工新工作 更新员工信息 员工信息 4 辞退员工 辞退员工 员工信息 5 员工参加培训 参加培训 培训信息 6 培训机构参与培训 参加培训 培训信息 7 管理员信息查询 查询管理员信息 管理员信息 8 培训教师信息查询 查询培训教师信息 培训教师信息 9 员工奖惩信息查询 查询奖惩信息信息 奖惩信息

 、小组成员分工 王凯负责需求分析、编码阶段、物理结构设计、截图阶段; 魏悦明负责概要设计、逻辑结构设计阶段。

 10

 三、概要设计 本程序开发企业人事管理系统 , 经过可行性分析、详细调查以及多次讨论 , 确定了该系 统由登录管理子系统、人员管理子系统、管理员权限管理子系统三个子系统组成。

 本过程结构设计过程采用自底向上的设计方法 , 即首先定义各局部应用的概念结构 , 然 后将它们集成起来 , 得到全局概念结构 • 下面给出各个子系统的分析及分 E-R 图的设计及对其进行的各项调整。

 登录管理子系统 本开发小组成员经过调查、信息流程分析、数据收集,并结合需求分析,明确了一一 子系统的功能:

 员工登录:功能供员工个人使用,主要用于方便员工查看个人信息。

 根据要求分析给出的数据流图 , 参照数据字典中的详细描述 , 给出登录管理子系统的分 E-R 图 :

 对 E-R 图调整的准则 :

 现实世界中的事物能作为属性对待的尽量作为属性对待;

 含其他信息。

 实体属性定义 :

 登录信息 { 员工号,登录密码 } 人员管理子系统

 子系统的功能 :

 B. 信息管理:

 对员工的出差、加班、薪水进行管理、 C• 可以进行对新员工、旧员工以及辞退等员工的信息查询; D. 拥有员工培训功能管理,具体由其培训教师给出培训成绩,作为其培训效果的考核, 录入参训员工培训成绩一栏。

 E. 可以对人员的奖惩功过进行统计处理,便于公司运作。

 属性和实体的划分:属性中不具有需要描述的信息, 即属性是不可分的数据项,不再包 本开发小组成员经过调查、信息流程分析、数据收集 , 并结合需求分析,明确了 A. 员工考勤:考勤情况主要由每月按时到岗率计算, 如有迟到、早退现象作相应扣减。

 统计。

 11

 根据要求分析给出的数据流图 , 参照数据字典中的详细描述 , 给出经理管理部门的分

 12

 实体属性定义 员工信息 { 员工号,员工姓名,性别,年龄,学历,户口所在地,政治面貌,婚姻状况, 生理状况 } 工作信息 { 员工号,参加工作时间,工作岗位 } 薪水 { 员工号,月工资,奖金 } 考勤状况 { 员工号,出勤率,迟到次数,早退次数 } 出差信息 { 员工号,出差开始日期,出差结束日期,支出补贴费用 } 加班信息 { 员工号,加班开始时间,加班结束时间,加班补贴费用 } 合同 { 员工号,合同号,合同签订日期,合同有效时间 } 参训员工的信息 { 员工号,员工姓名,培训机构号,培训教师号,培训开始时间,培训 结束时间,培训成绩 } 培训机构信息管理:企业请培训机构为员工培训,企业应当存有培训机构的相关信息。

 一条完整的培训机构信息应当包括:

 培训机构 { 培训机构号,培训机构名 } 一个培训机构存在多名培训教师,一条完整的培训教师的信息如下 培训教师 { 培训教师号,教师名,教师职称 } 培训效果管理:员工培训结束后,由其培训教师给出培训成绩, 作为其培训效果的考核, 录入参训员工培训成绩一栏。

 企业在对员工的考核过程中要对员工实施奖惩机制,鼓励企业的工作风气积极向上 一条奖惩信息应当包括: 奖惩信息 { 员工号、奖惩性质(是奖还是惩)、奖惩原因、处理办法 } 对 E-R 图调整的准则 :

 工作

 奖惩信息

 考勤 m m E-R 图 : 厂培训教师 -nY 拥有 1— 培训机构 培训 加班补贴 1 __l_ 合同 I-/ n 负责 员工 获得 薪水 1 属于 影响 出差补贴

 13

 现实世界中的事物能作为属性对待的尽量作为属性对待; 属性和实体的划分:属性中不具有需要描述的信息,即属性是不可分的数据项,不再 包含其他信息。

 视图集成 以上便是三个子系统的分 E-R 图设计及其调整的整个过程,接着要做的就是将所有的 分 E-R 图进行综合 , 合成一个系统的总 E-R 图 . 由于本系统比较简单 , 分 E-R 图规模也比较小 , 所以 E-R 图合成过程采用一次将三个子 系统分 E-R图集成总 E-R 图的方式 . 分两步进行:

 第一步:合并。

 解决各分 E-R 图之间的冲突,将各分 E-R 图合并起来生成初步 E-R 图。

 各分 E-R 图之间的冲突主要有三类:

 1. 属性冲突:

 (1) 属性域冲突,即属性值的类型、取值范围或取值集合不同。由于本系统较简单, 所以并不存在这种冲突; (2) 属性取值单位冲突。由于本系统较简单,不存在这类冲突; 2. 命名冲突:

 (1) 同名异义:由于本系统较简单,所以不存在这类冲突; (2) 异名同义:由于本系统较小,所以不存在这类冲突; 3. 结构冲突:

 (1) 同一对象在不同应用中具有不同的抽象:本系统在需求分析阶段原本存在这种冲 突,考虑到后期的简化合并,我们在设计各个分 E-R 图就早先解决了这个问题, 即将在任何一个分 E-R 图中作为实体出现的属性全部作为实体; (2) 同一实体在不同分 E-R 图中所包含的属性个数和属性排列次序不完全相同:由于 本系统较简单,所以并不存在这种冲突; 第二步:修改和重构。

 14

 消除不必要的冗余,生成基本 E-R 图。

 由于本系统涵盖的内容比较少,基本不存在冗余的现象,所以初步 E-R 图就是基本 E-R 图,不必再进行调整。下面给出 E-R 图。

 总 E-R 图 : 员工信息 { 员工号,员工姓名,性别,年龄,学历,户口所在地,政治面貌,婚姻状况, 生理状况 } 工作信息 { 员工号,参加工作时间,工作岗位 } 登录信息 { 员工号,登录密码 } 薪水 { 员工号,月工资,奖金 } 考勤状况 { 员工号,出勤率,迟到次数,早退次数 } 出差信息 { 员工号,出差开始日期,出差结束日期,支出补贴费用 } 加班信息 { 员工号,加班开始时间,加班结束时间,加班补贴费用 } 合同 { 员工号,合同号,签订合同员工的员工号,合同签订日期,合同有效时间 } 参训员工的信息 { 员工号,培训机构号,培训教师号,培训开始时间,培训结束时间,培 训成绩 } 培训机构 { 培训机构号,培训机构名 } 培训教师 { 培训机构号,培训教师号,教师名,教师职称 } 奖惩信息 { 员工号、奖惩性质(是奖还是惩)、奖惩原因、处理办法 } 由于在分 E-R 图中已经画出了属性, 总 E-R 图就不再画出每个实体的属性, 而只给出实体和 联系

 15

 工作

 奖惩信息

 考勤

  四、逻辑结构设计 一 . 与总 E-R 图对应的关系模式 1 、实体所对应的关系模式:

 员工信息 { 员工号,员工姓名,性别,年龄,学历,户口所在地,政治面貌,婚姻状况, 生理状况 } 工作信息 { 员工号,参加工作时间,工作岗位 } 登录信息 { 员工号,登录密码 } 薪水 { 员工号,月工资,奖金 } 考勤状况 { 员工号,出勤率,迟到次数,早退次数 } 出差信息 { 员工号,出差开始日期,出差结束日期,支出补贴费用 } 加班信息 { 员工号,加班开始时间,加班结束时间,加班补贴费用 } 合同 { 员工号,合同号,签订合同员工的员工号,合同签订日期,合同有效时间 } 参训员工的信息 { 员工号,员工姓名,培训机构号,培训教师号,培训开始时间,培训结 束时间, 培训成绩 } 登录信息 培训机构 合同 n 负责 m 员工 n 一培训教师 1 培训 加班补贴 n 1 薪水 1

 1 影响 属于 出差补贴

 16

 培训机构 { 培训机构号,培训机构名 } 培训教师 { 培训教师号,教师名,教师职称 } 奖惩信息 { 员工号、奖惩性质(是奖还是惩)、奖惩原因、处理办法 } 说明:

 1. 下加横线部分表示关系的码 2. 以上关系的详细内容说明请参照概念结构设计中的具体内容 3. 上面的各个关系对概念结构设计中的相关内容了作了修改, 主要加了各个实体中间 的联系,尤其是一对多的联系,纳为属性。

 2 、联系所对应的关系模式:

 1 )、把管理员和人员之间的 n : m 的预约联系转化为相应的关系模式如下:

 管理(人员号、管理员号、管理内容、管理时间)

 2 )、其他联系处理说明如下:

 工资和员工之间的 1 :

 1 联系与员工关系合并; 薪水和出差之间的 1 :

 1 联系与新水关系合并; 薪水和考勤的 1 : 1 联系与新水关系合并; 薪水和加班之间的 1 :

 1 联系与新水关系合并; 员工和工作之间的 n :

 1 联系与工作关系合并; 员工和培训机构的 n :

 1 联系与培训机构关系合并; 培训机构和培训教师的 n :

 1 联系与培训教师关系合并; 培训教师和奖惩信息之间的 1 :

 1 联系与奖惩信息关系合并; 二 . 优化后的数据模型 按照数据依赖对关系模式进行逐一分析,并进行极小化处理:

 员工信息 { 员工号,员工姓名,性别,年龄,学历,户口所在地,政治面貌,婚姻状况, 生理状况 } ; BCNF 工作信息 { 员工号,参加工作时间,工作岗位 } ; BCNF 登录信息 { 员工号,登录密码 } ; BCNF 薪水 { 员工号,月工资,奖金 } ; BCNF 考勤状况 { 员工号,出勤率,迟到次数,早退次数 } ; BCNF 出差信息 { 员工号,岀差开始日期,岀差结束日期,支岀补贴费用 } ; BCNF

 17

 加班信息 { 员工号,加班开始时间,加班结束时间,加班补贴费用 } ; BCNF 合同 { 员工号,合同号,签订合同员工的员工号,合同签订日期,合同有效时间 } ; BCNF 参训员工的信息 { 员工号,员工姓名,培训机构号,培训教师号,培训开始时间,培训结 束时间, 培训成绩 };BCNF 培训机构 { 培训机构号,培训机构名 } ; BCNF 培训教师 { 培训教师号,教师名,教师职称 } ; BCNF 奖惩信息 { 员工号、奖惩性质、奖惩原因、处理办法 } ; BCNF 五、物理结构设计 1 .数据存储 数据存储名 输入数据流 输出数据流 员工信息 员工基本信息 员工号 添加成功信息 当前员工信息 登录信息 员工号、登录密 码 登录验证信息 工作信息 员工号 员工参加工作时间,工作岗位 合同信息 合同号 合同号,合同签订日期,合同有效时间 薪水信息 员工号 员工的工资、奖金 考勤状况 员工号 员工的出勤率、迟到次数、早退次数 出差信息 员工号 员工的出差开始日期,出差结束日期,支出补贴费用 加班信息 员工号 员工的加班开始时间,加班结束时间,加班补贴费用 参训员工信息 培训员工号 员工姓名,培训机构号,培训教师号,培训开始时间, 培训结束时间,培训成绩 培训机构信息 培训机构号 培训机构名 培训教师信息 培训教师号 培训机构号,培训教师名,教师职称 奖惩信息 员工号 奖惩性质、奖惩原因、处理办法

  2 .处理过程 处理过程名 输入数据流 输出数据流 说明部分

 18

 招新员工 终端 员工基本信息

 19

 辞老员工 终端 员工基本信息

 员工信息变更 终端 员工基本信息

 查询单个员工信息 终端 员工个人信息 个人 查询全部员工信息 终端 全部员工信息 全部 查询员工奖惩信息 终端 员工奖惩信息

 查询全部培训信息 终端 培训相关信息(包括培训机构、 培训员工、培训教师的信息)

 查询员工培训信息 终端 员工培训信息

 查询培训机构信息 终端 培训机构信息

 查询培训教师信息 终端 培训教师信息

 六、编码阶段

 一、表的定义和数据插入 /* 1. 创建数据库 */ create database HumanResourcesManagement /* 创建企业人事管理数据库 */ use HumanResourcesManagement /* 使用刚刚创建的数据库 */ /* 2. 创建企业人事管理系统所需的各个数据表并插入初始数据 /* 2.1 创建员工信息表

 生理状况 } */ create table Staff ( */ 员工信息 { 员工号,员工姓名,性别, 年龄,学历, 户口所在地,政治面貌,婚姻状况, Sno int primary key, /* 员工号主码 */ Snamevarchar (10), /* 员工姓名 */ Ssex varchar (5), /* 性别 */ Sage smallint , /* 年龄 */ Seduback varchar (7), /* 学历(教育背景)

 */ Spc varchar (5), /* 政治面貌 */ Sms varchar (5), /* 婚姻状况 */

 20

  /* 2.2 创建员工工作信息表

 create table WorkInfo (

 );

 /* 2.3 创建员工合同信息表insert into WorkInfo values ( 1, "1995-01-01" ," 分析员 insert into WorkInfo values ( 2, "1970-03-29" ," 清洁工 insert into WorkInfo values ( 3, "1982-05-19" ," 经理 " ); insert into WorkInfo values ( 4, "1994-08-31" ," 打字员 insert into WorkInfo values ( 5, "1979-09-01" ," 保安 " ); insert into WorkInfo values ( 6, "1965-12-10" ," 分析员 insert into WorkInfo values ( 7, "1968-02-05" ," 分析员 " ); " ); " ); " ); " ); Sps varchar ( 7) /* 生理状况 */ ); insert into Staff values ( 1," 张三 " insert into Staff values ( 2," 李四 " insert into Staff values ( 3," 王五 " insert into Staff values ( 4," 赵六 " insert into Staff values ( 5," 钱七 " insert into Staff values ( 6," 马八 " insert into Staff values ( 7," 吴九 "

 男 ",20," 本科 "," 党员 "," 未婚 "," 健康 " ); 男 ",45," 专科 "," 群众 "," 已婚 "," 不健康 "); 男 ",33," 研究生 "," 团员 " ," 已婚 " ," 健康 " ); 女 ",21," 本科 "," 团员 "," 未婚 "," 健康 " ); 女 ",36,"专科 "," 群众 "," 已婚 "," 健康 " ); 女 ",50," 博士 "," 党员 "," 已婚"," 不健康 "); 女 ",47," 硕士 "," 党员 "," 已婚 "," 健康 " ); 工作信息 { 员工号,参加工作时间, 工作岗位 } */ Sno int /* 员工号外码 */ Sworktime date , /* 参加工作时间 */ Swork varchar ( 20) /* 工作岗位 */ /* 设置 Sno 外键约束 */ foreign key( Sno) references Staff ( Sno) on delete cascade on update cascade

 21

 ); insert intc Agreement values (1,101, "1995-01-01" ,20); insert intc Agreement values (2,101, "1970-03-29" ,20); insert intc Agreement values (3,101, "1982-05-19" ,20); insert intc Agreement values (4,101, "1994-08-31" ,20); insert intc Agreement values (5,101, "1979-09-01" ,20); insert intc Agreement values (6,101, "1965-12-10" ,20); insert intc Agreement values (7,101, "1968-02-05" ,20);

 /* 2.4 创建员工登录信息表 登录信息 { 员工号,登录密码 } */ create table LogInfo ( /* 员工号外码 */

 /* 设置 Snc 外键约束 */

 insert into LogInfo values ( 3, "123" );}*/ create table Agreeme nt ( Sno int ,

 /* 员工号外码 */ ano int ,

 /* 合同号 */ startdate date , /* 合同签订日期 */ activetime smallint , /* 合同有效时间 */ /* 设置 Snc 外键约束 */

 合同 { 员工号,合同号,合同签订日期,合同有效时间 foreign key( Sno) references Staff ( Sno) on delete cascade on update cascade Sno int Spass int /* 登录密码 */ ); foreign key( Sno) references Staff ( Sno)on delete cascade on update cascade insert into LogInfo values ( 1, "123" ); insert into LogInfo values ( 2, "123" );

 22

  /* 2.5 创建员工薪水信息表

 /* 设置 Snc 外键约束 */

 ); insert into Salary values (1, 5000, 500); insert into Salary values (2, 3000, 100); insert into Salary values (3, 7000, 200); insert into Salary values (4, 4000, 500); insert into Salary values (5, 2000, 500); insert into Salary values (6, 5000, 500); insert into Salary values (7, 5000, 500);

 /* 2.6 创建员工考勤状况信息表 考勤状况 { 员工号,出勤率,迟到次数,早退次数 } */ create table Sattendance ( Sno int , /* 员工号外码 */ Sattendrate float , /* 出勤率 */ Slatenum int , /* 迟到次数 */ Searlynum int , /* 早退次数 */ insert into LogInfo values ( 5, "123" insert into LogInfo values ( 6, "123" insert into LogInfo values ( 7, "123" insert into LogInfo values ( 4, "123" ); ); ); ); 薪水 { 员工号, 月工资,奖金 } */ create table Salary ( Sno int /* 员工号外码 */ Ssalary float /* 月工资 */ Scommit float /* 奖金 */ foreign key( Sno) references Staff ( Sno)on delete cascade on update cascade

 23

 /* 设置 Snc 外键约束 */

  ); insert into Sattendance values (1, 1, 0,0); insert into Sattendance values (2, 0.5 , 10, 5); insert into Sattendance values (3, 0.75,4, 1); insert into Sattendance values (4, 1, 0,0); insert into Sattendance values (5, 0.25,15,5); insert into Sattendance values (6, 1, 0,0); insert into Sattendance values (7, 1, 0,0);

 /* 2.7 创建员工出差信息表 出差信息 { 员工号,出差开始日期,出差结束日期,支出补贴费用 } */ create table Sbussinesstrip (

 Sno int J /* 员工号外码 */ bstartdate date , /* 出差开始日期 */ benddate date, /* 出差结束日期 */ subsidy flcat , /* 支出补贴费用 */ /* 设置 Snc 外键约束 */

  foreign key(Sno) references Staff (Sno) on delete cascade o n update );

 /* 2.8 创建员工加班信息表 加班信息 { 员工号,加班开始时间,加班结束时间,加班补贴费用 } */ create table Sovertime ( /* 员工号外码 */

  foreign key( Sno) references Staff ( Sno)on delete cascade on update cascade cascade insert into Sbussinesstrip values ( 1, "2015-03-03" , "2015-03-30" , 3000); insert into Sbussinesstrip values ( 4, "2015-05-02" , "2015-05-20" , 2500); Sno int

 24

  foreign key(Sno) references Staff (Sno) on delete cascade o n update ); insert intc Scvertime values (2, "18:15" , "21:25" , 200); insert intc Scvertime values (3, "18:15" , "21:25" , 200); insert intc Scvertime values (5, "18:15" , "21:25" , 200);

 /* 2.9 创建参训员工信息表 参训员工的信息 { 员工号,培训机构号,培训教师号,培训开始时间,培训结束时间, 培训成绩 } */ create table Strain ( Snc int , /* 员工号外码 */ tnc int ,

 /* 培训机构号 */ tecnc int J /* 培训教师号 */ tstartdate date , /* 培训开始时间 */ tenddate date, /* 培训结束时间 */ tgrade smallint , /* 培训成绩 */

 /* 设置 Snc 外键约束 */ foreign key(Sno) references Staff (Sno) on delete cascade o n update ); insert intc Strain values (1, 123, 1, "2014-03-04" , "2014-05-04" , 95); insert intc Strain values (3, 123, 2, "2013-04-01" , "2013-08-04" , 75); insert intc Strain values (4, 456, 1, "2014-03-04" , "2014-05-04" , 80); insert intc Strain values (6, 123, 3, "2015-03-01" , "2015-05-04" , 67);

  ostarttime varchar ( 5), oendtime varchar (5), subsidy float , /* 设置 Snc 外键约束 */ /* 加班开始时间 */ /* 加班结束时间 */ /* 加班补贴费用 */ cascade cascade

 25

 insert into Strain values (7, 456, 6, "2015-04-04" , "2015-05-04" , 99); /* 2.10 创建培训机构信息表 培训机构 { 培训机构号,培训机构名 } */ /* 培训机构号主码 */ /* 培训机构名 */ values ( 123, " 魔乐科技培训学校 " ); values ( 456, " 中北大学软件学院 " ); /* 2.11 创建培训教师信息表 培训教师 { 培训机构号,培训教师号,教师名,教师职称 } */ create table TrainingTeacher (

 tno int , /* 培训机构号 */ tecno int , /* 培训教师号 */ tecname varchar (10), /* 培训机构名 */ /* 设置 tno 外键约束 */ foreign key( tno ) references TrainingAgency ( tno ) on delete cascade update cascade ); insert into TrainingTeacher values ( 123, 1," 张磊 " ); insert into TrainingTeacher values ( 123, 2," 张峰 " ); insert into TrainingTeacher values ( 123, 3," 赵云 " ); insert into TrainingTeacher values ( 456, 4," 李宇春 " ); insert into TrainingTeacher values ( 456, 6," 李敏镐 " );

 /* 2.12 创建培训教师信息表

 create table TrainingAgency tno int primary key, tname varchar ( 30), ); insert into TrainingAgency insert into TrainingAgency on

 26

 奖惩信息 { 员工号、奖惩性质(是奖还是惩)、奖惩原因、处理办法 create table AwardsAndPunishments (

 Sno int J /* 员工号外码 */ quality varchar (5), /* 奖惩性质 */ reason varchar ( 60), /* 奖惩原因 */ handling varchar (80), /* 处理办法 */ /* 设置 Snc 外键约束 */ foreign key(Sno) references Staff (Sno) on delete cascade o n update cascade ); insert into AwardsAndPunishments values ( 1," 奖励 " ," 工作勤恳,态度端正,认真负 责 " ," 奖金 " ); insert into AwardsAndPunishments values ( 2, " 惩罚 " , " 经常迟到早退 " ," 奖金 " ); insert into AwardsAndPunishments values (5," 惩罚 " , " 经常迟到早退 " ," 奖金 " ); 二、触发器和存储过程 /* ---------------------------------

 存储过程

 ---------------------------------------

 */ /* 1. 查询全部信息 */ create procedure staffInfoAll AS begin select * from Staff end execute staffInfoALL /* 2. 按员工号查询员工信息 */ create procedure staffInfoBySno @divid varchar (10) -- 定义一个输入参数 as begin select * from Staff where Sno = @divid -- 要求 ID 列与输入参数相等 end execute staffInfoBySno "1 } */

 27

 /* 3. 插入一条员工信息 */ create procedure insertStaffInfo @Snoint , /* 员工号 */ @Snamevarchar (10), /* 员工姓名 */ @Ssexvarchar (5), /* 性别 */ @Sagesmallint , /* 年龄 */ @Seduback varchar ( 7), /* 学历(教育背景)

 @Spcvarchar (5), /* 政治面貌 */ @Smsvarchar (5), /* 婚姻状况 */ @Spsvarchar (7) /* 生理状况 */

 as begin insert into Staff values ( @Sno, @Snam,e@Ssex, @Sag,e@Seduback, @Spc, @Sm,s@Sp)s end execute insertStaffInfo 8," 张磊 " ," 男 " ,25," 本科 "," 团员 "," 未婚 " ," 健康 " execute staffInfoBySno "8" /* 4. 更新一条员工信息 */ create procedure updateStaffInfo

  @Snoint , /* 员工号 */ @Snamevarchar (10), /* 员工姓名 */ @Ssexvarchar (5), /* 性别 */

 28

 @Sagesmallint , /* 年龄 */ @Seduback varchar ( 7), /* 学历(教育背景)

 */ @Spcvarchar (5), /* 政治面貌 */ @Smsvarchar (5), /* 婚姻状况 */ @Spsvarchar (7) /* 生理状况 */

 as begin update Staff set Sno=@Sno, Sname=@Snam,eSsex=@Ssex, Sage=@Sage, Seduback=@Seduback, Spc=@Spc, Sms=@Sm s, Sps=@Sps where Sno=@Sno end execute updateStaffInfo 8," 张鑫 " ," 男 " ,26," 本科 "," 团员 "," 已婚 " ," 健康 " ; /* 5. 删除一条员工信息 */ create procedure deleteStaffInfo @divid varchar (10) as begin delete from Staff where Sno = @divid end

 execute staffInfoALL

 execute deleteStaffInfo "8" execute staffInfoBySno "8" execute staffInfoALL

 create trigger 触发器 on Staff after insert , delete , update as if exists ( select * from inserted ) and exists ( select * from deleted ) begin print " 更新成功 " ; end /*

 --------------------------------

 触发器

 ---------------------

 */

 29

 else if exists ( select * from inserted ) begin print " 插入成功 " ; end else if exists ( select * from deleted ) begin print " 删除成功 " ; end /* 测试数据 */ delete from Staff where Sno=6; /* 删除成功 (1 行受影响 )*/ insert into Staff values (8," 张磊 "," 男 ",25," 本科 " ," 团员 " ," 未婚 "," 健康 "); /* 插入成功 (1 行受影响 )*/ update Staff set Sno=8, Sname=" 张鑫 " , Ssex=" 男 " , Sage=21, Seduback=" 本科 " , Spc=" 党员 " , Sms=" 已婚 " , Sps=" 健康 " where Sno=8; /* 更新成功 (1 行受影响 )*/ SELECT* FROMStaff WHERESno=8;

 (5 )员工薪水信息 30

 1*8 张鑫 男 21 本科 党员 已婚 健康 */ 七、实验截图 一、表的定义和数据插入 (1 )创建员工信息表 Staff

 Sno Sname Ssex Saqe Sednba.. 4

 ・ Spc Sms Sps

 1 军三 男 20 本科 竞员 未婚 健康

 2 李四 男 斗 5 专科 群众 己婚 不健康

 3

  33

 健康

 4

 女 21 本科 团员 未赠

  5

 女 36 专料■ 群众 己措 健康

 8

 男 21 本科 党员 己酯 健康 Kt- NULL NULL NULL NULL NULL NULL NULL NULL (2 )创建工作信息表 Workl nfo

  $no Sworktime Swork 1 1995-0101 分折员 2 1970-03-29 淸洁工 3 1982-0549 经理 斗 1994-C8-31 打字员 5 1979-09-01 慄安 NULL NULL NULL (3 )创建合同信息表

  Sno ano startdate activetime 1 101 1995-01-01 20 2 101 1970-03-29 20 3 101 1982-05-19 20 4 101 1994-08-31 20 5 101 1079-09-01 20 NULL NULL NULL NUU\

  (4 )登录信息 Sno Spass [1 123 2 123 3 123 4 123 5 123 NULL NULL

 31

  Sno Ssalary Scomrrit

 1 5000 500

 2 3000 1GQ

 3 7000 200

 斗 4000 500

 5 2000 500 »NULL NULL NULf\ (6 )员工考勤信息

 Sno Sa 论 Slatenum SeariyriH^

 1 1 0 0

 2 0.5 10 5

 3 0.75 4 1

 4 1 0 C

 5 0.25 IS S

 NULL NULL NULL NULL (7 )出差信息表

 Sno bstartdate benddate subsidy

 1 2015-03-03 2015-0330 3000

 4 2015-05-02 2015-05-20 2500

 NULL NULL NULL NUlA (8 )加班信息表

  Sno ostartti.., oendtime su bsidy P18:15 21:25 200 3 18:15 21:25 200 5 18:15 21:25 200 * NULL NULL NULL NULL

  (9 )培训教师表

 tno tecno tecname

 123 1

  123 2

  123 3 越云

 456 4 李字春

 456 6 李敏镉

 NULL NULL NULL

 32

 (10 )培训机构表 tno tname 123 魔乐科“ 456 中北大… 出 NULL NULL ( 11 )员工培训信息表

  Sno tno tecno tstarbdate tenddate tgrade 1 123 1 2014-03-04 2014-05-04 95 3 123 2 2013-04-01 201 玉诟 -04 75 斗 456 1 2014-03-04 201M5-04 BO ** NULL NULL NULL NULL NULL NULt\ ( 12 )奖惩信息 Sna quality reason

  handlinq 1

 工作 朝感, 态度常疋, 认岚负冑 奖命 50 。

 2 惩罚 经您迟切早胞

 奖金 500 5 惩罚 经常迟到早退

 奖金 500 峠 NULL WLL NULL

  wU

 二、触发器和存储过程 执行触发器后的结果截图 1. 首先输出所有人的信息

 Sno Sname 5 阿 Sage S eduback. Spc Sm? Sp? 1 H ! 聲三 男 20 本科

 未皓 健康 2 2 李四 男 45 考科

 巳婚 不健康 3 3

 男 33 研兖主 a 已皓 健康 4 4

 女 ?1 本科

 5 5 钱七 玄 36 专科

 已皓 健廉 6 6 张歳 男 26 本科

  健庫 2. 先删除一条信息,删除 6 号员工的信息

  删除成功后查询所有记录

 Sno Sname Ssex S age Seduback Spc. S ms. Sps 1 1 张三 男 20

 党员来皓 健康 2 2 李四 男 45 专科 群众已蜡 不價康 3 3

 男 23 硏究生 团员已婚 健康 4 4 赵六

 型

 团员未婚

 5 5 钱七 立 3E 背科 群我已蜡 健康 再查询 6 号学生的信息,已经查不到了 Sno Sn^me Ssex Sage Seditiack Spc Snu Sps

 33

 3. 插入一条信息,员工号为 8 插入成功 (-行覺影响)

 1 Sno Sname Ssex Ssge Seduba 匚 k Spc Sms

 8

 I 狀聶 男 25 年科 团员 末婚健康

 4. 更新该信息 T5" 肅启 更 (1 行受影响)

 查询更新后的信息,验证是否成功

  八、心得体会 此次为期一周的数据库课程设计过程中, 感觉整个系统的设计过程就是一个逐步完善的 过程,必须要不停地思考不停地探索。

 刚开始的两天其实基本上毫无头绪, 去图书馆去网上 都查了资料,了解这方面的需求, 在脑海中先形成大致模块和思路, 建立数据库的过程看似 简单,实则不然。要考虑到实体间的逻辑关系和数据关系模式的完整性问题, 努力使之达到 第三范式;然后就是前台界面的设计了,在对数据源的 select,update,delect, 查询属性进 行配置的过程中,反反复复,不能确定,最后,只得静下心来,一步一步一点一点的配置, 修改,最后终于全部成功, 在这个反复的过程当中已将这些今本知识印于脑海之中, 巩固了 平时所学,顿时觉得有了成就感, 也感受到了数据库知识的强大功能和作用。

 此次课程设计 要求实现的功能,其实心里想要的实现的功能更多,但是所学知识有限,只能暂时这样,通 过此次课程设计加深了我对据库,实体逻辑关系的理解。

推荐访问:说明书 课程设计 数据库
上一篇:宾馆安全生产管理制度复习过程
下一篇:生活垃圾处理中心企业组织与劳动定员

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有