很多考生关注2023上半年数据库系统工程师下午的真题及答案,希赛小编整理了网友回忆版2023上半年数据库系统工程师下午真题答案(四),完整版真题可在本文文首或文末本文资料处下载。答案解析请考生关注考后公开课。
试题四:
阅读下列说明,回答问题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 :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;
【问题2】(5分)
为了防止对员工工资表的非法修改(包括内部犯罪),系统特意规定了员工工资表修改的业务规则:对员工工资表的修改只能在每月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) BETWEEN 8 AND 18)THEN
Raise_Error;//抛出异常
END IF;
END;
【问题3】(4分)
人事部门具有每月对员工进行额外奖罚的权限,该奖罚也反应到员工的最终工资上。假设当某月计算一位员工的最终工资时,同一时间人事部门对该员工执行了奖励2000元的事务操作,对应事务的部分调度序列如表4-1所示。
(1)请说明该事务调度存在哪种并发问题?
(2)采用2PL是否可以解决该并发问题?是否会产生死锁?
24下半年软考真题考后分析+估分
▼▼▼
热门:信息系统管理工程师报考指南 | 2025年软考报名时间及入口
活动:25年高项备考 | 软考机考模拟作答系统 | 24下半年真题估分预约
备考:章节练习+真题 | 软考备考学习资料 | 软考免费课程
课程:论文专题讲解 | 信息系统项目管理师试听课