2023上半年数据库系统工程师下午真题答案(四)

数据库系统工程师 责任编辑:陈湘君 2023-06-07

添加老师微信

备考咨询

加我微信

摘要:2023上半年数据库系统工程师下午的考试已结束,希赛小编整理了网友回忆版2023上半年数据库系统工程师下午真题答案(四),希望对考生有所帮助。

很多考生关注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所示。

b4.png

(1)请说明该事务调度存在哪种并发问题?

(2)采用2PL是否可以解决该并发问题?是否会产生死锁?

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取