人事信息管理系统后台数据库设计样本_第1页
人事信息管理系统后台数据库设计样本_第2页
人事信息管理系统后台数据库设计样本_第3页
人事信息管理系统后台数据库设计样本_第4页
人事信息管理系统后台数据库设计样本_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《数据库管理系统》课程设计汇报题目:人事信息管理系统后台数据库设计院(系):信息科学和工程学院专业班级:计算机科学和技术****班学生姓名:******学号:***********指导老师:陈颉2013年1月7日至2013年1月18日华中科技大学武昌分校制数据库管理系统课程设计任务书一、设计(调查汇报/论文)题目人事信息管理系统后台数据库设计二、设计(调查汇报/论文)关键内容内容:完成人事信息管理工作,实现各部门信息化管理,满足职员和管理者办公需求,比如职员查询信息、管理员修改信息等,要求设计并实现人事信息管理系统后台数据库。基础功效和要求:1.在人事管理过程中,实现信息自动化管理。2.实现多种信息修改、插入、删除功效(对管理员而言)。3.实现对多种信息查询、统计,支持模糊查询(对职员和管理员均可)。4.根据年份月份统计某个职员出勤情况。5.根据某年某月某日统计查询某部门迟到和早退人数。6.按年统计各部门调入调出人数信息。分工任务:1需求分析2数据库物理实现3系统后台功效测试三、原始资料1.《数据库管理系统课程设计》指导书2.数据库系统设计课件四、要求设计(调查/论文)结果1.课程设计汇报2.课程设计作品五、进程安排序号课程设计内容课时分配备注1选题、需求分析1天2数据库设计2天3数据库表及相关约束、视图实现2天4数据库存放过程、触发器实现2天5数据库后台功效测试2天6验收答辩、撰写课程设计汇报1天累计10天六、关键参考资料[1]顾兵.数据库技术和应用(SQLServer).北京:清华大学出版社,.[2]马晓梅.SQLServer试验指导.第3版.北京:清华大学出版社,.[3]范立南等.SQLServer实用教程.北京:清华大学出版社,.[4]李丹.SQLServer数据库管理和开发.北京:机械工业出版社,.指导老师(署名):20年月日目录1.需求分析…………11.1系统功效基础要求………11.2系统需求分析………………11.3数据字典……………………21.4数据流图……………………32.概念结构设计……………………42.1局部E-R图…………………42.2全局E-R图…………………63.逻辑结构设计……………………73.1E-R图向关系模式转换标准……………73.2依据E-R图转换关系模式…………………83.3关系模式优化……………84.物理结构设计……………………94.1数据库文件建立…………94.2数据表建立………………94.3视图建立…………………114.4索引建立…………………114.5存放过程建立……………124.6触发器建立………………124.6约束建立…………………125.数据库物理实现………………135.1数据库建立………………135.2数据表建立………………135.3视图建立…………………165.4索引建立…………………225.5存放过程建立……………275.6触发器建立………………295.7约束建立…………………306.系统后台功效测试………………347.总结…………………371.需求分析开发数据库系统第一步是进行需求分析,需求分析好坏直接决定者系统能否真正满足用户需要。需求分析阶段在软件开发前期,它基础任务是正确地定义未来系统目标,确定为了满足用户需求系统必需做什么。1.1系统功效基础要求:(1)管理者进入系统后要能够清楚地看到企业机构组织形式,并能够很方便地进入到各个管理功效模块中。管理者能够依据企业实际来实时地改变系统中机构组织,关键改变包含:当有新部门成立时,要将新部门加入到系统中;当有部门发生变更时,如更名,上级部门改变了等,要将变更信息在系统中立即更新;(2)职员多种信息输入,包含职员基础信息、学历信息、婚姻情况信息、职称等。(3)职员多种信息修改和删除。修改范围有:人员基础信息;将人员从一个部门下移到另一个部门下。对于转出、辞职、解聘、退休职员信息删除;(4)根据一定条件,查询、统计符合条件职员信息;最少应该包含每个职员具体信息查询、按婚姻情况查询、按学历查询、按工作岗位查询等,最少应该包含按学历、婚姻情况、岗位、参与工作时间等统计各自职员信息;1.2系统需求分析1.2.1系统功效步骤图职员基础信息管理职员基础信息管理人事管理系统信息修改插入删除图1-1人事管理系统总数据步骤图查询统计职员调动信息管理工资管理工作信息管理部门信息管理考勤信息统计人事管理系统信息修改插入删除图1-1人事管理系统总数据步骤图查询统计职员调动信息管理工资管理工作信息管理部门信息管理考勤信息统计1.2.2系统关键功效模块分析(1)基础信息模块。关键包含企业职员基础信息,如姓名、性别、学历、婚姻情况、联络方法等。职员登录后能够查询个人信息;管理员能够负责维护职员基础信息和职员流动信息。(2)职员工作信息模块。关键显示职员在企业情况。(3)部门信息模块。关键统计企业组织机构信息。(4)考勤信息模块。关键包含职员上下班出勤情况,如迟到、休假等。(5)工资信息模块。关键包含职员工资信息。(6)查询统计模块。关键为实现上述信息查询和统计,并能够生成相关报表文件。1.3数据字典数据字典用途:是相关数据库中数据描述;在需求分析阶段建立,是下一步进行概念设计基础数据字典内容:数据项(数据最小单位)、数据结构(若干数据项有意义集合)、数据流(表示某一处理过程输入或输出)、数据存放(处理过程中存取数据)、处理过程(该过程功效)等1.3.1数据项(1)职员基础情况。包含数据项有职员编号,姓名,性别,年纪,名族,入职时间,所属部门,联络电话,身份证号,基础工资。(2)职员工作信息。包含数据项有职员编号、所属部门编号、职称、工龄。(3)部门信息。包含数据项有部门编号、部门名称、部门电话、部门经理。(4)职员考勤信息。包含数据项有职员编号、缺勤、迟到、早退。(5)职员工资信息。包含数据项有职员编号,姓名,底薪,补助,奖金,加班,代扣养老金,代扣医疗保险,代扣住房公积金,所得税,房贴,房租,实发工资。1.3.2数据结构比如说,数据结构名:职员含义说明:是人事信息管理系统主体数据结构,定义了一个职员相关信息。组成:职员编号、性别、姓名、年纪、民族、身份证号、入职时间、部门编号、联络电话、基础工资。1.3.3数据流比如说,数据流名:变更职员数据流起源:职员编号数据流去向:职员信息说明:变感人员相关信息1.3.4数据存放比如说,数据存放名:职员信息表单流入数据流:起源职员流出数据流:去向存取方法:随机存取说明:统计职员信息基础情况1.3.5存放结构比如工资信息中处理过程名:计算工资输入数据流:职员,出勤信息输出数据流:工资信息表单说明:计算企业全部职员工资处理:在每个月最终一天计算出每个职员工资。1.4总数据流图人事管理系统人事信息系统数据库人事管理系统人事信息系统数据库人事信息系统管理员2.概念结构设计2.1局部E-R图2.1.1职员基础信息E-R图图2-1职员基础信息E-R图图2-1职员基础信息E-R图职员信息工号姓名性别所属部门年纪民族身份证号入职时间联络电话基础工资2.1.2职员工作信息E-R图职员工作信息职员工作信息工号所属部门编号职称工龄图2-2职员工作信息E-R图2.1.3部门信息E-R图图2-3部门信息E-R图图2-3部门信息E-R图部门信息部门编号部门名称部门经理部门电话2.1.4工资信息E-R图工资信息工资信息职员编号实上班天数扣款实发工资图2-4工资信息E-R图2.1.5考勤信息E-R图考勤信息考勤信息缺勤早退迟到图2-5考勤情况E-R图工号日期2.1.6职员调动信息E-R图职员调动信息职员调动信息调入时间工号调入时间工号姓名姓名调离时间新部门原部门调离时间新部门原部门图2-图2-6职员调动情况E-R图2.2全局E-R图影响新部门原部门调离时间调入时间姓名工号职员调动信息包含身份证号图2-6全局E-R图工资工号实上班天数扣款实发工资考勤缺勤早退迟到工号影响新部门原部门调离时间调入时间姓名工号职员调动信息包含身份证号图2-6全局E-R图工资工号实上班天数扣款实发工资考勤缺勤早退迟到工号影响发放给职员工号姓名性别所属部门年纪民族入职时间联络电话基础工资属于部门部门编号部门名称部门经理部门电话包含职员工作信息工号所属部门编号职称工龄第三章逻辑结构设计逻辑结构设计任务是把概念结构设计阶段设计完成基础E—R图转化为和选择具体机器上DBMS产品所支持数据模型相符逻辑结构(包含数据库模式和外模式)。这些模式在功效性、完整性和一致性约束及数据库可扩充性等方面应满足用户多种要求。E—R图型关系模型转化要处理问题是怎样将实体和实体间关系转化为关系模式,怎样确定这些关系模式属性和代码。3.1E-R图向关系模式转换标准(1)一个实体型转换为一个关系模式。实体属性就是关系属性。实体码就是关系码。(2)一个联络转化为一个关系模式,和该联络相连各实体码和联络属性转化为关系属性,该关系码则有三种情况:若联络为1:1,则每个实体码均是该关系后选码。若联络为1:n,则关系码为n端实体码。若联络为m:n,则关系码为诸实体码组合。=1\*GB3①联络为1:1一个1:1联络能够转换为一个独立关系模式,也能够和任意一端对应关系模式合并。假如转换为一个独立关系模式,则和该联络相连各实体码和联络本身属性均转换为关系属性,l每个实体码均是该关系候选码。假如和某一端对应关系模式合并,则需要在该关系模式属=2\*GB3②联络为1:n一个1:n联络能够转换为一个独立关系模式,也能够和n端对应关系模式合并。假如转换为一个独立关系模式,则和该联络相连各实体码和联络本身属性均转换为关系属性,而关系码为n端实体码。假如和n端对应关系模式合并,则在n端实体对应模式中加入1端实体所对应关系模式码,和联络本身属性。而关系码为n端实体码。=3\*GB3③联络为m:n一个m:n联络转换为一个关系模式。和该联络相连各实体码和联络本身属性均转换为关系属性。而关系码为各实体码组合。比如在我们例子中,"选修"联络是一个m:n联络,能够将它转换为以下关系模式,其中学号和课程号为关系组合码:选修(学号,课程号,成绩)三个或三个以上实体间一个多元联络转换为一个关系模式。和该多元联络相连各实体码和联络本身属性均转换为关系属性。三个或三个以上实体间一个多元联络转换为一个关系模式。和该多元联络相连各实体码和联络本身属性均转换为关系属性。而关系码为各实体码组合。(3)同一实体集实体间联络,即自联络,也可按上述1:1、1:n和m:n三种情况分别处理。(4)含有相同码关系模式可合并。为了降低系统中关系个数,假如两个关系模式含有相同主码,能够考虑将她们合并为一个关系模式。合并方法是将其中一个关系模式全部属性加入到另一个关系模式中,然后去掉其中同义属性(可能同名也可能不一样名),并合适调整属性次序。3.2依据E-R图转换关系模式一个实体型转换为一个关系模式。实体属性就是关系属性。实体码就是关系码。比如在我们例子中,职员基础信息实体能够转换为以下关系模式:职员基础信息(工号,姓名,性别,年纪,民族,入职时间,所属部门,联络电话,身份证号,基础工资)一样,职员工作信息、部门信息等全部分别转换为一个关系模式:职员工作信息(工号,所属部门编号,职称,工龄)部门(部门编号,部门名称,部门经理,部门电话)工资(工号,实上班天数,实发工资,扣款)考勤(工号,缺勤,迟到,早退,日期)职员调动信息(工号,姓名,原部门编号,新部门编号,调离时间,调入时间)3.3关系模式优化根据上述4条标准,学生管理子系统中5个实体和联络能够转换为下列关系模型:将职员工作信息和工资信息含有相同码,合并为职员工作信息(工号,所属部门编号,职称,工龄,实上班天数,实发工资,扣款)由上述优化得到最终满足第三范式关系模式为:职员基础信息(工号,姓名,性别,年纪,民族,入职时间,所属部门,联络电话,身份证号,基础工资)职员工作信息(工号,所属部门编号,职称,工龄,实上班天数,实发工资,扣款)部门(部门编号,部门名称,部门经理,部门电话)考勤(工号,缺勤,迟到,早退,日期)职员调动信息(工号,姓名,原部门编号,新部门编号,调离时间,调入时间)4.物理结构设计4.1数据库文件建立本数据库文件是由一个数据文件、一个次要文件和一个事务日志文件组成。数据文件包含数据库初始信息,统计数据库还拥有哪些文件,而且用于存放数据统计。次要文件经过在不一样物理磁盘上创建次要数据文件并将数据存放其中,可将数据横跨存放在多块物理磁盘上。而事务日志文件包含用来恢复数据库日志信息,统计数据库更新情况文件。4.2数据表建立依据课程设计任务书要求,经需求分析,需用到五个表,分别为职员信息表,职员工作信息表,部门信息表,考勤信息表,工资信息表,职员调动信息表。具体情况以下:4.2.1职员基础信息表表4-1职员信息表编号属性名称类型长度可否为空含义说明1职员编号char9否标识每一个职员2姓名char8否职员姓名3性别char2否标识是男士还是女士4年纪int是标识职员年纪5民族char4否标识职员民族6身份证号char18否标识职员身份7入职时间datetime否统计职员什么时候入职8部门编号char4是标识职员所在部门9联络电话char11否统计职员联络方法10基础工资int否统计职员基础收入4.2.2职员工作信息表表4-2职员工作信息表编号属性名称类型长度可否为空含义说明1职员编号char9否标识每一个职员2部门编号char4否标识每个部门3职称char6是标识每一个职员头衔4工龄int是标识每个职员工作时间4.2.3部门信息表表4-3部门信息表编号属性名称类型长度可否为空含义说明1部门编号char4否标识每个部门2部门名称char8否统计部门名称3部门电话char8否统计个部门联络方法4部门经理char8否统计部门管理人员4.2.4考勤信息表表4-4考勤信息表编号属性名称类型长度可否为空含义说明1职员编号char9否标识每一个职员2缺勤char4是统计缺勤次数3迟到char4是统计迟到次数4早退char4是统计早退次数5日期datetime否统计考勤日期4.2.5工资信息表表4-5工资信息表编号属性名称类型长度可否为空含义说明1职员编号char9否标识每一个职员2实上班天数int否统计每个职员上班天数3实发工资int是统计职员实际工资4扣款int是统计扣款信息4.2.6职员调动信息表表4-6职员调动信息表编号属性名称类型长度可否为空含义说明1职员编号char9否标识每一个职员2姓名char8否职员姓名3原部门编号char4是调离部门4新部门编号char4是调入部门5调离时间datetime是统计调离原部门时间6调入时间datetime是统计调入新部门时间4.3视图建立视图是一个常见数据库对象,是关系数据库系统提供给用户以多个角度来观察数据一个关键机制。使用视图是用户能够以更多样而且更有弹性方法来访问数据,这不仅能够确保数据库安全性,而且能够提升其使用便利性。视图作用是能够间接访问其它表或视图中数据。在数据库应用中使用视图有几方面优点:(1)集中数据显示;(2)简化数据操作;(3)提供简便易行安全保密方法;(4)易于合并或分割数据。相对于人事信息管理系统,对职员基础信息查询较为频繁,故创建一个显示职员基础信息视图view_staff;结算工资时,会用到职员工资信息,故建立一个职员工资信息视图view_gongzi,还会考虑职员出勤情况,故建立一个某个职员出勤情况视图view_chuqin;职员对自己工作信息进行查询时,要用到工作信息视图,故建立一个工作信息视图view_gognzuo,部门进行管理时,需要查询部门信息,故需要建立一个部门信息视图view_bumen等。4.4索引建立索引是SQLServer访问数据使用一个辅助数据结构,关键作用是提升数据访问速度和确保数据唯一性。索引是一个单独、物理数据库结构,它是某个表中一列或若干列值得集合和对应说指向表中物理标识这些值数据页逻辑指针清单。索引是依靠于表建立,能够有效进行数据选择和排序。索引优点有:(1)利用索引能够大大提升查询速度;(2)确保数据唯一性;(3)在使用GROUPBY和ORDERBY子句进行检索数据时,能够显著降低查询中分组和排序时间;(4)使用索引能够在检索数据过程中进行优化,提升系统性能;(5)能够加速表和表之间连接。由上所述,在人事信息管理系统中各表主键列需强制唯一,更按升序排列创建索引,便于信息查询搜索,建立了以下多个索引:职员姓名聚集索引,部门名称聚集索引,考勤编号聚集索引,工作主键聚集索引,身份证号唯一索引。4.5存放过程建立存放过程是一组为了完成特定功效表示式集合,经编译后存放在数据库中。用户经过指定存放过程名字并给出参数来实施。存放过程能够包含程序流、逻辑和对数据库查询,能够接收输入参数、输出参数、返回单个或多个结果集和返回值。存放过程结合了SQL数据操作能力和过程化语言步骤控制能力,是SQL过程化扩展。存放过程优点:(1)许可标准组件式编程;(2)能够实现较快实施速度;(3)能够有效降低网络流量;(4)可被作为一个安全机制来充足利用。在人事信息管理系统中,首先需要创建一个存放过程,其用于查询数据库中每个职员基础信息;创建存放过程,用于返回全部男士工作信息;创建一个存放过程,用于查询职员工资信息;创建一个存放过程,其用于按日期查询每个职员出勤情况信息;创建一个存放过程,按日期查询各部门调动信息。4.6触发器建立触发器是一个由事件驱动特殊存放过程,当它被定义在表上时,可看作表一部分,一旦定义,任何用户当试图对表进行增加、删除或修改操作时,全部由服务器自动激活对应触发器,即触发器被请求。由此在DBMS关键层进行集中完整性控制。触发器关键作用就是:能够实现由主键、外键和多种常规数据约束所不能确保复杂参考完整性和数据一致性。所以,触发器是一个确保数据和业务完整性很好方法。在人事信息管理系统中,创建触发器检验职员年纪,确保在0-100之间为有效年纪;创建触发器,在插入、修改、删除操作统计时,自动显示表中内容;创建触发器预防表中数据被恶意删除。4.7约束建立约束是在SQLSever中实现数据完整性一个方法,它经过定义可输入表或表单个列中数据限制条件而自动保持数据库完整性。SQLSever中有5种约束:主键约束、外键约束、唯一性约束、检验约束和默认约束。每一个数据完整性类型,全部由不一样约束类型来保障:域完整性是由默认值或检验约束给予保障;实体完整性则依靠逐步或唯一约束来保障;而参考完整性就需要经过外键约束来保障了。5.数据库物理实现5.1数据库建立具体信息创建以下:createdatabaserson(name=renshi_m,filename='e:\rs_m.mdf',size=10mb,maxsize=100mb,filegrowth=1mb),(name=company_n,filename='e:\rs_m.ndf',size=10mb,maxsize=100mb,filegrowth=1mb)logon(name=company_l,filename='e:\rs_m.ldf',size=10mb,maxsize=100mb,filegrowth=1mb)Go5.2数据表建立5.2.1创建职员信息表USE[rs]GOCREATETABLE[dbo].[职员信息表]( [职员编号][char](9)COLLATEChinese_PRC_CI_ASNOTNULL, [姓名][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [性别][char](2)COLLATEChinese_PRC_CI_ASNOTNULL, [年纪][int]NOTNULL, [民族][char](4)COLLATEChinese_PRC_CI_ASNOTNULL, [身份证号][char](18)COLLATEChinese_PRC_CI_ASNOTNULL, [入职时间][datetime]NOTNULL, [所在部门编号][char](4)COLLATEChinese_PRC_CI_ASNOTNULL, [联络电话][char](11)COLLATEChinese_PRC_CI_ASNOTNULL, [基础工资][int]NOTNULL)ON[PRIMARY]GO5.2.2创建职员工作信息表USE[rs]GOCREATETABLE[dbo].[职员工作信息表]( [职员编号][char](9)COLLATEChinese_PRC_CI_ASNOTNULL, [部门编号][char](4)COLLATEChinese_PRC_CI_ASNOTNULL, [职称][char](6)COLLATEChinese_PRC_CI_ASNULL, [工龄][int]NULL)ON[PRIMARY]GO5.2.3创建部门信息表USE[rs]GOCREATETABLE[dbo].[部门信息表]( [部门编号][char](4)COLLATEChinese_PRC_CI_ASNOTNULL, [部门名称][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [部门电话][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [部门经理][char](8)COLLATEChinese_PRC_CI_ASNOTNULL)ON[PRIMARY]GO5.2.4创建工资信息表USE[rs]GOCREATETABLE[dbo].[工资信息表]( [职员编号][char](9)COLLATEChinese_PRC_CI_ASNOTNULL, [实上班天数][int]NOTNULL, [实发工资][int]NULL, [扣款][int]NULL)ON[PRIMARY]GO5.2.5创建考勤信息表USE[rs]GOCREATETABLE[dbo].[考勤信息表]( [职员编号][char](9)COLLATEChinese_PRC_CI_ASNOTNULL, [缺勤][int]NULL, [迟到][int]NULL, [早退][int]NULL, [日期][datetime]NOTNULL)ON[PRIMARY]GO5.2.6创建职员调动信息表USE[rs]GOCREATETABLE[dbo].[职员调动信息表]( [职员编号][char](9)COLLATEChinese_PRC_CI_ASNOTNULL, [姓名][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [原部门编号][char](4)COLLATEChinese_PRC_CI_ASNULL, [新部门编号][char](4)COLLATEChinese_PRC_CI_ASNULL, [调离时间][datetime]NULL, [调入时间][datetime]NULL)ON[PRIMARY]GO5.3视图建立5.3.1在部门信息表创建视图USE[rs]GOCREATEVIEW[dbo].[部门职员工作信息]ASSELECTTOP(100)PERCENTdbo.部门信息表.部门编号AS部门编号,dbo.部门信息表.部门名称AS部门名称,dbo.职员工作信息表.职员编号,dbo.职员信息表.姓名,dbo.职员工作信息表.职称,dbo.职员工作信息表.工龄FROMdbo.部门信息表INNERJOINdbo.职员工作信息表ONdbo.部门信息表.部门编号=dbo.职员工作信息表.部门编号INNERJOINdbo.职员信息表ONdbo.职员工作信息表.职员编号=dbo.职员信息表.职员编号ORDERBYdbo.职员工作信息表.职员编号GO5.3.2在工资信息表创建视图USE[rs]GOCREATEVIEW[dbo].[职员工资信息]ASSELECTTOP(100)PERCENTdbo.工资信息表.职员编号,dbo.职员信息表.姓名,dbo.工资信息表.实上班天数,dbo.工资信息表.实发工资,dbo.工资信息表.扣款FROMdbo.工资信息表INNERJOINdbo.职员信息表ONdbo.工资信息表.职员编号=dbo.职员信息表.职员编号ORDERBYdbo.职员信息表.姓名GO5.3.3在职员工作信息表创建视图USE[rs]GOCREATEVIEW[dbo].[职员工作信息]ASSELECTdbo.职员工作信息表.职员编号,dbo.职员信息表.姓名,dbo.职员工作信息表.部门编号,dbo.部门信息表.部门名称,dbo.职员工作信息表.职称,dbo.职员工作信息表.工龄FROMdbo.职员工作信息表INNERJOINdbo.职员信息表ONdbo.职员工作信息表.职员编号=dbo.职员信息表.职员编号INNERJOINdbo.部门信息表ONdbo.职员工作信息表.部门编号=dbo.部门信息表.部门编号GO5.3.4在考勤信息表创建视图USE[rs]GOCREATEVIEW[dbo].[职员考勤信息]ASSELECTdbo.考勤信息表.职员编号,dbo.考勤信息表.缺勤,dbo.考勤信息表.迟到,dbo.考勤信息表.早退,dbo.考勤信息表.日期,dbo.职员信息表.姓名FROMdbo.考勤信息表INNERJOINdbo.职员信息表ONdbo.考勤信息表.职员编号=dbo.职员信息表.职员编号GO5.3.5在职员信息表创建视图USE[rs]GOCREATEVIEW[dbo].[职员信息]ASSELECTdbo.职员信息表.职员编号,dbo.职员信息表.姓名,dbo.职员信息表.年纪,dbo.职员信息表.性别,dbo.职员信息表.联络电话,dbo.职员信息表.所在部门编号,dbo.部门信息表.部门名称,dbo.职员信息表.入职时间,dbo.职员信息表.身份证号,dbo.职员信息表.民族,dbo.职员信息表.基础工资FROMdbo.职员信息表INNERJOINdbo.部门信息表ONdbo.职员信息表.所在部门编号=dbo.部门信息表.部门编号GO5.3.6在职员调动信息表创建视图USE[rs]GOCREATEVIEW[dbo].[各部门职员调动信息]ASSELECTTOP(100)PERCENT部门信息表_1.部门名称AS新部门名称,dbo.职员调动信息表.新部门编号,dbo.职员调动信息表.调入时间,dbo.职员调动信息表.职员编号,dbo.职员调动信息表.姓名,dbo.部门信息表.部门名称AS原部门名称,dbo.部门信息表.部门编号AS原部门编号,dbo.职员调动信息表.调离时间FROMdbo.部门信息表INNERJOINdbo.职员调动信息表ONdbo.部门信息表.部门编号=dbo.职员调动信息表.原部门编号INNERJOINdbo.部门信息表AS部门信息表_1ONdbo.职员调动信息表.新部门编号=部门信息表_1.部门编号ORDERBY原部门编号GO5.4索引建立5.4.1在部门信息表创建索引部门编号唯一索引USE[rs]GOCREATEUNIQUENONCLUSTEREDINDEX[部门编号]ON[dbo].[部门信息表]( [部门编号]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]部门名称唯一索引USE[rs]GOCREATEUNIQUENONCLUSTEREDINDEX[部门名称]ON[dbo].[部门信息表]( [部门名称]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]5.4.2在工资信息表创建索引扣款不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[扣款]ON[dbo].[工资信息表]( [扣款]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]实发工资不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[实发工资]ON[dbo].[工资信息表]( [实发工资]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]5.4.3在考勤信息表创建索引迟到不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[迟到]ON[dbo].[考勤信息表]( [迟到]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]早退不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[早退]ON[dbo].[考勤信息表]( [早退]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]5.4.4在职员调动信息表创建索引原部门编号不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[原部门编号]ON[dbo].[职员调动信息表]( [原部门编号]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]新部门编号不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[新部门编号]ON[dbo].[职员调动信息表]( [新部门编号]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]5.4.5在职员工作信息表创建索引工龄不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[工龄]ON[dbo].[职员工作信息表]( [工龄]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]职称不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[职称]ON[dbo].[职员工作信息表]( [职称]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]5.4.6在职员信息表创建索引职员编号唯一索引USE[rs]GOCREATEUNIQUENONCLUSTEREDINDEX[职员编号]ON[dbo].[职员信息表]( [职员编号]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]姓名不唯一索引USE[rs]GOCREATENONCLUSTEREDINDEX[姓名]ON[dbo].[职员信息表]( [姓名]ASC)WITH(SORT_IN_TEMPDB=OFF,DROP_EXISTING=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF)ON[PRIMARY]5.5储存过程建立5.5.1创建存放过程,返回全部男士工资信息usersgocreateproceduregongzuo_maleasselect职员信息表.姓名,性别,实发工资from职员信息表,工资信息表where职员信息表.职员编号=工资信息表.职员编号and职员信息表.性别='男'go5.5.2创建存放过程,其用于查询数据库中每个职员基础信息usersgocreateproceduregongzuoasselect职员信息表.职员编号,姓名,性别,年纪,民族,身份证号,入职时间,联络电话,基础工资from职员信息表go5.5.3创建存放过程,用于按日期统查询每个职员出勤信息usersgocreateprocedurekaoqinasselect考勤信息表.日期,职员编号,迟到,早退,缺勤from考勤信息表go5.5.4创建一个存放过程,用于查询职员工作信息usersgocreateproceduregongziasselect职员工作信息表.职员编号,姓名,部门编号,职称,工龄from职员工作信息表,职员信息表where职员工作信息表.职员编号=职员信息表.职员编号go5.5.5创建一个存放过程,按日期查询各部门调动信息usersgocreateprocedurediaodongasselect职员调动信息表.调入时间,职员编号,姓名,新部门编号,原部门编号,调入时间from职员调动信息表go5.6触发器建立5.6.1创建触发器检验职员年纪,确保在0-100之间为有效年纪usersgocreatetriggerage_0_100on职员信息表forinsert,updateasdeclare@年纪intselect年纪=年纪frominserted if@年纪<0and@年纪>100beginrollbackprint('年纪必需在0-100')End5.6.2创建触发器,在插入、修改、删除操作统计时,自动显示表中内容usersgocreatetriggeryuangongon职员工作信息表forinsert,update,deleteasselect*from职员工作信息表5.6.3创建触发器预防表中数据被恶意删除usersgocreatetriggernoupdateon部门信息表forupdateasbeginprint('不许可你恶意删除本表数据!')rollbacktransactionreturnend5.7约束建立5.7.1在部门信息表建立约束USE[rs]GOALTERTABLE[dbo].[部门信息表]WITHCHECKADDCONSTRAINT[CK_部门信息表]CHECK(([部门编号]<>NULL))USE[rs]GOALTERTABLE[dbo].[部门信息表]WITHCHECKADDCONSTRAINT[CK_部门信息表_1]CHECK(([部门名称]<>NULL))5.7.2在工资信息表建立约束USE[rs]GOALTERTABLE[dbo].[工资信息表]WITHCHECKADDCONSTRAINT[CK_工资信息表]CHECK(([职员编号]<>NULL))USE[rs]GOALTERTABLE[dbo].[工资信息表]WITHCHECKADDCONSTRAINT[CK_工资信息表_1]CHECK(([实上班天数]>(0)))5.7.3在考勤信息表建立约束USE[rs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论