




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-人事工资管理系统数据库的需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询上,这就要求数据库的结构能充分满足各种信息的输出和输入。需求分析阶段主要是收集基本数据,确定数据结构及数据处理的流程,组成一份详尽的数据字典,以便为后面的概念设计和逻辑设计打下基础。 人事工资管理系统数据库的逻辑结构设计逻辑结构设计的任务是把概念结构设计阶段设计好的E-R图转换为特定的DBMS所支持的数据模型(即层次、网状、关系模型之一),并对其进行优化,得到满足用户要求和系统功能需求的关系模式。1、 E-R模型转换为关系模式将E-R模型转换成初始关系模式的一般规则是:系统中各个实体转换为对应的关系模式;实体之间多对多的联系也转换为关系模式。根据转换规则,可以将部门信息表、员工信息表、工资信息表、考勤信息表、奖罚信息表五个实体转换成与之对应的五个关系模式;而将部门信息表与员工信息表两者之间一对多的关系以及员工、工资和考勤信息表三者之间一对一的关系也转换为关系模式。2、关系模式的设计根据上述的转换结果,在对关系模式中数据进行规范化处理后,得到了符合第三范式的关系模式如下:部门表(Department): DepartmentID、DepartmentName、Renshu、Fuzeren、Phone员工表(Employee): EmployeeID、DepartmentID、EmployeeName、Sex、Chusheng、Minzu、Zzmm、Hunfou、Address、Ruzhishijian、Xueli、Zhicheng、Phone、ID、Jianli、Beizu奖罚表(JiangFa): EmployeeID、EmployeeName、mingcheng、leixing、Riqi工资表(Salarys): EmployeeID、EmployeeName、BasicSalary、Gangweigongzi、Qitajia、Qitakou、Butie、Jiangjin、Gongjijin、Shifagongzi、Yingdegongzi、Riqi考勤表(TimeSheet): EmployeeID、DepartmentID、EmployeeName、Jiaban、Qingjia、Kuanggong、Riqi 每个关系模式中带下划线的字段表示主键、带双波浪线的字段表示与之关联的表的外键。其中Salarys与TimeSheet表有日期限制,所以同时把Riqi作为主键。根据系统功能需求,数据采用SQL Server 2005所支持的实际数据模型,也就是数据库的逻辑结构。启动SQL Server 2005,创建一个数据库命名为:Salary。该数据库中各个数据表的结构如下面各个表格所示。每个表格对应于数据库中的一个表。3、将关系模式转换为数据库中的表按照关系数据模型的结构,将关系模式转换为关系数据库中的数据表,转换的规则是:一个关系模式转换为一个数据表,关系模式中的每个属性转换为数据表中的一个列。同时设置表中各个列的名称、数据类型、数据宽度以及数据规则,得到如下几个表:部门表(Department)列名类型宽度备注DepartmentIDChar5部门编号、主键、非空DepartmentNameNvarchar20部门名称、非空RenshuInt部门人数、取自员工表中添加到相应部门的人数FuzerenNvarchar10部门负责人PhoneChar11联系电话注:(1)该表存放所有部门的信息。员工表(Employee)列名类型宽度备注EmployeeIDChar5员工编号、主键、非空DepartmentIDChar5部门编号、联系部门与员工表的外键、非空EmployeeNameNvarchar10员工姓名、非空SexNvarchar2性别ChushengChar15出生日期MinzuNvarchar10民族ZzmmNvarchar5政治面貌HunfouNvarchar2婚否AddressNvarchar50家庭住址RuzhishijianChar15入职时间XuelNvarchar50学历ZhichengNvarchar20职称PhoneChar11联系电话IDChar18身份证号JianliNvarchar50简历BeizhuNvarchar50备注注:该表存放员工的所有信息。奖罚表(JiangFa)列名类型宽度备注EmployeeIDChar5员工编号、主键、非空EmployeeNameNvarchar10员工姓名、非空mingchengNvarchar10奖罚名称leixingNvarchar10奖罚类型RiqiChar15奖罚日期注:该表存放员工的奖罚信息。工资表(Salarys)列名类型宽度备注EmployeeIDChar5员工编号、主键、非空EmployeeNameNvarchar10员工姓名、非空BasicSalaryMoney基本工资GangweigongziMoney岗位工资QitajiaMoney其它加QitakouMoney其它扣ButieMoney补贴JiangjinMoney奖金GongjijinMoney公积金ShifagongziMoney实发工资YingdegongziMoney应得工资RiqiChar15工资发放日期、主键、非空注:该表存放员工工资的所有信息。考勤表(TimeSheet)列名类型宽度备注EmployeeIDChar5员工编号、主键、非空DepartmentIDChar5部门编号、非空EmployeeNameNvarchar10员工姓名JiabanChar5加班天数QingjiaChar5请假天数KuanggongChar5旷工RiqiChar15日期、主键、非空注:该表存放员工每月考勤信息。五、物理设计数据库的物理设计目标是在选定的DBMS上建立起逻辑设计结构确立的数据库结构,这一过程也称为数据库的物理实现。它主要包括两项工作:一是根据数据库的结构、系统的大小、系统需要完成的功能及对系统的性能要求,决定选用哪个数据库管理系统。目前,数据库产品市场上比较好的产品有:Microsoft SQL Server、Oracle、IBM DB/2,SYBASE等。二是根据选用的数据库管理系统的数据库实现方法来建立用户数据库,即创建所需要的数据库、表及其他数据库对象。 本系统选用的DBMS是SQL Server 2005,并在该系统上创建用户数据库Salary以及下属的5个用户表:Department、Employee、JiangFa、Salarys、TimeSheet各个表的结构按2.4节第3点各表给出的具体内容设定。第二章 数据库的数据完整性设计一、数据完整性的基本概念及内容正确创建数据库后,需要考虑数据的完整性、数据的安全性等要求。数据的完整性主要指数据的正确性、有效性、相容性,强制实施数据完整性可以确保数据库中的数据的质量。进行数据完整性设计主要考虑以下几个方面的内容:1)表名惟一;由系统强制实施控制。2)列名惟一;()由系统强制实施控制。3)数据行惟一;通过设置主键约束或触发器来实施控制。4)列值非空;通过设置非空约束来实施控制。5)列值惟一性通过设置惟一约束或惟一索引来实施控制。6)列值满足一定的条件通过设置检查约束或触发器来实施控制。7)数据的一致性和有效性通过设置外键约束或触发器来实施控制。至于具体要对数据库的哪一个表的哪一项数据进行什么样的数据完整性设计,还应根据用户的需求来考虑和确定。二、 数据完整性的分类与实现方法在SQL Server关系数据库中,数据完整性分为以下三类:1. 域完整性域完整性是指一个列的输入有效性,是否允许空值。实现域完整性的方法主要有:限制数据类型(通过设定列的数据类型)、限定格式(通过CHECK约束和规则)或可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT定义、NOT NULL定义和规则)以及程序控制。2. 实体完整性实体完整性是指保证表中所有的行唯一。实现实体完整性的方法主要有:索引、UNIQUE约束、PRIMARY KEY约束或 IDENTITY属性以及程序控制。3. 参照完整性参照完整性也叫引用完整性。参照完整性确保主键(被引用表)和外键(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。如student表(称为引用表、参照表或子表)的class_id列就是参照class表(称为被引用表、被参照表或父表)的外键。参照完整性可以实现以下两种控制:(1)存在外键时,被参照表中的这一行不能被删除,主键值也不能改变 (以student和class表的“班级名称”列为例说明)。 (2)若在被参照表中不存在包含相应主键的行时,一个外键值不能插入参照表中(以student和class表的“班级名称”列为例说明)。实现参照完整性的方法主要有FOREIGN KEY 约束和程序控制。三、 数据完整性实施方法数据完整性实施方法主要有声明型数据完整性和过程型数据完整性两种。1. 声明型数据完整性声明型数据完整性一般在对象创建时定义,由DBMS强制实施,通常使用约束、缺省值和规则来实现。声明型数据完整性作为数据库对象说明的一部分在语法中实现,在CREATE TABLE和ALTER TABLE定义中使用CONSTRAINT、DEFAULT等语句限制表中的值,也可以通过界面操作(如使用SQL Server的企业管理器)的方法来实施这一类数据完整性。使用这种方法实现数据完整性简单且不易出错,系统直接将实现数据完整性的要求定义在表和列上。执行时优先于过程型数据完整性方法。2. 过程型数据完整性过程型数据完整性是指由某个过程或某种触发条件引发而实施的数据完整性。一般先写出实施数据完整性的条件,再写出强制该条件所执行的用于保证数据完整性的脚本。通常由触发器和存储过程实现。这种方法通常具有较好的灵活性,可实现较为复杂的数据完整性控制。从简单易行的角度来看,实现基本数据完整性的首选方法是使用声明型数据完整性。四 案例分析:教学管理系统的数据完整性设计与实现(一)各个用户表的数据完整性设计与实现1、学生表(student)列名完整性类型实施方法实施方式内容班级名称参照、域声明及过程非空、外键约束及编程外键内容取自class表的班级名称学号实体、域声明主键、检查约束长度为10个字符姓名域声明非空、唯一约束性别域声明及过程非空、检查约束、编程只能取“男”或“女”民族域声明及过程检查约束、编程假定只能取以下之一:汉、壮、白、回、苗、满、其它政治面貌域声明及过程检查约束、编程只能取以下之一:党员、团员、群众学生类别域声明及过程检查约束、编程假定只能取以下之一:本科、大专(普)、中专、技校、函授、其它2、教师表(teacher)列名完整性类型实施方法实施方式内容所在系参照、域声明及过程非空、外键约束及编程外键内容取自department表的系部名称教师号实体、域声明非空、唯一约束、检查约束长度为10个字符姓名域声明主键、性别域声明及过程非空、检查约束、编程只能取“男”或“女”民族域声明及过程检查约束、编程假定只能取以下之一:汉、壮、白、回、苗、满、其它政治面貌域声明及过程检查约束、编程只能取以下之一:党员、团员、群众职称域声明及过程检查约束、编程只能取以下之一:教授、副教授、讲师、助教、其他3、班级表(class)列名完整性类型实施方法实施方式内容系部名称参照、域声明及过程非空、外键约束及编程外键内容取自department表的系部名称班级号域声明非空、唯一约束长度为4个字符班级名称实体声明主键、非空约束4、系部表(department)列名完整性类型实施方法实施方式内容系号实体、域声明非空、检查约束、唯一约束长度为4个字符系部名称域声明主键5、课程表(course)列名完整性类型实施方法实施方式内容课程号实体、域声明主键、非空、检查约束长度为4个字符课程名域声明非空、唯一约束考核方式域声明及过程检查约束、编程假定只能取以下之一:考试、考查、其他学分域声明非空约束6、成绩表(SC)列名完整性类型实施方法实施方式内容 学号 实体声明主键、非空、外键、约束外键内容取自student表的学号 课程号 实体声明及过程主键、非空、外键、约束及编程外键内容取自course表的课程名称成绩域声明检查取值在0-100之间7、开课表(SC)列名完整性类型实施方法实施方式内容教师名实体声明主键、外键约束外键内容取自教师信息表的教师姓名课程名实体声明及过程主键、外键约束及编程外键内容取自课程信息表的课程名称班级名实体声明主键、外键约束及编程外键内容取自班级信息表的班级名称(二) 各个用户数据表之间的数据完整性设计与实现系部 (department)、班级 (class)、学生 (student) 三个表以及课程表(course)、学生表(student)与成绩表(sc)均具有连带关系,在增、删、改表中的记录时,应确保相应表的对应数据项产生同步变化,以保证数据的完整性和一致性,这种数据完整性控制包括以下几种情况:1)当系部表中的系部名称发生变化时,班级表中对应的系部名称也应跟随变化,当班级表中的班级名称变化时,学生表中的班级名称也应跟随变化,对于课程表中的课程号及学生表中的学号也是一样,当课程表中的课程号及学生表中的学号发生变化时,成绩表中对应课程号及学号也应跟随变化,此项控制通过在班级表和学生表及成绩表上设置外键来实现。2)班级表中的系部名称只能取系部表中已有的系部名称;而学生表中的班级名称只能取班级表中已有的班级名称;成绩表中课程号及学号只能取课程表中的课程号及学生表中的学号,此项控制既可以通过在应用程序中设置下拉框进行选择性输入来实现,也可以在班级表和学生表及成绩表上设置外键来实现,或者这两种方法同时使用效果会更好。3)学生表中每增、删一条记录,应能自动更新班级表中该生所在班级的人数,此功能通过在学生表上设置插入和删除触发器并编写相应代码来实现。4)班级表中每增、删一条记录,应能自动更新系部表中该班级所在系部的人数,此功能通过在班级表上设置插入和删除触发器并编写相应代码来实现。5)对系部表删除一条记录时,若该系部还有下属班级存在,则不允许删除。对班级表删除一条记录也是一样,若该班级还有所属学生记录存在,则不允许删除。此项控制通过在班级表和学生表上设置外键来实现。6)删除课程表和学生表的记录时,应检查成绩表是否有相应课程和相应学生的记录,若有,则不能删除,此项控制通过在成绩表上设置课程表和学生表的外键来实现。五、 同步项目实践以小组讨论的形式,完成人事工资管理系统用户数据库数据完整性的设计,要求个人写出数据库的数据完整性设计的文档(表达方法可参考本章相应内容的案例分析部分),每个小组上交一份在数据库的各个数据表中设计的数据完整性。第三章 案例分析:教学管理系统数据库对象的设计一、 设计视图1) 建立一个名为V_CX_XSQK的视图,功能是从学生表中查询非党团员的学生记录,并按班级名称和性别排序。(该视图用于“固定条件查询”功能)创建视图V_CX_XSQK的SQL语句如下:Create view V_CX_XSQK as SELECT top 100 percent * FROM student where 政治面貌 not in(党员,团员) Order By 班级名称,性别2) 建立一个名为V_CX_XSRXCJ的视图,功能是从学生表中查询入学成绩高于400分的学生记录,并按来源地和入学成绩排序。(该视图用于“固定条件查询”功能)创建视图V_CX_XSRXCJ的SQL语句如下:Create view V_CX_XSRXCJ as SELECT top 100 percent * FROM student where 入学成绩400 Order By 来源地,入学成绩3)建立一个学生成绩视图V_XS_KC_CJ,功能是从班级 (class)、学生 (student)、课程(course)、成绩(sc)几个表查询所有学生的系部名称、班级名称、学号、姓名、性别、出生日期、政治面貌、来源地、课程号、课程名称、成绩、学分、考核类别,并按系部名称、班级名称、姓名和成绩排序。(该视图用于“选择条件查询”功能)创建视图V_XS_KC_CJ的SQL语句如下:alter view V_XS_KC_CJ as SELECT top 100 percent class.系部名称, class.班级名称, student.学号, student.姓名, student.性别, student.出生日期, student.政治面貌, student.来源地, course.课程号, course.课程名称, sc.成绩, course.考核方式, course.学分 FROM sc,course,student,class where sc.课程号 = course.课程号 and sc.学号 = student.学号 and student.班级名称 = class.班级名称 Order By class.系部名称, class.班级名称, student.姓名, sc.成绩4)建立一个统计学生入学成绩的视图V_XSRXCJ,功能是从学生表中统计各班入学成绩的平均分、最高分和最低分;(该视图用于“数据统计”功能)创建视图V_BJRXCJ的SQL语句如下:Create view V_BJRXCJ as SELECT 班级名称,入学成绩平均分=avg(入学成绩), 入学成绩最高分=max(入学成绩), 入学成绩最低分=min(入学成绩) FROM student Group By 班级名称5)建立一个统计各系党团员人数的视图V_DYRS和V_TYRS,功能是从学生成绩视图V_XS_KC_CJ中统计各系的党、团员人数(提示:要用两个语句分别统计党员人数和团员人数);(该视图用于“数据统计”功能)创建统计各系党员人数视图V_DYRS的SQL语句如下:Create view V_DYRS as SELECT 系部名称,党员人数=count(*) FROM V_XS_KC_CJ Where 政治面貌=党员Group By 系部名称 创建统计各系团员人数视图V_TYRS的SQL语句如下:Create view V_TYRS as SELECT 系部名称,团员人数=count(*) FROM V_XS_KC_CJ Where 政治面貌=团员 Group By 系部名称6)建立一个统计各地学生人数和各年级学生人数的视图V_GDXSRS和V_GNJXSRS,功能是从学生表中统计各地学生人数和各年级学生人数(提示:要用两个语句分别统计各地学生人数和各年级人数)。(该视图用于“数据统计”功能)创建统计各地学生人数的视图V_GDXSRS的SQL语句如下:Create view V_GDXSRS as SELECT 来源地,学生人数=count(*) FROM student Group By 来源地 创建统计各年级学生人数的视图V_GNJXSRS的SQL语句如下:Create view V_GNJXSRS as SELECT 年级=left(学号,4),学生人数=count(*) FROM student Group By left(学号,4)二、 设计存储过程(1) 创建不带参数的存储过程:建立一个从学生成绩视图V_XS_KC_CJ中查询出班级名称为“03模具”的所有学生信息的存储过程proc_1,并对该存储过程进行加密。创建的T-SQL语句如下:Create procedure proc_1 with encryption as select * from V_XS_KC_CJ where 班级名称=03模具(2) 创建带输入参数的存储过程:建立一个从学生成绩视图V_XS_KC_CJ中查询出某个班级的学生信息的存储过程proc_2,班级名称通过在存储过程中设置输入参数来确定,并在执行存储过程的语句中给出具体的“班级名称” (如02电气)传递给存储过程。创建的T-SQL语句如下:Create procedure proc_2 bjmc char(20) as IF EXISTS ( SELECT name FROM sysobjects WHERE type = U AND name = bj_cj )DROP table bj_cjGOselect * into bj_cj from V_XS_KC_CJ where 班级名称=bjmcGO alter procedure proc_2 bjmc char(20) as IF EXISTS ( SELECT name FROM sysobjects WHERE type = U AND name = bj_cj )DROP table bj_cjselect * into bj_cj from V_XS_KC_CJ where 班级名称=bjmc alter procedure proc_2 bjmc char(20) as select * from V_XS_KC_CJ where 班级名称=bjmc(3)创建带输入和输出参数的存储过程:建立一个从学生成绩视图V_XS_KC_CJ中查询出某个班级的所有学生学习所有课程的平均成绩的存储过程proc_3,班级名称通过在存储过程中设置输入参数来确定,并在执行存储过程的语句中给出具体的“班级名称” (如03模具)传递给存储过程。求出的平均成绩传给输出参数,然后由PRINT语句显示出来。创建的T-SQL语句如下:Create procedure proc_3 bjmc char(20), avg_rxcj int output as select avg_rxcj=avg(成绩) from V_XS_KC_CJ where 班级名称=bjmc三、 设计触发器(1)在学生表student中创建一个插入触发器student_insert。当向学生表增加一条新记录时,自动更新班级表中该学生所在班级的学生人数。创建插入触发器student_insert的SQL语句:方法一:CREATE TRIGGER student_insert ON student FOR INSERTASUPDATE class SET 学生人数 = ( SELECT COUNT(*) FROM student s ,inserted i WHERE s.班级名称 = i.班级名称) FROM class c, inserted i WHERE c.班级名称 = i.班级名称方法二:CREATE TRIGGER student_ insert ON student FOR INSERTASUPDATE class SET 学生人数 = ( SELECT COUNT(*) FROM student WHERE 班级名称=(select 班级名称 from inserted ) ) WHERE 班级名称 =(select 班级名称 FROM inserted)方法三:create trigger student_ insert on student for insert asupdate class set 学生人数=学生人数+1 WHERE 班级名称 =(select 班级名称 FROM inserted)(2)在学生表中创建一个删除触发器student_delete。当在学生表中删除一条新记录时,自动更新班级表中该学生所在班级的学生人数。创建删除触发器student_delete的SQL语句:方法一:CREATE TRIGGER student_insert ON student FOR DELETEASUPDATE class SET 学生人数 = ( SELECT COUNT(*) FROM student s , deleted d WHERE s.班级名称 = i.班级名称) FROM class c, deleted d WHERE c.班级名称 = d.班级名称方法二:CREATE TRIGGER student_delete ON student FOR deleteASUPDATE class SET 学生人数 = ( SELECT COUNT(*) FROM student WHERE 班级名称=(select 班级名称 from deleted ) ) WHERE 班级名称 =(select 班级名称 FROM deleted)方法三:create trigger student_delete on student for delete as update class set 学生人数=学生人数-1 WHERE 班级名称 =(select 班级名称 FROM deleted)验证触发器用的语句:(3)在班级表中创建插入触发器class_insert和删除触发器class_delete,用于自动更新系部表中该班级所在系部的班级数。创建插入触发器class_insert的SQL语句:CREATE TRIGGER class_ insert ON class FOR INSERTASUPDATE department SET 学生人数 = ( SELECT COUNT(*) FROM class WHERE 班级名称=(select 班级名称 from inserted ) ) WHERE 班级名称 =(select 班级名称 FROM inserted)创建删除触发器class_delete的SQL语句:CREATE TRIGGER class_delete ON class FOR deleteASUPDATE department SET 学生人数 = ( SELECT COUNT(*) FROM class WHERE 班级名称=(select 班级名称 from deleted ) ) WHERE 班级名称 =(select 班级名称 FROM deleted)若考虑被删除的班级如果还有学生存在则不能实施删除,语句可表示为:CREATE trigger class_del on dbo.class for delete as if (select count(班级号) from student,deleted where student.班级名称= deleted.班级名称) 0 begin raiserror(该班级还有下属学生存在,不能删除!,16,1)rollback transactionendelseupdate department set 班级数=班级数-1 from department,deleted where department.系部名称=deleted.系部名称(4)在开课表中创建一个插入触发器tcc_insert。当向开课表增加一条新记录时,自动检查所插入数据的有效性。确保输入的这条新记录的课程号和课程名称的对应关系,并存在于课程表中。创建插入触发器tcc_insert的SQL语句:CREATE TRIGGER tcc_insert ON tccFOR INSERT ASIF (SELECT count(*) FROM course WHERE 课程号= ( SELECT 课程号 FROM inserted ) and 课程名称= ( SELECT 课程名称 FROM inserted )=0 BEGIN PRINT 添加记录操作不能完成! PRINT 输入的课程号与课程名称不对应! ROLLBACK TRANSACTIONEND验证触发器用的语句:insert into tcc(教师名,课程号,课程名称,班级名,开课学期,授课地点) values (刘芳,2309,VB,03网络,05-06上学期,10#608)(5)在系部表department创建删除触发器depar_del,若被删除的系部如果还有下属班级存在则不能实施删除并回滚事务。CREATE trigger depar_del on department for delete as if (select count(class.系部名称) from class,deleted where class.系部名称= deleted.系部名称) 0 begin raiserror(该系还有下属班级存在,不能删除!,16,1)rollback transactionend(6)使用触发器实现级联修改:在系部表department上创建更新触发器depar_up,当修改系部名称时,自动修改班级表class中对应的班级名称。(这项控制也可以通过设置外键时将级联修改复选框设为打勾状态来实现)创建删除触发器depar_up的SQL语句:CREATE TRIGGER depar_up ON departmentFOR UPDATE AS update class set 系部名称=inserted.系部名称 from class,inserted ,deleted where class.系部名称=deleted.系部名称and deleted.系部名称inserted.系部名称(7)使用触发器实现级联修改:在系部表class上创建更新触发器class_up,当修改班级名称时,自动修改学生表student中对应的班级名称。(这项控制也可以通过设置外键时将级联修改复选框设为打勾状态来实现)创建删除触发器class_up的SQL语句:CREATE TRIGGER class_up ON dbo.class FOR UPDATE AS update student set 班级名称=inserted.班级名称 from student,inserted ,deleted where student.班级名称=deleted.班级名称 and deleted.班级名称inserted.班级名称第四章 案例分析:教学管理系统数据库的安全性设计设计用户数据库的三级管理制:一、超级管理员(admin):其下有两名成员ad1和ad2,它们具有所有的语句许可和对象许可(即相当于sa账户的权限)。二、一般管理员(manage):其下有三名成员ma1- ma3,它们具有所有的对象许可,即对所有的对象具有增、删、改、查询和执行的权限。三、操作员(operate):其下有三名成员op1- op5,它们只具有对所有对象进行查询和执行的权限。 以下为实现用户数据库三级管理制的步骤和方法:1、创建三组登录账户:(1)ad1和ad2; (2)ma1 ma3;(3)op1 op5 展开”安全性”节点,选择“登录”右击 新建登录 输入账户名称和密码 确定2、分别将上述的三组登录账户(共10个账户)设置为用户数据库的用户 展开”数据库”节点,选择“用户”右击 新建数据库用户 在下拉框中选择某个登录账户并以他作为新建数据库用户的名称 确定3、创建三种角色并分别为每一种角色添加成员:(1) 超级管理员:admin; (2) 一般管理员:manage;(3) 操作员:operate 展开”数据库”节点,选择“角色”右击 新建数据库角色 输入角色名称 点击“添加”按钮,为该角色添加成员 确定4、分别为三种角色授权(1)admin角色:授予其所有的语句许可和对象许可。1) 授予语句许可选中用户数据库,右击属性选择“权限”选项卡在admin对应这一行的各个语句权限中打“”确定2) 授予对象许可选中admin角色,右击属性选择“权限”按钮在所有对象对应的各个语句权限中打“”确定(2)manage角色:授予其所有的对象许可。选中manage角色,右击属性选择“权限” 按钮在所有对象对应的各个语句权限中打“”确定(3)operate角色:授予其对所有的对象进行查询的权限。选中operate角色,右击属性选择“权限” 按钮在所有对象对应的SELECT语句这一列的权限中打“”确定5、验证各级用户的权限(1)以ad1账户登录系统,验证其超级管理员的权限,试一试他能否进行所有的操作?(2)以ma1账户登录系统,验证其一般管理员(只能对表或视图进行增、删、改和查询数据,而不能创建对象)的权限,例如,试一试看他能否创建新表?(3)以op1账户登录系统,验证其操作员(只能对表或视图进行查询数据,而不能增、删、改数据,更不能创建对象)的权限。例如,试一试看他能否创建新表、能否对表插入新记录或删除和修改记录?6、收回对角色或用户已授予的权限 将原来打的“”去掉。7、禁止角色或用户的语句或对象许可 进入到原来打“”的界面,改为打“X”。8、验证收回与禁止许可的区别 用户的某种许可被禁止(打“X”)后,将不能继承上一级角色的权限。如禁止op2用户对teacher表查询权后,虽然op2是operate角色的成员,而且operate角色已经被授予了对所有表进行查询的权限,但是由于op2用户对teacher表的查询权已被禁止,所以就不能继承operate角色的查询权了。以op2账户登录系统,执行对teacher表的查询,则被系统拒绝。但对其他表的查询是可行的。用户的某种许可被收回(不打“”,也不打“X”)后,仍能继承上一级角色的权限。 以op1账户登录系统,由于op1也是operate角色的成员,所以能继承operate角色的查询权,对所有的表或视图进行查询。1、系统调查 1)人工管理的处理流程 通过对人工管理流程进行详细调查,了解到人事工资管理的处理流程是:管理人员对新调入的职工建立其人事档案和工资档案并保存。平时,管理人员要考核每个职工的出勤率并记录在案,对职工的奖惩情况和变动情况也要记录在案,另外,还要根据需要对人事工资数据进行各项统计并存档。每个月末,要对职工的出勤率进行汇总,要根据每个职工的奖金系数计算奖金,还要根据工资计算办法计算出每个职工的工资并进行工资的发放,并且还要将相关的原始数据和统计结果存档。人事工资信息(包括原始数据和统计结果)还要随时接受职工、管理人员及各级领导的查询。 2)人事工资管理的日常工作 人事工资管理的日常工作有: 部门信息的登记、修改和查阅; 职工档案的登记、修改和查询;职工出勤的登记、查阅和分析;工资信息的登记、修改和查阅; 奖惩信息的登记、修改和查阅 ;经过分析,以上工作可归纳为部门信息管理、职工信息管理、出勤信息管理、工资信息管理和奖惩信息管理、变动信息管理六大类。 3)人事工资管理的主要对象 人事工资管理的主要对象有:部门、职工、工资、考勤、奖罚。 4)确定系统的功能边界 经过调查,确定了系统的功能边界,该系统应能完成下面的功能: 部门信息的录入、修改、查询;职工基本档案的录入、修改、查询;工资档案的录入、查询;考勤信息的录入、修改、查询;奖惩信息的录入、修改、查询; 5)数据采集 通过调查和分析,我们采集到与人事工资管理相关的数据表格,主要有: 部门信息表,内容如表1所示; (表1)列名类型宽度规则部门编号CHAR5主键部门名称NVARCHAR20非空、长度为5个字符部门人数INT负责人NVARCHAR10联系电话CHAR11职工档案表,内容如表2所示;(表2) 列名类型宽度规则部门名称NVARCHAR20内容取自部门信息表的部门名称职工编号CHAR5主键姓名NVARCHAR10非空、长度为10个字符性别NVARCHAR2非空、只能取“男”或“女”出生日期CHAR15民族NVARCHAR4假定只能取以下之一:汉、壮、白、回、苗、满、其它政治面貌NVARCHAR5只能取以下之一:党员、团员、群众婚否NVARCHAR2家庭地址NVARCHAR20入职时间CHAR15学历NVARCHAR10假定只能取以下之一:本科、大专(普)、大专(业)、中专、技校、函授、其它职称NVARCHAR20身份证号CHAR18电话CHAR11简历NVARCHAR50备注NVARCHAR50出勤信息表,内容如表3所示;(表3)列名类型宽度规则职工编号CHAR5主键姓名NVARCHAR10非空、长度为10个字符部门名称NVARCHAR20非空、长度为20个字符加班CHAR5请假CHAR5旷工CHAR5考勤日期CHAR15职工工资表,内容如表4所示; (表4)列名类型宽度规则职工编号CHAR5主键姓名NVARCHAR10非空、长度为10个字符基本工资FLOAT浮点型岗位工资FLOAT浮点型奖金FLOAT浮点型公积金FLOAT浮点型其它加FLOAT浮点型其它扣FLOAT浮点型实发工资FLOAT浮点型应得工资FLOAT浮点型发放日期CHAR15奖惩表,内容如所示表5; (表5)列名类型宽度规则职工编号CHAR5主键姓名NVARCHAR10非空、长度为10个字符奖罚名称NVARCHAR10类型NVARCHAR10日期CHAR15从目前企业上还存人工记录考勤的方式,那样耗费了很大的资源。而且考勤的严谨性不高。因此开发人事工资管理系统、实现人事工资管理的计算机自动化是非常必要的。它可以改变目前人事工资管理工作的现状,能够提高工作效率,能够提供更准确、及时、适用、易理解的信息,能够从根本上解决手工管理中信息滞后、资源浪费等问题。 6)系统设计目标 经过对人工进行的人事工资管理工作流程的分析,我们将在计算机上实现的人事工资管理系统的设计目标确定为: 1) 实现人事工资管理基本信息的登记 2) 实现数据的浏览与删改 3) 实现符合一定条件的信息查询 4) 实现有关数据的统计与分析 三、开发 “教学管理系统”客户端应用程序在实际的数据库应用系统中,一般不会使用SQL Server 2005作为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新疆克孜勒苏职业技术学院面向高校人才引进21人工作考试备考试题及答案解析
- 2025山东临沂市郯城县部分医疗卫生事业单位招募见习人员5人(第四批)笔试模拟试题及答案解析
- 2025江西吉安市吉州区招聘基层公共服务专岗人员4人考试模拟试题及答案解析
- 2025辽宁金融职业学院招聘高层次人才5人考试备考试题及答案解析
- 2025江西省农业农村厅直属事业单位高层次人才招聘7人(51)考试模拟试题及答案解析
- 2025湖南株洲炎陵县城南小学招聘公益性岗位人员1人考试模拟试题及答案解析
- 房地产项目开发合同管理及风险控制
- 应急处理预案(集合15篇)
- 河南省开封市2024-2025学年五年级下学期期末抽测数学试题(含答案)
- 汉字录入培训课件
- 探索语文学习的有意义情境任务设计
- 血管内导管相关性血流感染预防与诊治2025
- 智慧停车系统开发与运营合作
- T/SHPTA 102-2024聚四氟乙烯内衬储罐技术要求
- T/CAQP 001-2017汽车零部件质量追溯体系规范
- 高速考试题目及答案
- 眼内炎护理疑难病例讨论
- 门球场管理制度
- 2025年云南省中考物理模拟练习试卷(含答案)
- 理发店消防安全制度
- 食堂火灾应急预案
评论
0/150
提交评论