全部科目 > 数据库系统工程师 >
2023年上半年 下午试卷 案例
第 4 题
 
 
某企业内部信息系统部分简化后的关系模式如下:
员工表:EMPLOYEES(Eid,Ename, Address,Phone,Jid),属性含义分别为:员工编码、员工姓名、家庭住址、联系电话、岗位级别编码。
岗位级别表:JOB_LEVELS (Jid, Jname,Jbase_salary),属性含义分别为:岗位级别编码、岗位名称、岗位基本工资。
员工工资表:SALARY(Eid,attendance_wage,merit_pay,overtime_wage,salary, tax, year,month),属性含义分别为:员工编码、考勤工资、绩效工资、加班工资、最终工资、税、年份、月份。
该企业在每月25日计算员工的工资。首先是根据考勤系统以及绩效系统中的数据,计算出员工的考勤、绩效和加班工资,存入到员工工资表;其次结合员工的岗位基本工资,计算出最终工资,完成对员工工资表记录的更新。最后依据员工工资表完成工资的发放。
 
问题:4.1   下面是月底 25日计算某员工最终工资的存储过程程序,请补全空缺处的代码。 CREATE PROCEDURE SalaryCalculation( ( a ) empld char(8), IN iYear number(4), IN iMonth number(2)) DECLARE
attendance number(14,2); merit number(14,2);
overtime number(14, 2); base number(14, 2); all salary number(14, 2);
BEGIN
SELECT attendance_wage, merit_pay, overtime_wage INTO(b)
FROM SALARY WHERE Eid=empld FOR UPDATE;
SELECT Jbase_salary INTO :base FROM EMPLOYEES T1,(C)
WHERE T1.Jid=T2.Jid AND T1.Eid= empld;
all_salary := attendance + merit + overtime +base; UPDATE SALARY SET salary = :all_salary
WHERE ( d ) AND year =iYear AND month =iMonth;(e)
EXCEPTION WHEN OTHERS THEN (f) END
 
问题:4.2   为了防止对员工工资表的非法修改(包括内部犯罪),系统特意规定了员工工资表修改的业务规则:对员工工资表的修改只能在每月25日的上班时间进行。下面是员工工资表修改业务规则对应的程序,请补全空缺处的代码。 CREATE TRIGGER CheckBusinessRule(g)
INSERT OR DELETE OR ( h ) on SALARY FOR EACH (i) BEGIN
IF (TO_CHAR(sysdate, 'DD')<>( j) OR (to_number(TO_CHAR(sysdate,'HH24')) (k) BETWEEN8 AND 18) THEN
Raise_Error; //抛出异常
END IF: END:
 
问题:4.3   人事部门具有每月对员工进行额外奖罚的权限,该奖罚也反应到员工的最终工资上。假设当某月计算一位员工的最终工资时,同一时间人事部门对该员工执行了奖励2000元的事务操
作,对应事务的部分调度序列如表4-1所示。

(1)请说明该事务调度存在哪种并发发问题?
(2)采用2PL是否可以解决该并发问题?是否会产生死锁?
 
 




 
 



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有