题目

试题四(15分)
回答下列问题回答问题1至问题3,将解答填入答题纸对应栏内。
【说明】
某企业内部信息系统部分简化后的关系模式如下:
员工表: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日计算员工的工资。首先是根据考勤系统以及绩效系统中的数据计算出员工的考勤、绩效和加班工资,存入到员工工资表;其次结合员工的岗位基本工资,计算出最终工资,完成对员工工资表记录的更新。最后依据员工工资表完成工资的发放。

【问题1】(6分)
下面是月底25日计算某员工最终工资的存储过程程序,请补全空缺处的代码。
CREATE PROCEDURE SalaryCalculation((a) empId 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:baseFROM EMPLOYEES T1,(e)
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;
EXCEPTION WHEN OTHERS THEN (f);
END;

【问题2】(5分)
为了防止对员工工资表的非法修改(包括内部犯罪),系统特意规定了员工工资表修改的业务规则:对员工工资表的修改只能在每月25日的上班时间进行。
下面是员工工资表修改业务规则对应的程序,请补全空缺处的代码。
CREATE TRIGGER CheckBusinessRule
(g)INSERT OR DELETE OR (h) on SALARYFOR EACH (i)
BEGIN
IF (TO_CHAR(sysdate,"DD"))
OR(to_number(TO_CHAR(sysdate,"HH24"))(k)BETWEEN 8 AND 18) THEN
Raise_Error;//抛出异常
END IF;
END;

【问题3】(4分)
人事部门具有每月对员工进行额外奖罚的权限,该奖罚也反应到员工的最终工资上。假设当某月计算一位员工的最终工资时,同一时间人事部门对该员工执行了奖励2000元的事务操作,对应事务的部分调度序列如表4-1所示。

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

作答
本题暂不支持做答,请点击“解析“以对比解题思路
答案/解析
查看试卷及答案